pax_global_header00006660000000000000000000000064135554553770014535gustar00rootroot0000000000000052 comment=e1fb4b421737222adf6fa3abb14a7f3ce27c8d1e pymeeus-0.3.6/000077500000000000000000000000001355545537700132325ustar00rootroot00000000000000pymeeus-0.3.6/COPYING.LESSER000066400000000000000000000167441355545537700152750ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. pymeeus-0.3.6/LICENSE.txt000066400000000000000000001045171355545537700150650ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . pymeeus-0.3.6/MANIFEST.in000066400000000000000000000003261355545537700147710ustar00rootroot00000000000000 # Misc include LICENSE.txt COPYING.LESSER docs/Makefile docs/README.txt # Documentation recursive-include docs/build/html * recursive-include docs/source * recursive-include tests *.py recursive-include bin *.py pymeeus-0.3.6/PKG-INFO000066400000000000000000000212641355545537700143340ustar00rootroot00000000000000Metadata-Version: 1.1 Name: PyMeeus Version: 0.3.6 Summary: Python implementation of Jean Meeus astronomical routines Home-page: https://github.com/architest/pymeeus Author: Dagoberto Salazar Author-email: dagoberto.salazar@gmail.com License: LGPLv3 Download-URL: https://github.com/architest/pymeeus Description: PyMeeus ======= **Library of astronomical algorithms in Python**. PyMeeus is a Python implementation of the astronomical algorithms described in the classical book "Astronomical Algorithms, 2nd Edition, Willmann-Bell Inc. (1998)" by Jean Meeus. There are great astronomical libraries out there. For instance, if you're looking for high precision and speed you should take a look at `libnova `__. For a set of python modules aimed at professional astronomers, you should look at `Astropy `__. On the other hand, the advantages of PyMeeus are its simplicity, ease of use, ease of reading, ease of installation (it has the minimum amount of dependencies) and abundant documentation. Installation ------------ The easiest way of installing PyMeeus is using pip: .. code:: sh pip install pymeeus Or, for a per-user installation: .. code:: sh pip install --user pymeeus If you prefer Python3, you can use: .. code:: sh pip3 install --user pymeeus Meta ---- Author: Dagoberto Salazar Distributed under the GNU Lesser General Public License v3 (LGPLv3). See ``LICENSE.txt`` and ``COPYING.LESSER`` for more information. Documentation: https://pymeeus.readthedocs.io/en/latest/ GitHub: https://github.com/architest/pymeeus If you have Sphinx installed, you can generate your own, latest documentation going to directory 'docs' and issuing: .. code:: sh make html Then the HTML documentation pages can be found in 'build/html'. Contributing ------------ The preferred method to contribute is through forking and pull requests: 1. Fork it (https://github.com/architest/pymeeus/fork) 2. Create your feature branch (``git checkout -b feature/fooBar``) 3. Commit your changes (``git commit -am 'Add some fooBar'``) 4. Push to the branch (``git push origin feature/fooBar``) 5. Create a new Pull Request Please bear in mind that PyMeeus follows the PEP8 style guide for Python code `(PEP8) `__. We suggest you install and use a linter like `Flake8 `__ before contributing. Additionally, PyMeeus makes heavy use of automatic tests. As a general rule, every function or method added must have a corresponding test in the proper place in ``tests`` directory. Finally, documentation is also a big thing here. Add proper and abundant documentation to your new code. This also includes in-line comments!!!. What's new ---------- - 0.3.6 - Add method to compute rising and setting times of the Sun - 0.3.5 - Add method magnitude() to planet classes - 0.3.4 - Add method to compute the parallax correction to Earth class - 0.3.3 - Add methods to compute the passage through the nodes - 0.3.2 - Add methods to compute the perihelion and aphelion of all planets - 0.3.1 - Fix errors in the elongation computation, add tests and examples of use of methods 'geocentric\_position()', and tests and examples for 'Pluto' class - 0.3.0 - Added 'Pluto' class - 0.2.11 - Added conjunction and opposition methods for Jupiter, Saturn, Uranus and Neptune - 0.2.10 - Added 'geocentric\_position()' method to 'Minor' class, and added conjunction and opposition methods for Mercury, Venus and Mars. - 0.2.9 - Added class 'Minor', as well as functions to compute velocity of an object and length of an orbit - 0.2.8 - Added methods 'geocentric\_position()' to all the planets - 0.2.7 - Added function 'kepler\_equation()' to 'Coordinates' module, and 'orbital\_elements' methods to classes 'Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus' and 'Neptune' - 0.2.6 - Added classes 'Uranus' and 'Neptune', plus additional functions in Coordinates module' - 0.2.5 - Added classes 'Jupiter' and 'Saturn' - 0.2.4 - Minor bug fixing, added methods 'ephemeris\_physical\_observations()' and 'beginning\_synodic\_rotation()', and added classes 'Mercury' and 'Mars' - 0.2.3 - Added the complete list of VSOP87 parameters to Venus, method to compute dates of equinoxes and solstices, and the Equation of Time - 0.2.2 - Added heliocentric position method for J2000.0 (Earth) and rectangular coordinates methods (Sun) - 0.2.1 - Added Venus module and VSOP87-based positioning methods - 0.2.0 - Added Sun module - 0.1.10 - Added functions to compute if three objects are in a straight line, and the smallest diameter of a circle containing them. - 0.1.9 - Added functions to compute relative position angles and conjunctions - 0.1.8 - Added functions to compute angular separation to Coordinates module - 0.1.7 - Added functions to compute atmospheric refraction to Coordinates module - 0.1.6 - Added function 'times\_rise\_transit\_set()' to Coordinates module - 0.1.5 - Added functions for parallactic angle, ecliptic points in the horizon, angle between north celestial pole and north pole of the ecliptic, and diurnal path vs. the horizon at time of rising or setting - 0.1.4 - Added several conversion functions to Coordinates module - 0.1.3 - Added Coordinates module - 0.1.2 - Added precession and proper motion methods, and changed handling of Epoch class - 0.1.1 - Added methods related to nutation corrections - 0.1.0 - Earth class added - 0.0.9 - Significant documentation improvements - 0.0.8 - Epoch class finished - 0.0.7 - Epoch class added - 0.0.6 - CurveFitting class added - 0.0.5 - Interpolation class added - 0.0.4 - Angle class finished - 0.0.3 - Removed unnecessary dependencies - 0.0.2 - Documentation improvements - 0.0.1 - Initial commit Keywords: Meeus astronomy module library Platform: UNKNOWN Classifier: Development Status :: 4 - Beta Classifier: Environment :: Console Classifier: Intended Audience :: Developers Classifier: Intended Audience :: Education Classifier: Intended Audience :: Science/Research Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3) Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3.6 Classifier: Topic :: Scientific/Engineering :: Astronomy pymeeus-0.3.6/PyMeeus.egg-info/000077500000000000000000000000001355545537700163135ustar00rootroot00000000000000pymeeus-0.3.6/PyMeeus.egg-info/PKG-INFO000066400000000000000000000212641355545537700174150ustar00rootroot00000000000000Metadata-Version: 1.1 Name: PyMeeus Version: 0.3.6 Summary: Python implementation of Jean Meeus astronomical routines Home-page: https://github.com/architest/pymeeus Author: Dagoberto Salazar Author-email: dagoberto.salazar@gmail.com License: LGPLv3 Download-URL: https://github.com/architest/pymeeus Description: PyMeeus ======= **Library of astronomical algorithms in Python**. PyMeeus is a Python implementation of the astronomical algorithms described in the classical book "Astronomical Algorithms, 2nd Edition, Willmann-Bell Inc. (1998)" by Jean Meeus. There are great astronomical libraries out there. For instance, if you're looking for high precision and speed you should take a look at `libnova `__. For a set of python modules aimed at professional astronomers, you should look at `Astropy `__. On the other hand, the advantages of PyMeeus are its simplicity, ease of use, ease of reading, ease of installation (it has the minimum amount of dependencies) and abundant documentation. Installation ------------ The easiest way of installing PyMeeus is using pip: .. code:: sh pip install pymeeus Or, for a per-user installation: .. code:: sh pip install --user pymeeus If you prefer Python3, you can use: .. code:: sh pip3 install --user pymeeus Meta ---- Author: Dagoberto Salazar Distributed under the GNU Lesser General Public License v3 (LGPLv3). See ``LICENSE.txt`` and ``COPYING.LESSER`` for more information. Documentation: https://pymeeus.readthedocs.io/en/latest/ GitHub: https://github.com/architest/pymeeus If you have Sphinx installed, you can generate your own, latest documentation going to directory 'docs' and issuing: .. code:: sh make html Then the HTML documentation pages can be found in 'build/html'. Contributing ------------ The preferred method to contribute is through forking and pull requests: 1. Fork it (https://github.com/architest/pymeeus/fork) 2. Create your feature branch (``git checkout -b feature/fooBar``) 3. Commit your changes (``git commit -am 'Add some fooBar'``) 4. Push to the branch (``git push origin feature/fooBar``) 5. Create a new Pull Request Please bear in mind that PyMeeus follows the PEP8 style guide for Python code `(PEP8) `__. We suggest you install and use a linter like `Flake8 `__ before contributing. Additionally, PyMeeus makes heavy use of automatic tests. As a general rule, every function or method added must have a corresponding test in the proper place in ``tests`` directory. Finally, documentation is also a big thing here. Add proper and abundant documentation to your new code. This also includes in-line comments!!!. What's new ---------- - 0.3.6 - Add method to compute rising and setting times of the Sun - 0.3.5 - Add method magnitude() to planet classes - 0.3.4 - Add method to compute the parallax correction to Earth class - 0.3.3 - Add methods to compute the passage through the nodes - 0.3.2 - Add methods to compute the perihelion and aphelion of all planets - 0.3.1 - Fix errors in the elongation computation, add tests and examples of use of methods 'geocentric\_position()', and tests and examples for 'Pluto' class - 0.3.0 - Added 'Pluto' class - 0.2.11 - Added conjunction and opposition methods for Jupiter, Saturn, Uranus and Neptune - 0.2.10 - Added 'geocentric\_position()' method to 'Minor' class, and added conjunction and opposition methods for Mercury, Venus and Mars. - 0.2.9 - Added class 'Minor', as well as functions to compute velocity of an object and length of an orbit - 0.2.8 - Added methods 'geocentric\_position()' to all the planets - 0.2.7 - Added function 'kepler\_equation()' to 'Coordinates' module, and 'orbital\_elements' methods to classes 'Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus' and 'Neptune' - 0.2.6 - Added classes 'Uranus' and 'Neptune', plus additional functions in Coordinates module' - 0.2.5 - Added classes 'Jupiter' and 'Saturn' - 0.2.4 - Minor bug fixing, added methods 'ephemeris\_physical\_observations()' and 'beginning\_synodic\_rotation()', and added classes 'Mercury' and 'Mars' - 0.2.3 - Added the complete list of VSOP87 parameters to Venus, method to compute dates of equinoxes and solstices, and the Equation of Time - 0.2.2 - Added heliocentric position method for J2000.0 (Earth) and rectangular coordinates methods (Sun) - 0.2.1 - Added Venus module and VSOP87-based positioning methods - 0.2.0 - Added Sun module - 0.1.10 - Added functions to compute if three objects are in a straight line, and the smallest diameter of a circle containing them. - 0.1.9 - Added functions to compute relative position angles and conjunctions - 0.1.8 - Added functions to compute angular separation to Coordinates module - 0.1.7 - Added functions to compute atmospheric refraction to Coordinates module - 0.1.6 - Added function 'times\_rise\_transit\_set()' to Coordinates module - 0.1.5 - Added functions for parallactic angle, ecliptic points in the horizon, angle between north celestial pole and north pole of the ecliptic, and diurnal path vs. the horizon at time of rising or setting - 0.1.4 - Added several conversion functions to Coordinates module - 0.1.3 - Added Coordinates module - 0.1.2 - Added precession and proper motion methods, and changed handling of Epoch class - 0.1.1 - Added methods related to nutation corrections - 0.1.0 - Earth class added - 0.0.9 - Significant documentation improvements - 0.0.8 - Epoch class finished - 0.0.7 - Epoch class added - 0.0.6 - CurveFitting class added - 0.0.5 - Interpolation class added - 0.0.4 - Angle class finished - 0.0.3 - Removed unnecessary dependencies - 0.0.2 - Documentation improvements - 0.0.1 - Initial commit Keywords: Meeus astronomy module library Platform: UNKNOWN Classifier: Development Status :: 4 - Beta Classifier: Environment :: Console Classifier: Intended Audience :: Developers Classifier: Intended Audience :: Education Classifier: Intended Audience :: Science/Research Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3) Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3.6 Classifier: Topic :: Scientific/Engineering :: Astronomy pymeeus-0.3.6/PyMeeus.egg-info/SOURCES.txt000066400000000000000000000034111355545537700201760ustar00rootroot00000000000000COPYING.LESSER LICENSE.txt MANIFEST.in README.rst setup.py PyMeeus.egg-info/PKG-INFO PyMeeus.egg-info/SOURCES.txt PyMeeus.egg-info/dependency_links.txt PyMeeus.egg-info/top_level.txt docs/Makefile docs/README.txt docs/source/Angle.rst docs/source/Coordinates.rst docs/source/CurveFitting.rst docs/source/Earth.rst docs/source/Epoch.rst docs/source/Interpolation.rst docs/source/Jupiter.rst docs/source/Mars.rst docs/source/Mercury.rst docs/source/Minor.rst docs/source/Neptune.rst docs/source/Pluto.rst docs/source/Saturn.rst docs/source/Sun.rst docs/source/Uranus.rst docs/source/Venus.rst docs/source/base.rst docs/source/conf.py docs/source/ex-Angle.rst docs/source/ex-Coordinates.rst docs/source/ex-CurveFitting.rst docs/source/ex-Earth.rst docs/source/ex-Epoch.rst docs/source/ex-Interpolation.rst docs/source/ex-Jupiter.rst docs/source/ex-Mars.rst docs/source/ex-Mercury.rst docs/source/ex-Minor.rst docs/source/ex-Neptune.rst docs/source/ex-Pluto.rst docs/source/ex-Saturn.rst docs/source/ex-Sun.rst docs/source/ex-Uranus.rst docs/source/ex-Venus.rst docs/source/ex-base.rst docs/source/index.rst pymeeus/Angle.py pymeeus/Coordinates.py pymeeus/CurveFitting.py pymeeus/Earth.py pymeeus/Epoch.py pymeeus/Interpolation.py pymeeus/Jupiter.py pymeeus/Mars.py pymeeus/Mercury.py pymeeus/Minor.py pymeeus/Neptune.py pymeeus/Pluto.py pymeeus/Saturn.py pymeeus/Sun.py pymeeus/Uranus.py pymeeus/Venus.py pymeeus/__init__.py pymeeus/base.py tests/__init__.py tests/test_angle.py tests/test_coordinates.py tests/test_curvefitting.py tests/test_earth.py tests/test_epoch.py tests/test_interpolation.py tests/test_jupiter.py tests/test_mars.py tests/test_mercury.py tests/test_minor.py tests/test_neptune.py tests/test_pluto.py tests/test_saturn.py tests/test_sun.py tests/test_uranus.py tests/test_venus.pypymeeus-0.3.6/PyMeeus.egg-info/dependency_links.txt000066400000000000000000000000011355545537700223610ustar00rootroot00000000000000 pymeeus-0.3.6/PyMeeus.egg-info/top_level.txt000066400000000000000000000000151355545537700210410ustar00rootroot00000000000000base pymeeus pymeeus-0.3.6/README.rst000066400000000000000000000134261355545537700147270ustar00rootroot00000000000000PyMeeus ======= **Library of astronomical algorithms in Python**. PyMeeus is a Python implementation of the astronomical algorithms described in the classical book "Astronomical Algorithms, 2nd Edition, Willmann-Bell Inc. (1998)" by Jean Meeus. There are great astronomical libraries out there. For instance, if you're looking for high precision and speed you should take a look at `libnova `__. For a set of python modules aimed at professional astronomers, you should look at `Astropy `__. On the other hand, the advantages of PyMeeus are its simplicity, ease of use, ease of reading, ease of installation (it has the minimum amount of dependencies) and abundant documentation. Installation ------------ The easiest way of installing PyMeeus is using pip: .. code:: sh pip install pymeeus Or, for a per-user installation: .. code:: sh pip install --user pymeeus If you prefer Python3, you can use: .. code:: sh pip3 install --user pymeeus Meta ---- Author: Dagoberto Salazar Distributed under the GNU Lesser General Public License v3 (LGPLv3). See ``LICENSE.txt`` and ``COPYING.LESSER`` for more information. Documentation: https://pymeeus.readthedocs.io/en/latest/ GitHub: https://github.com/architest/pymeeus If you have Sphinx installed, you can generate your own, latest documentation going to directory 'docs' and issuing: .. code:: sh make html Then the HTML documentation pages can be found in 'build/html'. Contributing ------------ The preferred method to contribute is through forking and pull requests: 1. Fork it (https://github.com/architest/pymeeus/fork) 2. Create your feature branch (``git checkout -b feature/fooBar``) 3. Commit your changes (``git commit -am 'Add some fooBar'``) 4. Push to the branch (``git push origin feature/fooBar``) 5. Create a new Pull Request Please bear in mind that PyMeeus follows the PEP8 style guide for Python code `(PEP8) `__. We suggest you install and use a linter like `Flake8 `__ before contributing. Additionally, PyMeeus makes heavy use of automatic tests. As a general rule, every function or method added must have a corresponding test in the proper place in ``tests`` directory. Finally, documentation is also a big thing here. Add proper and abundant documentation to your new code. This also includes in-line comments!!!. What's new ---------- - 0.3.6 - Add method to compute rising and setting times of the Sun - 0.3.5 - Add method magnitude() to planet classes - 0.3.4 - Add method to compute the parallax correction to Earth class - 0.3.3 - Add methods to compute the passage through the nodes - 0.3.2 - Add methods to compute the perihelion and aphelion of all planets - 0.3.1 - Fix errors in the elongation computation, add tests and examples of use of methods 'geocentric\_position()', and tests and examples for 'Pluto' class - 0.3.0 - Added 'Pluto' class - 0.2.11 - Added conjunction and opposition methods for Jupiter, Saturn, Uranus and Neptune - 0.2.10 - Added 'geocentric\_position()' method to 'Minor' class, and added conjunction and opposition methods for Mercury, Venus and Mars. - 0.2.9 - Added class 'Minor', as well as functions to compute velocity of an object and length of an orbit - 0.2.8 - Added methods 'geocentric\_position()' to all the planets - 0.2.7 - Added function 'kepler\_equation()' to 'Coordinates' module, and 'orbital\_elements' methods to classes 'Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus' and 'Neptune' - 0.2.6 - Added classes 'Uranus' and 'Neptune', plus additional functions in Coordinates module' - 0.2.5 - Added classes 'Jupiter' and 'Saturn' - 0.2.4 - Minor bug fixing, added methods 'ephemeris\_physical\_observations()' and 'beginning\_synodic\_rotation()', and added classes 'Mercury' and 'Mars' - 0.2.3 - Added the complete list of VSOP87 parameters to Venus, method to compute dates of equinoxes and solstices, and the Equation of Time - 0.2.2 - Added heliocentric position method for J2000.0 (Earth) and rectangular coordinates methods (Sun) - 0.2.1 - Added Venus module and VSOP87-based positioning methods - 0.2.0 - Added Sun module - 0.1.10 - Added functions to compute if three objects are in a straight line, and the smallest diameter of a circle containing them. - 0.1.9 - Added functions to compute relative position angles and conjunctions - 0.1.8 - Added functions to compute angular separation to Coordinates module - 0.1.7 - Added functions to compute atmospheric refraction to Coordinates module - 0.1.6 - Added function 'times\_rise\_transit\_set()' to Coordinates module - 0.1.5 - Added functions for parallactic angle, ecliptic points in the horizon, angle between north celestial pole and north pole of the ecliptic, and diurnal path vs. the horizon at time of rising or setting - 0.1.4 - Added several conversion functions to Coordinates module - 0.1.3 - Added Coordinates module - 0.1.2 - Added precession and proper motion methods, and changed handling of Epoch class - 0.1.1 - Added methods related to nutation corrections - 0.1.0 - Earth class added - 0.0.9 - Significant documentation improvements - 0.0.8 - Epoch class finished - 0.0.7 - Epoch class added - 0.0.6 - CurveFitting class added - 0.0.5 - Interpolation class added - 0.0.4 - Angle class finished - 0.0.3 - Removed unnecessary dependencies - 0.0.2 - Documentation improvements - 0.0.1 - Initial commit pymeeus-0.3.6/docs/000077500000000000000000000000001355545537700141625ustar00rootroot00000000000000pymeeus-0.3.6/docs/Makefile000066400000000000000000000011671355545537700156270ustar00rootroot00000000000000# Minimal makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build SPHINXPROJ = PyMeeus SOURCEDIR = source 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 clean: rm -rf build # 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) pymeeus-0.3.6/docs/README.txt000066400000000000000000000011561355545537700156630ustar00rootroot00000000000000The documentation in this tree is in plain text files and can be viewed using any text file viewer. It uses ReST (reStructuredText) [1], and the Sphinx documentation system [2]. This allows it to be built into other forms for easier viewing and browsing. To create an HTML version of the docs: * Install Sphinx (using ``pip install Sphinx`` or some other method) * In this docs/ directory, type ``make html`` (or ``make.bat html`` on Windows) at a shell prompt. The documentation in build/html/index.html can then be viewed in a web browser. [1] http://docutils.sourceforge.net/rst.html [2] http://sphinx-doc.org/ pymeeus-0.3.6/docs/source/000077500000000000000000000000001355545537700154625ustar00rootroot00000000000000pymeeus-0.3.6/docs/source/Angle.rst000066400000000000000000000002011355545537700172330ustar00rootroot00000000000000Angle ***** .. automodule:: pymeeus Class to handle angles. .. automodule:: pymeeus.Angle :members: :special-members: pymeeus-0.3.6/docs/source/Coordinates.rst000066400000000000000000000002531355545537700204660ustar00rootroot00000000000000Coordinates *********** .. automodule:: pymeeus Module holding functions to handle coordinates. .. automodule:: pymeeus.Coordinates :members: :special-members: pymeeus-0.3.6/docs/source/CurveFitting.rst000066400000000000000000000002761355545537700206320ustar00rootroot00000000000000Curveffiting ************ .. automodule:: pymeeus Class to get the best fit of a curve to a set of (x, y) points. .. automodule:: pymeeus.CurveFitting :members: :special-members: pymeeus-0.3.6/docs/source/Earth.rst000066400000000000000000000002071355545537700172560ustar00rootroot00000000000000Earth ***** .. automodule:: pymeeus Class to model Earth's globe. .. automodule:: pymeeus.Earth :members: :special-members: pymeeus-0.3.6/docs/source/Epoch.rst000066400000000000000000000001771355545537700172570ustar00rootroot00000000000000Epoch ***** .. automodule:: pymeeus Class to handle time. .. automodule:: pymeeus.Epoch :members: :special-members: pymeeus-0.3.6/docs/source/Interpolation.rst000066400000000000000000000003001355545537700210340ustar00rootroot00000000000000Interpolation ************* .. automodule:: pymeeus Class to find intermediate values from those given in a table. .. automodule:: pymeeus.Interpolation :members: :special-members: pymeeus-0.3.6/docs/source/Jupiter.rst000066400000000000000000000002161355545537700176350ustar00rootroot00000000000000Jupiter ******* .. automodule:: pymeeus Class to model Jupiter planet. .. automodule:: pymeeus.Jupiter :members: :special-members: pymeeus-0.3.6/docs/source/Mars.rst000066400000000000000000000002021355545537700171100ustar00rootroot00000000000000Mars **** .. automodule:: pymeeus Class to model Mars planet. .. automodule:: pymeeus.Mars :members: :special-members: pymeeus-0.3.6/docs/source/Mercury.rst000066400000000000000000000002161355545537700176410ustar00rootroot00000000000000Mercury ******* .. automodule:: pymeeus Class to model Mercury planet. .. automodule:: pymeeus.Mercury :members: :special-members: pymeeus-0.3.6/docs/source/Minor.rst000066400000000000000000000002211355545537700172730ustar00rootroot00000000000000Minor ***** .. automodule:: pymeeus Class to model minor celestial objetcs. .. automodule:: pymeeus.Minor :members: :special-members: pymeeus-0.3.6/docs/source/Neptune.rst000066400000000000000000000002161355545537700176310ustar00rootroot00000000000000Neptune ******* .. automodule:: pymeeus Class to model Neptune planet. .. automodule:: pymeeus.Neptune :members: :special-members: pymeeus-0.3.6/docs/source/Pluto.rst000066400000000000000000000002061355545537700173150ustar00rootroot00000000000000Pluto ***** .. automodule:: pymeeus Class to model Pluto planet. .. automodule:: pymeeus.Pluto :members: :special-members: pymeeus-0.3.6/docs/source/Saturn.rst000066400000000000000000000002121355545537700174630ustar00rootroot00000000000000Saturn ****** .. automodule:: pymeeus Class to model Saturn planet. .. automodule:: pymeeus.Saturn :members: :special-members: pymeeus-0.3.6/docs/source/Sun.rst000066400000000000000000000002231355545537700167560ustar00rootroot00000000000000Sun *** .. automodule:: pymeeus Module holding functions to handle coordinates. .. automodule:: pymeeus.Sun :members: :special-members: pymeeus-0.3.6/docs/source/Uranus.rst000066400000000000000000000002121355545537700174640ustar00rootroot00000000000000Uranus ****** .. automodule:: pymeeus Class to model Uranus planet. .. automodule:: pymeeus.Uranus :members: :special-members: pymeeus-0.3.6/docs/source/Venus.rst000066400000000000000000000002061355545537700173120ustar00rootroot00000000000000Venus ***** .. automodule:: pymeeus Class to model Venus planet. .. automodule:: pymeeus.Venus :members: :special-members: pymeeus-0.3.6/docs/source/base.rst000066400000000000000000000002161355545537700171250ustar00rootroot00000000000000Base **** .. automodule:: pymeeus Basic, general functions and constants. .. automodule:: pymeeus.base :members: :special-members: pymeeus-0.3.6/docs/source/conf.py000066400000000000000000000135101355545537700167610ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # PyMeeus documentation build configuration file, created by # sphinx-quickstart on Wed Jun 27 23:07:31 2018. # # This file is execfile()d with the current directory set to its # containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # import os import sys sys.path.insert(0, os.path.abspath('../..')) # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. # # needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinx.ext.imgmath', 'sphinx.ext.ifconfig', 'sphinx.ext.viewcode', 'sphinx.ext.githubpages'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # # source_suffix = ['.rst', '.md'] source_suffix = '.rst' # The master toctree document. master_doc = 'index' # General information about the project. project = u'PyMeeus' copyright = u'2018, Dagoberto Salazar' author = u'Dagoberto Salazar' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = u'0.3.6' # The full version, including alpha/beta/rc tags. release = u'0.3.6' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. language = None # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This patterns also effect to html_static_path and html_extra_path exclude_patterns = [] # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = False # -- Options for HTML output ---------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # # html_theme = 'alabaster' html_theme = 'sphinx_rtd_theme' # 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 = {} # 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. # # This is required for the alabaster theme # refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars html_sidebars = { '**': [ 'relations.html', # needs 'show_related': True theme option to display 'searchbox.html', ] } # -- Options for HTMLHelp output ------------------------------------------ # Output file base name for HTML help builder. htmlhelp_basename = 'PyMeeusdoc' # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). # # 'papersize': 'letterpaper', 'papersize': 'a4paper', # The font size ('10pt', '11pt' or '12pt'). # # 'pointsize': '10pt', 'pointsize': '11pt', # Additional stuff for the LaTeX preamble. # # 'preamble': '', # Latex figure (float) alignment # 'figure_align': 'htbp', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ (master_doc, 'PyMeeus.tex', u'PyMeeus Documentation', u'Dagoberto Salazar', 'manual'), ] # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ (master_doc, 'pymeeus', u'PyMeeus Documentation', [author], 1) ] # -- Options for Texinfo output ------------------------------------------- # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ (master_doc, 'PyMeeus', u'PyMeeus Documentation', author, 'PyMeeus', 'One line description of project.', 'Miscellaneous'), ] # -- Options for Epub output ---------------------------------------------- # Bibliographic Dublin Core info. epub_title = project epub_author = author epub_publisher = author epub_copyright = copyright # The unique identifier of the text. This can be a ISBN number # or the project homepage. # # epub_identifier = '' # A unique identification for the text. # # epub_uid = '' # A list of files that should not be packed into the epub file. epub_exclude_files = ['search.html'] # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = {'https://docs.python.org/': None} pymeeus-0.3.6/docs/source/ex-Angle.rst000066400000000000000000000202051355545537700176530ustar00rootroot00000000000000Angle examples ************** Let's define a small helper function:: def print_me(msg, val): print("{}: {}".format(msg, val)) Create an Angle object, providing degrees, minutes and seconds:: a = Angle(-23.0, 26.0, 48.999983999) First we print using the ``__call__()`` method (note the extra parentheses):: print_me("The angle 'a()' is", a()) # The angle 'a()' is: -23.44694444 Second we print using the ``__str__()`` method (no extra parentheses needed):: print_me("The angle 'a' is", a) # The angle 'a' is: -23.44694444 Use the copy constructor:: b = Angle(a) print_me("Angle 'b', which is a copy of 'a', is", b) # Angle 'b', which is a copy of 'a', is: -23.44694444 Use the static ``deg2dms()`` method to carry out conversions:: d, m, s, sign = Angle.deg2dms(23.44694444) val = "{}d {}' {}''".format(int(sign*d), m, s) print_me("{Deg}d {Min}' {Sec}''", val) # {Deg}d {Min}' {Sec}'': 23d 26' 48.999984'' We can print Angle ``a`` directly in sexagesimal format. - In *fancy* format:: print_me("{Deg}d {Min}' {Sec}''", a.dms_str()) # {Deg}d {Min}' {Sec}'': -23d 26' 48.999983999'' - In plain format:: print_me("{Deg}:{Min}:{Sec}", a.dms_str(False)) # {Deg}:{Min}:{Sec}: -23:26:48.999983999 Print directly as a tuple:: a = Angle(23.44694444) print_me("a.dms_tuple()", a.dms_tuple()) # a.dms_tuple(): (23, 26, 48.999983999997596, 1.0) print_me("a.ra_tuple()", a.ra_tuple()) # a.ra_tuple(): (1, 33, 47.26666559999941, 1.0) Redefine Angle ``a`` several times:: a.set(-0.44694444) print_me(" a.dms_str()", a.dms_str()) # a.dms_str(): -26' 48.999984'' a.set(0, 0, -46.31) print_me(" a.dms_str(False)", a.dms_str(False)) # a.dms_str(False): 0:0:-46.31 We can use decimals in degrees/minutes. They are converted automatically:: a.set(0, -46.25, 0.0) print_me(" a.dms_str()", a.dms_str()) # a.dms_str(): -46' 15.0'' a.set(0, 0, 0.0) print_me(" a.dms_str()", a.dms_str()) # a.dms_str(): 0d 0' 0.0'' We can define the angle as in radians. It will be converted to degrees:: b = Angle(pi, radians=True) print_me("b = Angle(pi, radians=True); print(b)", b) # b = Angle(pi, radians=True); print(b): 180.0 And we can easily carry out the *degrees to radians* conversion:: print_me("print(b.rad())", b.rad()) # print(b.rad()): 3.14159265359 We can also specify the angle as a Right Ascension. Angle can be given as a Right Ascension: Hours, Minutes, Seconds:: a.set_ra(9, 14, 55.8) print_me(" print(a)", a) # print(a): 138.7325 b = Angle(9, 14, 55.8, ra=True) print_me(" print(b)", b) # print(b): 138.7325 We can print the Angle as Right Ascension, as a float and as string:: a = Angle(138.75) print_me(" print(a.get_ra())", a.get_ra()) # print(a.get_ra()): 9.25 print_me(" print(a.ra_str())", a.ra_str()) # print(a.ra_str()): 9h 15' 0.0'' print_me(" print(a.ra_str(False))", a.ra_str(False)) # print(a.ra_str(False)): 9:15:0.0 Use the ``to_positive()`` method to get the positive version of an angle:: a = Angle(-87.32) print_me(" print(a.to_positive())", a.to_positive()) # print(a.to_positive()): 272.68 Call the ``__repr__()`` method to get a string defining the current object. This string can then be fed to the ``eval()`` function to generate the object:: print_me("print(b.__repr__())", b.__repr__()) # print(b.__repr__()): Angle(138.7325) c = eval(repr(b)) print_me("c = eval(repr(b)); print(c)", c) # c = eval(repr(b)); print(c): 138.7325 Let's now work with some useful operators and functions:: print_me("c", c) # c: 138.7325 - Negate an angle:: d = Angle(13, 30) print_me("d", d) # d: 13.5 e = -d print_me(" e = -d", e) # e = -d: -13.5 - Get the absolute value of an angle:: e = abs(e) print_me(" e = abs(e)", e) # e = abs(e): 13.5 - Module operation on an angle:: d = Angle(17.0) print_me("d", d) # d: 17.0 e = c % d print_me(" e = c % d", e) # e = c % d: 2.7325 - Convert the angle to an integer:: d = Angle(13.95) print_me("d", d) # d: 13.95 print_me(" int(d)", int(d)) # int(d): 13 d = Angle(-4.95) print_me("d", d) # d: -4.95 print_me(" int(d)", int(d)) # int(d): -4 - Convert the angle to a float:: print_me(" float(d)", float(d)) # float(d): -4.95 - Round the angle to a float:: e = Angle(-4.951648) print_me("e", e) # e: -4.951648 print_me(" round(e)", round(e)) # round(e): -5.0 print_me(" round(e, 2)", round(e, 2)) # round(e, 2): -4.95 print_me(" round(e, 3)", round(e, 3)) # round(e, 3): -4.952 print_me(" round(e, 4)", round(e, 4)) # round(e, 4): -4.9516 - Comparison operators:: print_me(" d == e", d == e) # d == e: False print_me(" d != e", d != e) # d != e: True print_me(" d > e", d > e) # d > e: True print_me(" c >= 180.0", c >= 180.0) # c >= 180.0: False print_me(" c < 180.0", c < 180.0) # c < 180.0: True print_me(" c <= 180.0", c <= 180.0) # c <= 180.0: True - It is very easy to add Angles to obtain a new Angle:: e = c + d print_me(" c + d", e) # c + d: 133.7825 We can also directly add a decimal angle:: e = c + 11.5 print_me(" c + 11.5", e) # c + 11.5: 150.2325 Types allowed are int, float and Angle:: print('e = c + "32.5"') # e = c + "32.5" try: e = c + "32.5" except TypeError: print("TypeError!: Valid types are int, float, and Angle, not string!") # TypeError!: Valid types are int, float, and Angle, not string! - Subtraction:: e = c - d print_me(" c - d", e) # c - d: 143.6825 - Multiplication:: c.set(150.0) d.set(5.0) print_me("c", c) # c: 150.0 print_me("d", d) # d: 5.0 e = c * d print_me(" c * d", e) # c * d: 30.0 - Division:: c.set(150.0) d.set(6.0) print_me("d", d) # d: 6.0 e = c / d print_me(" c / d", e) # c / d: 25.0 Division by zero is not allowed:: d.set(0.0) print_me("d", d) # d: 0.0 print('e = c / d') # e = c / d try: e = c / d except ZeroDivisionError: print("ZeroDivisionError!: Division by zero is not allowed!") # ZeroDivisionError!: Division by zero is not allowed! - Power:: d.set(2.2) print_me("d", d) # d: 2.2 e = c ** d print_me(" c ** d", e) # c ** d: 91.5733670999 - Accumulative module operation:: d.set(17.0) print_me("d", d) # d: 17.0 e %= d print_me(" e %= d", e) # e %= d: 6.57336709993 - Accumulative addition:: c += d print_me(" c += d", c) # c += d: 167.0 - Accumulative subtraction:: print_me("b", b) # b: 138.7325 c -= b print_me(" c -= b", c) # c -= b: 28.2675 - Accumulative multiplication:: print_me("b", b) # b: 138.7325 c *= b print_me(" c *= b", c) # c *= b: 321.62094375 - Accumulative division:: print_me("b", b) # 138.7325 d.set(6.0) print_me("d", d) # d: 6.0 b /= d print_me(" b /= d", b) # b /= d: 23.1220833333 - Accumulative power:: d.set(2.2) print_me("d", d) # d: 2.2 c = abs(c) print_me(" c = abs(c)", c) # c = abs(c): 321.62094375 c **= d print_me(" c **= d", c) # c **= d: 254.307104203 The same operations, but by the right side:: e = 3.5 + b print_me(" e = 3.5 + b", e) # e = 3.5 + b: 26.6220833333 e = 3.5 - b print_me(" e = 3.5 - b", e) # e = 3.5 - b: -19.6220833333 e = 3.5 * b print_me(" e = 3.5 * b", e) # e = 3.5 * b: 80.9272916667 e = 3.5 / b print_me(" e = 3.5 / b", e) # e = 3.5 / b: 0.151370443119 e = 3.5 ** b print_me(" e = 3.5 ** b", e) # e = 3.5 ** b: 260.783691406 pymeeus-0.3.6/docs/source/ex-Coordinates.rst000066400000000000000000000523271355545537700211110ustar00rootroot00000000000000Coordinates examples ******************** Let's define a small helper function:: def print_me(msg, val): print("{}: {}".format(msg, val)) It follows a series of important parameters related to the angle between Earth's rotation axis and the ecliptic. - The mean angle between Earth rotation axis and ecliptic axis is the **mean obliquity**:: e0 = Earth.mean_obliquity(1987, 4, 10) print_me("Mean obliquity for 1987/4/10", e0.dms_str()) # Mean obliquity for 1987/4/10: 23d 26' 27.4066466278'' - If we take into account the nutation effect on the obliquity, we get the **true obliquity**:: epsilon = Earth.true_obliquity(1987, 4, 10) print_me("True obliquity for 1987/4/10", epsilon.dms_str()) # True obliquity for 1987/4/10: 23d 26' 36.8491882378'' epsilon = Earth.true_obliquity(2018, 7, 29) print_me("True obliquity for 2018/7/29", epsilon.dms_str()) # True obliquity for 2018/7/29: 23d 26' 7.21570241139'' - The nutation effect is separated in two components: One parallel to the ecliptic (nutation in longitude) and other perpendicular to the ecliptic (nutation in obliquity):: dpsi = Earth.nutation_longitude(1987, 4, 10) print_me("Nutation in longitude for 1987/4/10", dpsi.dms_str(n_dec=3)) # Nutation in longitude for 1987/4/10: -3.788'' depsilon = Earth.nutation_obliquity(1987, 4, 10) print_me("Nutation in obliquity for 1987/4/10", depsilon.dms_str(n_dec=3)) # Nutation in obliquity for 1987/4/10: 9.443'' - We can compute the effects of precession on the equatorial coordinates of a given star, taking also into account its proper motion:: start_epoch = JDE2000 final_epoch = Epoch(2028, 11, 13.19) alpha0 = Angle(2, 44, 11.986, ra=True) delta0 = Angle(49, 13, 42.48) print_me("Initial right ascension", alpha0.ra_str(n_dec=3)) # Initial right ascension: 2h 44' 11.986'' print_me("Initial declination", delta0.dms_str(n_dec=2)) # Initial declination: 49d 13' 42.48'' pm_ra = Angle(0, 0, 0.03425, ra=True) pm_dec = Angle(0, 0, -0.0895) alpha, delta = Earth.precession_equatorial(start_epoch, final_epoch, alpha0, delta0, pm_ra, pm_dec) print_me("Final right ascension", alpha.ra_str(n_dec=3)) # Final right ascension: 2h 46' 11.331'' print_me("Final declination", delta.dms_str(n_dec=2)) # Final declination: 49d 20' 54.54'' Something similar can also be done with the ecliptical coordinates:: start_epoch = JDE2000 final_epoch = Epoch(-214, 6, 30.0) lon0 = Angle(149.48194) lat0 = Angle(1.76549) print_me("Initial ecliptical longitude", round(lon0(), 5)) # Initial ecliptical longitude: 149.48194 print_me("Initial ecliptical latitude", round(lat0(), 5)) # Initial ecliptical latitude: 1.76549 lon, lat = Earth.precession_ecliptical(start_epoch, final_epoch, lon0, lat0) print_me("Final ecliptical longitude", round(lon(), 3)) # Final ecliptical longitude: 118.704 print_me("Final ecliptical latitude", round(lat(), 3)) # Final ecliptical latitude: 1.615 Additionally, module ``Coordinates`` provides a function to compute the true movement of a star through the sky relative to the Sun:: ra = Angle(6, 45, 8.871, ra=True) dec = Angle(-16.716108) pm_ra = Angle(0, 0, -0.03847, ra=True) pm_dec = Angle(0, 0, -1.2053) dist = 2.64 vel = -7.6 alpha, delta = motion_in_space(ra, dec, dist, vel, pm_ra, pm_dec, -4000.0) print(alpha.ra_str(False, 2)) # 6:47:39.91 print(delta.dms_str(False, 1)) # -15:23:30.6 This module ``Coordinates`` also provides a series of functions to convert between equatorial, ecliptical, horizontal and galactic coordinates. - Equatorial to ecliptical coordinates:: ra = Angle(7, 45, 18.946, ra=True) dec = Angle(28, 1, 34.26) epsilon = Angle(23.4392911) lon, lat = equatorial2ecliptical(ra, dec, epsilon) print_me("Equatorial to ecliptical. Longitude", round(lon(), 5)) # Equatorial to ecliptical. Longitude: 113.21563 print_me("Equatorial to ecliptical. Latitude", round(lat(), 5)) # Equatorial to ecliptical. Latitude: 6.68417 - Ecliptical to equatorial coordinates:: lon = Angle(113.21563) lat = Angle(6.68417) epsilon = Angle(23.4392911) ra, dec = ecliptical2equatorial(lon, lat, epsilon) print_me("Ecliptical to equatorial. Right ascension", ra.ra_str(n_dec=3)) # Ecliptical to equatorial. Right ascension: 7h 45' 18.946'' print_me("Ecliptical to equatorial. Declination", dec.dms_str(n_dec=2)) # Ecliptical to equatorial. Declination: 28d 1' 34.26'' - Equatorial to horizontal coordinates:: lon = Angle(77, 3, 56) lat = Angle(38, 55, 17) ra = Angle(23, 9, 16.641, ra=True) dec = Angle(-6, 43, 11.61) theta0 = Angle(8, 34, 57.0896, ra=True) eps = Angle(23, 26, 36.87) # Compute correction to convert from mean to apparent sidereal time delta = Angle(0, 0, ((-3.868*cos(eps.rad()))/15.0), ra=True) theta0 += delta h = theta0 - lon - ra azi, ele = equatorial2horizontal(h, dec, lat) print_me("Equatorial to horizontal: Azimuth", round(azi, 3)) # Equatorial to horizontal: Azimuth: 68.034 print_me("Equatorial to horizontal: Elevation", round(ele, 3)) # Equatorial to horizontal: Elevation: 15.125 - Horizontal to equatorial coordinates:: azi = Angle(68.0337) ele = Angle(15.1249) lat = Angle(38, 55, 17) h, dec = horizontal2equatorial(azi, ele, lat) print_me("Horizontal to equatorial. Hour angle", round(h, 4)) # Horizontal to equatorial. Hour angle: 64.3521 print_me("Horizontal to equatorial. Declination", dec.dms_str(n_dec=0)) # Horizontal to equatorial. Declination: -6d 43' 12.0'' - Equatorial to galactic coordinates:: ra = Angle(17, 48, 59.74, ra=True) dec = Angle(-14, 43, 8.2) lon, lat = equatorial2galactic(ra, dec) print_me("Equatorial to galactic. Longitude", round(lon, 4)) # Equatorial to galactic. Longitude: 12.9593 print_me("Equatorial to galactic. Latitude", round(lat, 4)) # Equatorial to galactic. Latitude: 6.0463 - Galactic to equatorial coordinates:: lon = Angle(12.9593) lat = Angle(6.0463) ra, dec = galactic2equatorial(lon, lat) print_me("Galactic to equatorial. Right ascension", ra.ra_str(n_dec=1)) # Galactic to equatorial. Right ascension: 17h 48' 59.7'' print_me("Galactic to equatorial. Declination", dec.dms_str(n_dec=0)) # Galactic to equatorial. Declination: -14d 43' 8.0'' In addition, there is a function to compute the ecliptic longitudes of the two points of the ecliptic which are on the horizon, as well as the angle between the ecliptic and the horizon:: sidereal_time = Angle(5.0, ra=True) lat = Angle(51.0) epsilon = Angle(23.44) lon1, lon2, i = ecliptic_horizon(sidereal_time, lat, epsilon) print_me("Longitude of ecliptic point #1 on the horizon", lon1.dms_str(n_dec=1)) # Longitude of ecliptic point #1 on the horizon: 169d 21' 29.9'' print_me("Longitude of ecliptic point #2 on the horizon", lon2.dms_str(n_dec=1)) # Longitude of ecliptic point #2 on the horizon: 349d 21' 29.9'' print_me("Angle between the ecliptic and the horizon", round(i, 0)) # Angle between the ecliptic and the horizon: 62.0 Also, it is possible to compute the angle of the diurnal path of a celestial body relative to the horizon at the time of rising and setting:: dec = Angle(23.44) lat = Angle(40.0) j = diurnal_path_horizon(dec, lat) print_me("Diurnal path vs. horizon angle at time of rising and setting", j.dms_str(n_dec=1)) # Diurnal path vs. horizon angle at time of rising and setting: 45d 31' 28.4'' The times (in hours of the day) of rising, transit and setting of a given celestial body can be computed with the appropriate function:: longitude = Angle(71, 5, 0.0) latitude = Angle(42, 20, 0.0) alpha1 = Angle(2, 42, 43.25, ra=True) delta1 = Angle(18, 2, 51.4) alpha2 = Angle(2, 46, 55.51, ra=True) delta2 = Angle(18, 26, 27.3) alpha3 = Angle(2, 51, 7.69, ra=True) delta3 = Angle(18, 49, 38.7) h0 = Angle(-0.5667) delta_t = 56.0 theta0 = Angle(11, 50, 58.1, ra=True) rising, transit, setting = times_rise_transit_set(longitude, latitude,alpha1, delta1, \ alpha2, delta2, alpha3, delta3, h0, \ delta_t, theta0) print_me("Time of rising (hours of day)", round(rising, 4)) # Time of rising (hours of day): 12.4238 print_me("Time of transit (hours of day)", round(transit, 3)) # Time of transit (hours of day): 19.675 print_me("Time of setting (hours of day, next day)", round(setting, 3)) # Time of setting (hours of day, next day): 2.911 The air in the atmosphere introduces an error in the elevation due to the refraction. We can compute the true (airless) elevation from the apparent elevation, and viceversa. - Apparent elevation to true (airless) elevation:: apparent_elevation = Angle(0, 30, 0.0) true_elevation = refraction_apparent2true(apparent_elevation) print_me("True elevation for an apparent elevation of 30'", true_elevation.dms_str(n_dec=1)) # True elevation for an apparent elevation of 30': 1' 14.7'' - True elevation to apparent elevation:: true_elevation = Angle(0, 33, 14.76) apparent_elevation = refraction_true2apparent(true_elevation) print_me("Apparent elevation for a true elevation of 33' 14.76''", apparent_elevation.dms_str(n_dec=2)) # Apparent elevation for a true elevation of 33' 14.76'': 57' 51.96'' This module provides a function to compute the angular separation between two celestial bodies:: alpha1 = Angle(14, 15, 39.7, ra=True) delta1 = Angle(19, 10, 57.0) alpha2 = Angle(13, 25, 11.6, ra=True) delta2 = Angle(-11, 9, 41.0) sep_ang = angular_separation(alpha1, delta1, alpha2, delta2) print_me("Angular separation between two given celestial bodies, in degrees", round(sep_ang, 3)) # Angular separation between two given celestial bodies, in degrees: 32.793 We can compute the minimum angular separation achieved between two celestial objects. For that, we must provide the positions at three equidistant epochs:: # EPOCH: Sep 13th, 1978, 0h TT: alpha1_1 = Angle(10, 29, 44.27, ra=True) delta1_1 = Angle(11, 2, 5.9) alpha2_1 = Angle(10, 33, 29.64, ra=True) delta2_1 = Angle(10, 40, 13.2) # EPOCH: Sep 14th, 1978, 0h TT: alpha1_2 = Angle(10, 36, 19.63, ra=True) delta1_2 = Angle(10, 29, 51.7) alpha2_2 = Angle(10, 33, 57.97, ra=True) delta2_2 = Angle(10, 37, 33.4) # EPOCH: Sep 15th, 1978, 0h TT: alpha1_3 = Angle(10, 43, 1.75, ra=True) delta1_3 = Angle(9, 55, 16.7) alpha2_3 = Angle(10, 34, 26.22, ra=True) delta2_3 = Angle(10, 34, 53.9) a = minimum_angular_separation(alpha1_1, delta1_1, alpha1_2, delta1_2, alpha1_3, delta1_3, alpha2_1, delta2_1, alpha2_2, delta2_2, alpha2_3, delta2_3) print_me("Minimum angular separation, epoch fraction", round(a[0], 6)) # Minimum angular separation, epoch fraction: -0.370726 # NOTE: Given that 'n' is negative, and Sep 14th is the middle epoch (n=0), # then the minimum angular separation is achieved on Sep 13th, specifically # at: 1.0 - 0.370726 = 0.629274 => Sep 13.629274 = Sep 13th, 15h 6' 9'' print_me("Minimum angular separation", a[1].dms_str(n_dec=0)) # Minimum angular separation: 3' 44.0'' There is a function to compute the relative position angle P of a body with respect to another body. In this example, given that the two bodies have the same right ascension, then the relative position angle between them must be 0 (or 180):: alpha1 = Angle(14, 15, 39.7, ra=True) delta1 = Angle(19, 10, 57.0) alpha2 = Angle(14, 15, 39.7, ra=True) # Same as alpha1 delta2 = Angle(-11, 9, 41.0) pos_ang = relative_position_angle(alpha1, delta1, alpha2, delta2) print_me("Relative position angle", round(pos_ang, 1)) # Relative position angle: 0.0 Planetary conjunctions may be computed with the appropriate function:: alpha1_1 = Angle(10, 24, 30.125, ra=True) delta1_1 = Angle(6, 26, 32.05) alpha1_2 = Angle(10, 25, 0.342, ra=True) delta1_2 = Angle(6, 10, 57.72) alpha1_3 = Angle(10, 25, 12.515, ra=True) delta1_3 = Angle(5, 57, 33.08) alpha1_4 = Angle(10, 25, 6.235, ra=True) delta1_4 = Angle(5, 46, 27.07) alpha1_5 = Angle(10, 24, 41.185, ra=True) delta1_5 = Angle(5, 37, 48.45) alpha2_1 = Angle(10, 27, 27.175, ra=True) delta2_1 = Angle(4, 4, 41.83) alpha2_2 = Angle(10, 26, 32.410, ra=True) delta2_2 = Angle(3, 55, 54.66) alpha2_3 = Angle(10, 25, 29.042, ra=True) delta2_3 = Angle(3, 48, 3.51) alpha2_4 = Angle(10, 24, 17.191, ra=True) delta2_4 = Angle(3, 41, 10.25) alpha2_5 = Angle(10, 22, 57.024, ra=True) delta2_5 = Angle(3, 35, 16.61) alpha1_list = [alpha1_1, alpha1_2, alpha1_3, alpha1_4, alpha1_5] delta1_list = [delta1_1, delta1_2, delta1_3, delta1_4, delta1_5] alpha2_list = [alpha2_1, alpha2_2, alpha2_3, alpha2_4, alpha2_5] delta2_list = [delta2_1, delta2_2, delta2_3, delta2_4, delta2_5] pc = planetary_conjunction(alpha1_list, delta1_list, alpha2_list, delta2_list) print_me("Epoch fraction 'n' for planetary conjunction", round(pc[0], 5)) # Epoch fraction 'n' for planetary conjunction: 0.23797 print_me("Difference in declination at conjunction", pc[1].dms_str(n_dec=1)) # Difference in declination at conjunction: 2d 8' 21.8'' If the planetary conjunction is with a star, it is a little bit simpler:: alpha_1 = Angle(15, 3, 51.937, ra=True) delta_1 = Angle(-8, 57, 34.51) alpha_2 = Angle(15, 9, 57.327, ra=True) delta_2 = Angle(-9, 9, 3.88) alpha_3 = Angle(15, 15, 37.898, ra=True) delta_3 = Angle(-9, 17, 37.94) alpha_4 = Angle(15, 20, 50.632, ra=True) delta_4 = Angle(-9, 23, 16.25) alpha_5 = Angle(15, 25, 32.695, ra=True) delta_5 = Angle(-9, 26, 1.01) alpha_star = Angle(15, 17, 0.446, ra=True) delta_star = Angle(-9, 22, 58.47) alpha_list = [alpha_1, alpha_2, alpha_3, alpha_4, alpha_5] delta_list = [delta_1, delta_2, delta_3, delta_4, delta_5] pc = planet_star_conjunction(alpha_list, delta_list, alpha_star, delta_star) print_me("Epoch fraction 'n' for planetary conjunction with star", round(pc[0], 4)) # Epoch fraction 'n' for planetary conjunction with star: 0.2551 print_me("Difference in declination with star at conjunction", pc[1].dms_str(n_dec=0)) # Difference in declination with star at conjunction: 3' 38.0'' It is possible to compute when a planet and two other stars will be in a straight line:: alpha_1 = Angle(7, 55, 55.36, ra=True) delta_1 = Angle(21, 41, 3.0) alpha_2 = Angle(7, 58, 22.55, ra=True) delta_2 = Angle(21, 35, 23.4) alpha_3 = Angle(8, 0, 48.99, ra=True) delta_3 = Angle(21, 29, 38.2) alpha_4 = Angle(8, 3, 14.66, ra=True) delta_4 = Angle(21, 23, 47.5) alpha_5 = Angle(8, 5, 39.54, ra=True) delta_5 = Angle(21, 17, 51.4) alpha_star1 = Angle(7, 34, 16.40, ra=True) delta_star1 = Angle(31, 53, 51.2) alpha_star2 = Angle(7, 45, 0.10, ra=True) delta_star2 = Angle(28, 2, 12.5) alpha_list = [alpha_1, alpha_2, alpha_3, alpha_4, alpha_5] delta_list = [delta_1, delta_2, delta_3, delta_4, delta_5] n = planet_stars_in_line(alpha_list, delta_list, alpha_star1, delta_star1, alpha_star2, delta_star2) print_me("Epoch fraction 'n' when bodies are in a straight line", round(n, 4)) # Epoch fraction 'n' when bodies are in a straight line: 0.2233 The function 'straight_line()' computes if three celestial bodies are in line providing the angle with which the bodies differ from a great circle:: alpha1 = Angle(5, 32, 0.40, ra=True) delta1 = Angle(0, -17, 56.9) alpha2 = Angle(5, 36, 12.81, ra=True) delta2 = Angle(-1, 12, 7.0) alpha3 = Angle(5, 40, 45.52, ra=True) delta3 = Angle(-1, 56, 33.3) psi, omega = straight_line(alpha1, delta1, alpha2, delta2, alpha3, delta3) print_me("Angle deviation from a straight line", psi.dms_str(n_dec=0)) # Angle deviation from a straight line: 7d 31' 1.0'' print_me("Angular distance of central point to the straight line", omega.dms_str(n_dec=0)) # Angular distance of central point to the straight line: -5' 24.0'' Now let's compute the size of the smallest circle that contains three given celestial bodies:: alpha1 = Angle(12, 41, 8.63, ra=True) delta1 = Angle(-5, 37, 54.2) alpha2 = Angle(12, 52, 5.21, ra=True) delta2 = Angle(-4, 22, 26.2) alpha3 = Angle(12, 39, 28.11, ra=True) delta3 = Angle(-1, 50, 3.7) d = circle_diameter(alpha1, delta1, alpha2, delta2, alpha3, delta3) print_me("Diameter of smallest circle containing three celestial bodies", d.dms_str(n_dec=0)) # Diameter of smallest circle containing three celestial bodies: 4d 15' 49.0'' Let's find the apparent position of a star (Theta Persei) for a given epoch:: epoch = Epoch(2028, 11, 13.19) alpha = Angle(2, 46, 11.331, ra=True) delta = Angle(49, 20, 54.54) sun_lon = Angle(231.328) app_alpha, app_delta = apparent_position(epoch, alpha, delta, sun_lon) print_me("Apparent right ascension", app_alpha.ra_str(n_dec=2)) # Apparent right ascension: 2h 46' 14.39'' print_me("Apparent declination", app_delta.dms_str(n_dec=2)) # Apparent declination: 49d 21' 7.45'' Convert orbital elements of a celestial object from one equinox to another:: epoch0 = Epoch(2358042.5305) epoch = Epoch(2433282.4235) i0 = Angle(47.122) arg0 = Angle(151.4486) lon0 = Angle(45.7481) i1, arg1, lon1 = orbital_equinox2equinox(epoch0, epoch, i0, arg0, lon0) print_me("New inclination", round(i1(), 3)) # New inclination: 47.138 print_me("New argument of perihelion", round(arg1(), 4)) # New argument of perihelion: 151.4782 print_me("New longitude of ascending node", round(lon1(), 4)) # New longitude of ascending node: 48.6037 Compute the eccentric and true anomalies using Kepler's equation:: eccentricity = 0.1 mean_anomaly = Angle(5.0) e, v = kepler_equation(eccentricity, mean_anomaly) print_me("Eccentric anomaly, Case #1", round(e(), 6)) # Eccentric anomaly, Case #1: 5.554589 print_me("True anomaly, Case #1", round(v(), 6)) # True anomaly, Case #1: 6.139762 e, v = kepler_equation(0.99, Angle(0.2, radians=True)) print_me("Eccentric anomaly, Case #2", round(e(), 8)) # Eccentric anomaly, Case #2: 61.13444578 print_me("True anomaly, Case #2", round(v(), 6)) # True anomaly, Case #2: 166.311977 Compute the velocity of a body in a given point of its (unperturbated elliptic) orbit, in this case the comet Halley in 1986:: r = 1.0 a = 17.9400782 v = velocity(r, a) print_me("Velocity ar 1 AU", round(v, 2)) # Velocity at 1 AU: 41.53 Compute the velocity at perihelion:: a = 17.9400782 e = 0.96727426 vp = velocity_perihelion(e, a) print_me("Velocity at perihelion", round(vp, 2)) # Velocity at perihelion: 54.52 And now compute the velocity at aphelion:: a = 17.9400782 e = 0.96727426 va = velocity_aphelion(e, a) print_me("Velocity at aphelion", round(va, 2)) # Velocity at aphelion: 0.91 Calculate the length of the orbit for the same comet Halley:: a = 17.9400782 e = 0.96727426 length = length_orbit(e, a) print_me("Length of the orbit (AU)", round(length, 2)) # Length of the orbit (AU): 77.06 Compute passage through the nodes of an elliptic orbit:: omega = Angle(111.84644) e = 0.96727426 a = 17.9400782 t = Epoch(1986, 2, 9.45891) time, r = passage_nodes_elliptic(omega, e, a, t) y, m, d = time.get_date() d = round(d, 2) print("Time of passage through ascending node: {}/{}/{}".format(y, m, d)) # Time of passage through ascending node: 1985/11/9.16 print("Radius vector at ascending node: {}".format(round(r, 4))) # Radius vector at ascending node: 1.8045 Passage through the nodes of a parabolic orbit:: omega = Angle(154.9103) q = 1.324502 t = Epoch(1989, 8, 20.291) time, r = passage_nodes_parabolic(omega, q, t, ascending=False) y, m, d = time.get_date() d = round(d, 2) print("Time of passage through descending node: {}/{}/{}".format(y, m, d)) # Time of passage through descending node: 1989/9/17.64 print("Radius vector at descending node: {}".format(round(r, 4))) # Radius vector at descending node: 1.3901 Compute the phase angle:: sun_dist = 0.724604 earth_dist = 0.910947 sun_earth_dist = 0.983824 angle = phase_angle(sun_dist, earth_dist, sun_earth_dist) print_me("Phase angle", round(angle, 2)) # Phase angle: 72.96 Now, let's compute the illuminated fraction of the disk:: k = illuminated_fraction(sun_dist, earth_dist, sun_earth_dist) print_me("Illuminated fraction of planet disk", round(k, 3)) # Illuminated fraction of planet disk: 0.647 pymeeus-0.3.6/docs/source/ex-CurveFitting.rst000066400000000000000000000057311355545537700212450ustar00rootroot00000000000000CurveFitting examples ********************* Let's define a small helper function:: def print_me(msg, val): print("{}: {}".format(msg, val)) Now let's work with the CurveFitting class. First, create a CurveFitting object:: cf1 = CurveFitting([73.0, 38.0, 35.0, 42.0, 78.0, 68.0, 74.0, 42.0, 52.0, 54.0, 39.0, 61.0, 42.0, 49.0, 50.0, 62.0, 44.0, 39.0, 43.0, 54.0, 44.0, 37.0], [90.4, 125.3, 161.8, 143.4, 52.5, 50.8, 71.5, 152.8, 131.3, 98.5, 144.8, 78.1, 89.5, 63.9, 112.1, 82.0, 119.8, 161.2, 208.4, 111.6, 167.1, 162.1]) Let's use ``linear_fitting()``:: a, b = cf1.linear_fitting() print(" a = {}\tb = {}".format(round(a, 2), round(b, 2))) # a = -2.49 b = 244.18 Use the copy constructor:: cf2 = CurveFitting(cf1) a, b = cf2.linear_fitting() print(" a = {}\tb = {}".format(round(a, 2), round(b, 2))) # a = -2.49 b = 244.18 Get the number of value pairs internally stored:: print_me("Number of value pairs inside 'cf2'", len(cf2)) # Number of value pairs inside 'cf2': 22 Compute the correlation coefficient:: r = cf1.correlation_coeff() print_me(" r", round(r, 3)) # r: -0.767 Define a new CurveFitting object:: cf2 = CurveFitting([-2.0, -1.5, -1.0, -0.5, 0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0], [-9.372, -3.821, 0.291, 3.730, 5.822, 8.324, 9.083, 6.957, 7.006, 0.365, -1.722]) Now use ``quadratic_fitting()``:: a, b, c = cf2.quadratic_fitting() # Original curve: y = -2.0*x*x + 3.5*x + 7.0 + noise print(" a = {}\tb = {}\tc = {}".format(round(a, 2), round(b, 2), round(c, 2))) # a = -2.22 b = 3.76 c = 6.64 Yet another CurveFitting object:: cf4 = CurveFitting([3, 20, 34, 50, 75, 88, 111, 129, 143, 160, 183, 200, 218, 230, 248, 269, 290, 303, 320, 344], [0.0433, 0.2532, 0.3386, 0.3560, 0.4983, 0.7577, 1.4585, 1.8628, 1.8264, 1.2431, -0.2043, -1.2431, -1.8422, -1.8726, -1.4889, -0.8372, -0.4377, -0.3640, -0.3508, -0.2126]) Let's define the three functions to be used for fitting:: def sin1(x): return sin(radians(x)) def sin2(x): return sin(radians(2.0*x)) def sin3(x): return sin(radians(3.0*x)) Use ``general_fitting()`` here:: a, b, c = cf4.general_fitting(sin1, sin2, sin3) # General fitting with f0 = sin(x), f1 = sin(2*x), f2 = sin(3*x) print(" a = {}\tb = {}\tc = {}".format(round(a, 2), round(b, 2), round(c, 2))) # a = 1.2 b = -0.77 c = 0.39 A final example:: cf5 = CurveFitting([0, 1.2, 1.4, 1.7, 2.1, 2.2]) a, b, c = cf5.general_fitting(sqrt) # General fitting with f0 = sqrt(x), f1 = 0.0 and f2 = 0.0 print(" a = {}\tb = {}\t\tc = {}".format(round(a, 3), round(b, 3), round(c, 3))) # a = 1.016 b = 0.0 c = 0.0 pymeeus-0.3.6/docs/source/ex-Earth.rst000066400000000000000000000171471355545537700177030ustar00rootroot00000000000000Earth examples ************** Let's define a small helper function:: def print_me(msg, val): print("{}: {}".format(msg, val)) An important concept are the reference ellipsoids, comprising information about the Earth global model we are going to use. A very important reference ellipsoid is **WGS84**, predefined here:: print_me("WGS84", WGS84) # WGS84: 6378137.0:0.00335281066475:7.292115e-05 # First field is equatorial radius, second field is the flattening, and the # third field is the angular rotation velocity, in radians per second Let's print the semi-minor axis (polar radius):: print_me("Polar radius, b", WGS84.b()) # Polar radius, b: 6356752.31425 And now, let's print the eccentricity of Earth's meridian:: print_me("Eccentricity, e", WGS84.e()) # Eccentricity, e: 0.0818191908426 We create an Earth object with a given reference ellipsoid. By default, it is **WGS84**, but we can use another:: e = Earth(IAU76) Print the parameters of reference ellipsoid being used:: print_me("'e' Earth object parameters", e) # 'e' Earth object parameters: 6378140.0:0.0033528131779:7.292114992e-05 Compute the distance to the center of the Earth from a given point at sea level, and at a certain latitude. It is given as a fraction of equatorial radius:: lat = Angle(65, 45, 30.0) # We can use an Angle for this print_me("Distance to Earth's center, from latitude 65d 45' 30''", e.rho(lat)) # Distance to Earth's center, from latitude 65d 45' 30'': 0.997216343095 Parameters *rho\*sin(lat)* and *rho\*cos(lat)* are useful for different astronomical applications:: height = 650.0 print_me("rho*sin(lat)", e.rho_sinphi(lat, height)) # rho*sin(lat): 0.908341718779 print_me("rho*cos(lat)", e.rho_cosphi(lat, height)) # rho*cos(lat): 0.411775501279 Compute the radius of the parallel circle at a given latitude:: print_me("Radius of parallel circle at latitude 65d 45' 30'' (meters)", e.rp(lat)) # Radius of parallel circle at latitude 65d 45' 30'' (meters): 2626094.91467 Compute the radius of curvature of the Earth's meridian at given latitude:: print_me("Radius of Earth's meridian at latitude 65d 45' 30'' (meters)", e.rm(lat)) # Radius of Earth's meridian at latitude 65d 45' 30'' (meters): 6388705.74543 It is easy to compute the linear velocity at different latitudes:: print_me("Linear velocity at the Equator (meters/second)", e.linear_velocity(0.0)) # Linear velocity at the Equator (meters/second): 465.101303151 print_me("Linear velocity at latitude 65d 45' 30'' (meters/second)", e.linear_velocity(lat)) # Linear velocity at latitude 65d 45' 30'' (meters/second): 191.497860977 And now, let's compute the distance between two points on the Earth: - Bangkok: 13d 14' 09'' North, 100d 29' 39'' East - Buenos Aires: 34d 36' 12'' South, 58d 22' 54'' West .. note:: We will consider that positions 'East' and 'South' are negative Here we will take advantage of facilities provided by ``Angle`` class:: lon_ban = Angle(-100, 29, 39.0) lat_ban = Angle(13, 14, 9.0) lon_bai = Angle(58, 22, 54.0) lat_bai = Angle(-34, 36, 12.0) dist, error = e.distance(lon_ban, lat_ban, lon_bai, lat_bai) print_me("The distance between Bangkok and Buenos Aires is (km)", round(dist/1000.0, 2)) # The distance between Bangkok and Buenos Aires is (km): 16832.89 print_me("The approximate error of the estimation is (meters)", round(error, 0)) # The approximate error of the estimation is (meters): 189.0 Let's now compute the geometric heliocentric position for a given epoch:: epoch = Epoch(1992, 10, 13.0) lon, lat, r = Earth.geometric_heliocentric_position(epoch) print_me("Geometric Heliocentric Longitude", lon.to_positive()) # Geometric Heliocentric Longitude: 19.9072721503 print_me("Geometric Heliocentric Latitude", lat.dms_str(n_dec=3)) # Geometric Heliocentric Latitude: -0.721'' print_me("Radius vector", r) # Radius vector: 0.997608520236 And now, compute the apparent heliocentric position for the same epoch:: epoch = Epoch(1992, 10, 13.0) lon, lat, r = Earth.apparent_heliocentric_position(epoch) print_me("Apparent Heliocentric Longitude", lon.to_positive()) # Apparent Heliocentric Longitude: 19.9059856939 print_me("Apparent Heliocentric Latitude", lat.dms_str(n_dec=3)) # Apparent Heliocentric Latitude: -0.721'' print_me("Radius vector", r) # Radius vector: 0.997608520236 Print mean orbital elements for Earth at 2065.6.24:: epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Earth.orbital_elements_mean_equinox(epoch) print_me("Mean longitude of the planet", round(l, 6)) # Mean longitude of the planet: 272.716028 print_me("Semimajor axis of the orbit (UA)", round(a, 8)) # Semimajor axis of the orbit (UA): 1.00000102 print_me("Eccentricity of the orbit", round(e, 7)) # Eccentricity of the orbit: 0.0166811 print_me("Inclination on plane of the ecliptic", round(i, 6)) # Inclination on plane of the ecliptic: 0.0 print_me("Longitude of the ascending node", round(ome, 5)) # Longitude of the ascending node: 174.71534 print_me("Argument of the perihelion", round(arg, 6)) # Argument of the perihelion: -70.651889 Find the epoch of the Perihelion closer to 2008/02/01:: epoch = Epoch(2008, 2, 1.0) e = Earth.perihelion_aphelion(epoch) y, m, d, h, mi, s = e.get_full_date() peri = str(y) + '/' + str(m) + '/' + str(d) + ' ' + str(h) + ':' + str(mi) print_me("The Perihelion closest to 2008/2/1 happened on", peri) # The Perihelion closest to 2008/2/1 happened on: 2008/1/2 23:53 Compute the time of passage through an ascending node:: epoch = Epoch(2019, 1, 1) time, r = Earth.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) print("Time of passage through ascending node: {}/{}/{}".format(y, m, d)) # Time of passage through ascending node: 2019/3/15.0 print("Radius vector at ascending node: {}".format(round(r, 4))) # Radius vector at ascending node: 0.9945 Compute the parallax correction:: right_ascension = Angle(22, 38, 7.25, ra=True) declination = Angle(-15, 46, 15.9) latitude = Angle(33, 21, 22) distance = 0.37276 hour_angle = Angle(288.7958) top_ra, top_dec = Earth.parallax_correction(right_ascension, declination, latitude, distance, hour_angle) print_me("Corrected topocentric right ascension: ", top_ra.ra_str(n_dec=2)) # Corrected topocentric right ascension: : 22h 38' 8.54'' print_me("Corrected topocentric declination", top_dec.dms_str(n_dec=1)) # Corrected topocentric declination: -15d 46' 30.0'' Compute the parallax correction in ecliptical coordinates:: longitude = Angle(181, 46, 22.5) latitude = Angle(2, 17, 26.2) semidiameter = Angle(0, 16, 15.5) obs_lat = Angle(50, 5, 7.8) obliquity = Angle(23, 28, 0.8) sidereal_time = Angle(209, 46, 7.9) distance = 0.0024650163 topo_lon, topo_lat, topo_diam = \ Earth.parallax_ecliptical(longitude, latitude, semidiameter, obs_lat, obliquity, sidereal_time, distance) print_me("Corrected topocentric longitude", topo_lon.dms_str(n_dec=1)) # Corrected topocentric longitude: 181d 48' 5.0'' print_me("Corrected topocentric latitude", topo_lat.dms_str(n_dec=1)) # Corrected topocentric latitude: 1d 29' 7.1'' print_me("Corrected topocentric semidiameter", topo_diam.dms_str(n_dec=1)) # Corrected topocentric semidiameter: 16' 25.5'' pymeeus-0.3.6/docs/source/ex-Epoch.rst000066400000000000000000000217201355545537700176660ustar00rootroot00000000000000Epoch examples ************** Let's define a small helper function:: def print_me(msg, val): print("{}: {}".format(msg, val)) Let's start creating and Epoch object, and printing it:: e = Epoch(1987, 6, 19.5) print_me("JDE for 1987/6/19.5", e) # JDE for 1987/6/19.5: 2446966.00064 Redefine the Epoch object:: e.set(333, 'Jan', 27, 12) print_me("JDE for 333/1/27.5", e) # JDE for 333/1/27.5: 1842713.0 We can create an Epoch from a ``date`` or ``datetime`` object:: d = datetime.datetime(837, 4, 10, 7, 12, 0, 0) f = Epoch(d) print_me("JDE for 837/4/10.3", f) # JDE for 837/4/10.3: 2026871.8 Let's check if a given date belong to the Julian or the Gregorian calendar:: print_me("Is 1590/4/21.4 a Julian date?", Epoch.is_julian(1590, 4, 21.4)) # Is 1590/4/21.4 a Julian date?: False We can also check if a given year is leap or not:: print_me("Is -1000 a leap year?", Epoch.is_leap(-1000)) # Is -1000 a leap year?: True print_me("Is 1800 a leap year?", Epoch.is_leap(1800)) # Is 1800 a leap year?: False print_me("Is 2012 a leap year?", Epoch.is_leap(2012)) # Is 2012 a leap year?: True Get the Day Of Year (DOY) corresponding to a given date:: print_me("Day Of Year (DOY) of 1978/11/14", Epoch.get_doy(1978, 11, 14)) # Day Of Year (DOY) of 1978/11/14: 318.0 print_me("Day Of Year (DOY) of -400/2/29.9", Epoch.get_doy(-400, 2, 29.9)) # Day Of Year (DOY) of -400/2/29.9: 60.9 Now the opposite: Get a date from a DOY:: t = Epoch.doy2date(2017, 365.7) s = str(t[0]) + "/" + str(t[1]) + "/" + str(round(t[2], 2)) print_me("Date from DOY 2017:365.7", s) # Date from DOY 2017:365.7: 2017/12/31.7 t = Epoch.doy2date(-4, 60) s = str(t[0]) + "/" + str(t[1]) + "/" + str(round(t[2], 2)) print_me("Date from DOY -4:60", s) # Date from DOY -4:60: -4/2/29.0 There is an internal table which we can use to get the leap seconds:: print_me("Number of leap seconds applied up to July 1983", Epoch.leap_seconds(1983, 7)) # Number of leap seconds applied up to July 1983: 12 We can convert the internal JDE value back to a date:: e = Epoch(2436116.31) y, m, d = e.get_date() s = str(y) + "/" + str(m) + "/" + str(round(d, 2)) print_me("Date from JDE 2436116.31", s) # Date from JDE 2436116.31: 1957/10/4.81 It is possible to get the day of the week corresponding to a given date:: e = Epoch(2018, 'Feb', 15) print_me("The day of week of 2018/2/15 is", e.dow(as_string=True)) # The day of week of 2018/2/15 is: Thursday In some cases it is useful to get the Modified Julian Day (MJD):: e = Epoch(1923, 'August', 23) print_me("Modified Julian Day for 1923/8/23", round(e.mjd(), 2)) # Modified Julian Day for 1923/8/23: 23654.0 If your system is appropriately configured, you can get the difference in seconds between your local time and UTC:: print_me("From local system time to UTC you must add/subtract" + " this amount of seconds", Epoch.utc2local()) # From local system time to UTC you must add/subtract this amount of seconds: 7200.0 Compute DeltaT = TT - UT differences for various dates:: print_me("DeltaT (TT - UT) for Feb/333", round(Epoch.tt2ut(333, 2), 1)) # DeltaT (TT - UT) for Feb/333: 7358.5 print_me("DeltaT (TT - UT) for Jan/1642", round(Epoch.tt2ut(1642, 1), 1)) # DeltaT (TT - UT) for Jan/1642: 62.1 print_me("DeltaT (TT - UT) for Feb/1928", round(Epoch.tt2ut(1928, 1), 1)) # DeltaT (TT - UT) for Feb/1928: 24.2 print_me("DeltaT (TT - UT) for Feb/1977", round(Epoch.tt2ut(1977, 2), 1)) # DeltaT (TT - UT) for Feb/1977: 47.7 print_me("DeltaT (TT - UT) for Jan/1998", round(Epoch.tt2ut(1998, 1), 1)) # DeltaT (TT - UT) for Jan/1998: 63.0 The difference between civil day and sidereal day is almost 4 minutes:: e = Epoch(1987, 4, 10) st1 = round(e.mean_sidereal_time(), 9) e = Epoch(1987, 4, 11) st2 = round(e.mean_sidereal_time(), 9) ds = (st2 - st1)*DAY2MIN msg = "{}m {}s".format(INT(ds), (ds % 1)*60.0) print_me("Difference between sidereal time 1987/4/11 and 1987/4/10", msg) # Difference between sidereal time 1987/4/11 and 1987/4/10: 3m 56.555424s When correcting for nutation-related effects, we get the **apparent** sidereal time:: e = Epoch(1987, 4, 10) print_me("e.apparent_sidereal_time(23.44357, (-3.788)/3600.0)", e.apparent_sidereal_time(23.44357, (-3.788)/3600.0)) # e.apparent_sidereal_time(23.44357, (-3.788)/3600.0): 0.549145082637 Epoch class can also provide the date of Easter for a given year. Let's spice up the output a little bit, calling ``dow()`` and ``get_month()``:: month, day = Epoch.easter(2019) e = Epoch(2019, month, day) s = e.dow(as_string=True) + ", " + str(day) + get_ordinal_suffix(day) + \ " of " + Epoch.get_month(month, as_string=True) print_me("Easter day for 2019", s) # Easter day for 2019: Sunday, 21st of April Compute the date of the Jewish Easter (Pesach) for a given year:: month, day = Epoch.jewish_pesach(1990) s = str(day) + get_ordinal_suffix(day) + " of " + Epoch.get_month(month, as_string=True) print_me("Jewish Pesach day for 1990", s) # Jewish Pesach day for 1990: 10th of April Now, let's convert a date in the Moslem calendar to the Gregorian calendar:: y, m, d = Epoch.moslem2gregorian(1421, 1, 1) print_me("The date 1421/1/1 in the Moslem calendar is, in Gregorian " + "calendar", "{}/{}/{}".format(y, m, d)) # The date 1421/1/1 in the Moslem calendar is, in Gregorian calendar: 2000/4/6 y, m, d = Epoch.moslem2gregorian(1439, 9, 1) print_me("The start of Ramadan month (9/1) for Gregorian year 2018 is", "{}/{}/{}".format(y, m, d)) # The start of Ramadan month (9/1) for Gregorian year 2018 is: 2018/5/16 We can go from the Gregorian calendar back to the Moslem calendar too:: print_me("Date 1991/8/13 in Gregorian calendar is, in Moslem calendar", "{}/{}/{}".format(*Epoch.gregorian2moslem(1991, 8, 13))) # Date 1991/8/13 in Gregorian calendar is, in Moslem calendar: 1412/2/2 .. note:: The ``*`` before ``Epoch`` will **unpack** the tuple into components It is possible to carry out some algebraic operations with Epochs. - Add 10000 days to a given date:: a = Epoch(1991, 7, 11) b = a + 10000 y, m, d = b.get_date() s = str(y) + "/" + str(m) + "/" + str(round(d, 2)) print_me("1991/7/11 plus 10000 days is", s) # 1991/7/11 plus 10000 days is: 2018/11/26.0 - Subtract two Epochs to find the number of days between them:: a = Epoch(1986, 2, 9.0) b = Epoch(1910, 4, 20.0) print_me("The number of days between 1986/2/9 and 1910/4/20 is", round(a - b, 2)) # The number of days between 1986/2/9 and 1910/4/20 is: 27689.0 - We can also subtract a given amount of days from an Epoch:: a = Epoch(2003, 12, 31.0) b = a - 365.5 y, m, d = b.get_date() s = str(y) + "/" + str(m) + "/" + str(round(d, 2)) print_me("2003/12/31 minus 365.5 days is", s) # 2003/12/31 minus 365.5 days is: 2002/12/30.5 - Accumulative addition and subtraction of days is also allowed:: a = Epoch(2003, 12, 31.0) a += 32.5 y, m, d = a.get_date() s = str(y) + "/" + str(m) + "/" + str(round(d, 2)) print_me("2003/12/31 plus 32.5 days is", s) # 2003/12/31 plus 32.5 days is: 2004/2/1.5 a = Epoch(2001, 12, 31.0) a -= 2*365 y, m, d = a.get_date() s = str(y) + "/" + str(m) + "/" + str(round(d, 2)) print_me("2001/12/31 minus 2*365 days is", s) # 2001/12/31 minus 2*365 days is: 2000/1/1.0 - It is also possible to add days from the right:: a = Epoch(2004, 2, 27.8) b = 2.2 + a y, m, d = b.get_date() s = str(y) + "/" + str(m) + "/" + str(round(d, 2)) print_me("2.2 days plus 2004/2/27.8 is", s) # 2.2 days plus 2004/2/27.8 is: 2004/3/1.0 - Comparison operadors between epochs are also defined:: a = Epoch(2007, 5, 20.0) b = Epoch(2007, 5, 20.000001) print_me("2007/5/20.0 == 2007/5/20.000001", a == b) # 2007/5/20.0 == 2007/5/20.000001: False print_me("2007/5/20.0 != 2007/5/20.000001", a != b) # 2007/5/20.0 != 2007/5/20.000001: True print_me("2007/5/20.0 > 2007/5/20.000001", a > b) # 2007/5/20.0 > 2007/5/20.000001: False print_me("2007/5/20.0 <= 2007/5/20.000001", a <= b) # 2007/5/20.0 <= 2007/5/20.000001: True - Compute the time of rise and setting of the Sun in a given day:: e = Epoch(2018, 5, 2) print("On May 2nd, 2018, Sun rising/setting times in Munich were (UTC):") latitude = Angle(48, 8, 0) longitude = Angle(11, 34, 0) altitude = 520.0 rising, setting = e.rise_set(latitude, longitude, altitude) y, m, d, h, mi, s = rising.get_full_date() print("Rising time: {}:{}".format(h, mi)) # Rising time: 3:50 y, m, d, h, mi, s = setting.get_full_date() print("Setting time: {}:{}".format(h, mi)) # Setting time: 18:33 pymeeus-0.3.6/docs/source/ex-Interpolation.rst000066400000000000000000000062721355545537700214640ustar00rootroot00000000000000Interpolation examples ********************** Let's define a small helper function:: def print_me(msg, val): print("{}: {}".format(msg, val)) Declare an Interpolation object:: i = Interpolation([5, 3, 6, 1, 2, 4, 9], [10, 6, 12, 2, 4, 8]) print(i) # X: [1, 2, 3, 4, 5, 6] # Y: [2, 4, 6, 8, 10, 12] .. note:: a. They are ordered in 'x' b. The extra value in 'x' was dropped Use the copy constructor. We can easily make a copy of an Interpolation object:: j = Interpolation(i) print(j) # X: [1, 2, 3, 4, 5, 6] # Y: [2, 4, 6, 8, 10, 12] j = Interpolation([0.0, 1.0, 3.0], [-1.0, -2.0, 2.0]) print(j) # X: [0.0, 1.0, 3.0] # Y: [-1.0, -2.0, 2.0] print_me("j(2)", j(2)) # j(2): -1.0 print_me("j(0.5)", j(0.5)) # j(0.5): -1.75 - Test with a value already in the data table:: print_me("j(1)", j(1)) # j(1): -2.0 Get the number of interpolation points internally stored:: print_me("Number or interpolation points in 'j'", len(j)) # Number or interpolation points in 'j': 3 We can interpolate Angles too:: k = Interpolation([27.0, 27.5, 28.0, 28.5, 29.0], [Angle(0, 54, 36.125), Angle(0, 54, 24.606), Angle(0, 54, 15.486), Angle(0, 54, 8.694), Angle(0, 54, 4.133)]) print_me("k(28.278)", Angle(k(28.278)).dms_str()) # k(28.278): 54' 11.4279073579'' Let's work with a new Interpolation object:: m = Interpolation([-1.0, 0.0, 1.0], [-2.0, 3.0, 2.0]) print(m) # X: [-1.0, 0.0, 1.0] # Y: [-2.0, 3.0, 2.0] - Get some interpolated values:: print_me("m(-0.5)", m(-0.5)) # m(-0.5): 1.25 print_me("m(0.5)", m(0.5)) # m(0.5): 3.25 - Get derivatives:: print_me("m'(-1.0)", m.derivative(-1.0)) # m'(-1.0): 8.0 print_me("m'(-0.5)", m.derivative(-0.5)) # m'(-0.5): 5.0 print_me("m'(0.0)", m.derivative(0.0)) # m'(0.0): 2.0 print_me("m'(0.5)", m.derivative(0.5)) # m'(0.5): -1.0 print_me("m'(1.0)", m.derivative(1.0)) # m'(1.0): -4.0 - Get the root within the interval:: print_me("m.root()", m.root()) # m.root(): -0.720759220056 - Get the extremum within the interval:: print_me("m.minmax()", m.minmax()) # m.minmax(): 0.333333333333 Let's work now with the interpolation of sine function:: m = Interpolation([29.43, 30.97, 27.69, 28.11, 31.58, 33.05], [0.4913598528, 0.5145891926, 0.4646875083, 0.4711658342, 0.5236885653, 0.5453707057]) print_me("sin(29.5)\t", m(29.5)) # sin(29.5) : 0.492423560118 print_me("sin(30.0)\t", m(30.0)) # sin(30.0) : 0.500000000018 print_me("sin(30.5)\t", m(30.5)) # sin(30.5) : 0.507538362978 Derivatives must be adjusted because degrees were used instead of radians:: print_me("sin'(29.5)\t", degrees(m.derivative(29.5))) # sin'(29.5) : 0.870355696916 print_me("sin'(30.0)\t", degrees(m.derivative(30.0))) # sin'(30.0) : 0.866025403791 print_me("sqrt(3.0)/2.0\t", sqrt(3.0)/2.0) # sqrt(3.0)/2.0 : 0.866025403784 print_me("sin'(30.5)\t", degrees(m.derivative(30.5))) # sin'(30.5) : 0.861629160353 pymeeus-0.3.6/docs/source/ex-Jupiter.rst000066400000000000000000000076141355545537700202600ustar00rootroot00000000000000Jupiter examples **************** Let's define a small helper function:: def print_me(msg, val): print("{}: {}".format(msg, val)) We can compute the geometric heliocentric position for a given epoch:: epoch = Epoch(2018, 10, 27.0) lon, lat, r = Jupiter.geometric_heliocentric_position(epoch) print_me("Geometric Heliocentric Longitude", lon.to_positive()) # Geometric Heliocentric Longitude: 241.5873 print_me("Geometric Heliocentric Latitude", lat) # Geometric Heliocentric Latitude: 0.8216 print_me("Radius vector", r) # Radius vector: 5.36848 Compute the geocentric position for 1992/12/20:: epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Jupiter.geocentric_position(epoch) print_me("Right ascension", ra.ra_str(n_dec=1)) # Right ascension: 12h 47' 9.6'' print_me("Declination", dec.dms_str(n_dec=1)) # Declination: -3d 41' 55.3'' print_me("Elongation", elon.dms_str(n_dec=1)) # Elongation: 76d 2' 26.0'' Print mean orbital elements for Jupiter at 2065.6.24:: epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Jupiter.orbital_elements_mean_equinox(epoch) print_me("Mean longitude of the planet", round(l, 6)) # Mean longitude of the planet: 222.433723 print_me("Semimajor axis of the orbit (UA)", round(a, 8)) # Semimajor axis of the orbit (UA): 5.20260333 print_me("Eccentricity of the orbit", round(e, 7)) # Eccentricity of the orbit: 0.0486046 print_me("Inclination on plane of the ecliptic", round(i, 6)) # Inclination on plane of the ecliptic: 1.29967 print_me("Longitude of the ascending node", round(ome, 5)) # Longitude of the ascending node: 101.13309 print_me("Argument of the perihelion", round(arg, 6)) # Argument of the perihelion: -85.745532 Compute the time of the conjunction close to 1993/10/1:: epoch = Epoch(1993, 10, 1.0) conj = Jupiter.conjunction(epoch) y, m, d = conj.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Conjunction date", date) # Conjunction date: 1993/10/18.3341 Compute the time of the opposition close to -6/9/1:: epoch = Epoch(-6, 9, 1.0) oppo = Jupiter.opposition(epoch) y, m, d = oppo.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Opposition date", date) # Opposition date: -6/9/15.2865 Compute the time of the station in longitude #1 close to 2018/11/1:: epoch = Epoch(2018, 11, 1.0) sta1 = Jupiter.station_longitude_1(epoch) y, m, d = sta1.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Date of station in longitude #1", date) # Date of station in longitude #1: 2018/3/9.1288 Compute the time of the station in longitude #2 close to 2018/11/1:: epoch = Epoch(2018, 11, 1.0) sta2 = Jupiter.station_longitude_2(epoch) y, m, d = sta2.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Date of station in longitude #2", date) # Date of station in longitude #2: 2018/7/10.6679 Find the epoch of the Aphelion closer to 1981/6/1:: epoch = Epoch(1981, 6, 1.0) e = Jupiter.perihelion_aphelion(epoch, perihelion=False) y, m, d, h, mi, s = e.get_full_date() peri = str(y) + '/' + str(m) + '/' + str(d) + ' at ' + str(h) + ' hours' print_me("The Aphelion closest to 1981/6/1 will happen on", peri) # The Aphelion closest to 1981/6/1 will happen on: 1981/7/28 at 6 hours Compute the time of passage through an ascending node:: epoch = Epoch(2019, 1, 1) time, r = Jupiter.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) print("Time of passage through ascending node: {}/{}/{}".format(y, m, d)) # Time of passage through ascending node: 2025/9/15.6 print("Radius vector at ascending node: {}".format(round(r, 4))) # Radius vector at ascending node: 5.1729 pymeeus-0.3.6/docs/source/ex-Mars.rst000066400000000000000000000075541355545537700175430ustar00rootroot00000000000000Mars examples ************* Let's define a small helper function:: def print_me(msg, val): print("{}: {}".format(msg, val)) We can compute the geometric heliocentric position for a given epoch:: epoch = Epoch(2018, 10, 27.0) lon, lat, r = Mars.geometric_heliocentric_position(epoch) print_me("Geometric Heliocentric Longitude", lon.to_positive()) # Geometric Heliocentric Longitude: 2.0015 print_me("Geometric Heliocentric Latitude", lat) # Geometric Heliocentric Latitude: -1.3683 print_me("Radius vector", r) # Radius vector: 1.39306 Compute the geocentric position for 1992/12/20:: epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Mars.geocentric_position(epoch) print_me("Right ascension", ra.ra_str(n_dec=1)) # Right ascension: 7h 48' 35.4'' print_me("Declination", dec.dms_str(n_dec=1)) # Declination: 24d 35' 33.9'' print_me("Elongation", elon.dms_str(n_dec=1)) # Elongation: 153d 35' 1.6'' Print mean orbital elements for Mars at 2065.6.24:: epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Mars.orbital_elements_mean_equinox(epoch) print_me("Mean longitude of the planet", round(l, 6)) # Mean longitude of the planet: 288.855211 print_me("Semimajor axis of the orbit (UA)", round(a, 8)) # Semimajor axis of the orbit (UA): 1.52367934 print_me("Eccentricity of the orbit", round(e, 7)) # Eccentricity of the orbit: 0.0934599 print_me("Inclination on plane of the ecliptic", round(i, 6)) # Inclination on plane of the ecliptic: 1.849338 print_me("Longitude of the ascending node", round(ome, 5)) # Longitude of the ascending node: 50.06365 print_me("Argument of the perihelion", round(arg, 6)) # Argument of the perihelion: 287.202108 Compute the time of the conjunction close to 1993/10/1:: epoch = Epoch(1993, 10, 1.0) conj = Mars.conjunction(epoch) y, m, d = conj.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Conjunction date", date) # Conjunction date: 1993/12/27.0898 Compute the time of the opposition close to 2729/10/1:: epoch = Epoch(2729, 10, 1.0) oppo = Mars.opposition(epoch) y, m, d = oppo.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Opposition date", date) # Opposition date: 2729/9/9.1412 Compute the time of the station in longitude #1 close to 1997/3/1:: epoch = Epoch(1997, 3, 1.0) sta1 = Mars.station_longitude_1(epoch) y, m, d = sta1.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Date of station in longitude #1", date) # Date of station in longitude #1: 1997/2/6.033 Compute the time of the station in longitude #2 close to 1997/3/1:: epoch = Epoch(1997, 3, 1.0) sta2 = Mars.station_longitude_2(epoch) y, m, d = sta2.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Date of station in longitude #2", date) # Date of station in longitude #2: 1997/4/27.7553 Find the epoch of the Aphelion closer to 2032/1/1:: epoch = Epoch(2032, 1, 1.0) e = Mars.perihelion_aphelion(epoch, perihelion=False) y, m, d, h, mi, s = e.get_full_date() peri = str(y) + '/' + str(m) + '/' + str(d) + ' at ' + str(h) + ' hours' print_me("The Aphelion closest to 2032/1/1 will happen on", peri) # The Aphelion closest to 2032/1/1 will happen on: 2032/10/24 at 22 hours Compute the time of passage through an ascending node:: epoch = Epoch(2019, 1, 1) time, r = Mars.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) print("Time of passage through ascending node: {}/{}/{}".format(y, m, d)) # Time of passage through ascending node: 2019/1/15.2 print("Radius vector at ascending node: {}".format(round(r, 4))) # Radius vector at ascending node: 1.4709 pymeeus-0.3.6/docs/source/ex-Mercury.rst000066400000000000000000000117121355545537700202560ustar00rootroot00000000000000Mercury examples **************** Let's define a small helper function:: def print_me(msg, val): print("{}: {}".format(msg, val)) We can compute the geometric heliocentric position for a given epoch:: epoch = Epoch(2018, 10, 27.0) lon, lat, r = Mercury.geometric_heliocentric_position(epoch) print_me("Geometric Heliocentric Longitude", lon.to_positive()) # Geometric Heliocentric Longitude: 287.4887 print_me("Geometric Heliocentric Latitude", lat) # Geometric Heliocentric Latitude: -6.0086 print_me("Radius vector", r) # Radius vector: 0.45113 Compute the geocentric position for 1992/12/20:: epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Mercury.geocentric_position(epoch) print_me("Right ascension", ra.ra_str(n_dec=1)) # Right ascension: 16h 33' 59.3'' print_me("Declination", dec.dms_str(n_dec=1)) # Declination: -20d 53' 31.6'' print_me("Elongation", elon.dms_str(n_dec=1)) # Elongation: 18d 24' 29.8'' Print mean orbital elements for Mercury at 2065.6.24:: epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Mercury.orbital_elements_mean_equinox(epoch) print_me("Mean longitude of the planet", round(l, 6)) # Mean longitude of the planet: 203.494701 print_me("Semimajor axis of the orbit (UA)", round(a, 8)) # Semimajor axis of the orbit (UA): 0.38709831 print_me("Eccentricity of the orbit", round(e, 7)) # Eccentricity of the orbit: 0.2056451 print_me("Inclination on plane of the ecliptic", round(i, 6)) # Inclination on plane of the ecliptic: 7.006171 print_me("Longitude of the ascending node", round(ome, 5)) # Longitude of the ascending node: 49.10765 print_me("Argument of the perihelion", round(arg, 6)) # Argument of the perihelion: 29.367732 Compute the time of the inferior conjunction close to 1993/10/1:: epoch = Epoch(1993, 10, 1.0) conjunction = Mercury.inferior_conjunction(epoch) y, m, d = conjunction.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Inferior conjunction date", date) # Inferior conjunction date: 1993/11/6.1449 Compute the time of the superior conjunction close to 1993/10/1:: epoch = Epoch(1993, 10, 1.0) conjunction = Mercury.superior_conjunction(epoch) y, m, d = conjunction.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Superior conjunction date", date) # Superior conjunction date: 1993/8/29.3301 Compute the time and angle of the western elongation close to 1993/11/1:: epoch = Epoch(1993, 11, 1.0) time, elongation = Mercury.western_elongation(epoch) y, m, d = time.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Western elongation date", date) # Western elongation date: 1993/11/22.6386 elong = round(elongation, 4) print_me("Maximum western elongation angle", elong) # Maximum western elongation angle: 19.7506 Compute the time and angle of the eastern elongation close to 1990/8/1:: epoch = Epoch(1990, 8, 1.0) time, elongation = Mercury.eastern_elongation(epoch) y, m, d = time.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Eastern elongation date", date) # Eastern elongation date: 1990/8/11.8514 elong = round(elongation, 4) print_me("Maximum eastern elongation angle", elong) # Maximum eastern elongation angle: 27.4201 Compute the time of the station in longitude #1 close to 1993/10/1:: epoch = Epoch(1993, 10, 1.0) sta1 = Mercury.station_longitude_1(epoch) y, m, d = sta1.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Date of station in longitude #1", date) # Date of station in longitude #1: 1993/10/25.9358 Compute the time of the station in longitude #2 close to 1993/10/1:: epoch = Epoch(1993, 10, 1.0) sta2 = Mercury.station_longitude_2(epoch) y, m, d = sta2.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Date of station in longitude #2", date) # Date of station in longitude #2: 1993/11/15.0724 Find the epoch of the Perihelion closer to 2000/01/01:: epoch = Epoch(2000, 1, 1.0) e = Mercury.perihelion_aphelion(epoch) y, m, d, h, mi, s = e.get_full_date() peri = str(y) + '/' + str(m) + '/' + str(d) + ' at ' + str(h) + ' hours' print_me("The Perihelion closest to 2000/1/1 happened on", peri) # The Perihelion closest to 2000/1/1 happened on: 2000/2/15 at 18 hours Compute the time of passage through an ascending node:: epoch = Epoch(2019, 1, 1) time, r = Mercury.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) print("Time of passage through ascending node: {}/{}/{}".format(y, m, d)) # Time of passage through ascending node: 2018/11/24.7 print("Radius vector at ascending node: {}".format(round(r, 4))) # Radius vector at ascending node: 0.3143 pymeeus-0.3.6/docs/source/ex-Minor.rst000066400000000000000000000025451355545537700177200ustar00rootroot00000000000000Minor examples ************** Let's define a small helper function:: def print_me(msg, val): print("{}: {}".format(msg, val)) Let's compute the equatorial coordinates of comet Encke:: a = 2.2091404 e = 0.8502196 q = a * (1.0 - e) i = Angle(11.94524) omega = Angle(334.75006) w = Angle(186.23352) t = Epoch(1990, 10, 28.54502) epoch = Epoch(1990, 10, 6.0) minor = Minor(q, e, i, omega, w, t) ra, dec, elong = minor.geocentric_position(epoch) print_me("Right ascension", ra.ra_str(n_dec=1)) # Right ascension: 10h 34' 13.7'' print_me("Declination", dec.dms_str(n_dec=0)) # Declination: 19d 9' 32.0'' print_me("Elongation", round(elong, 2)) # Elongation: 40.51 Now compute the heliocentric ecliptical coordinates:: a = 2.2091404 e = 0.8502196 q = a * (1.0 - e) i = Angle(11.94524) omega = Angle(334.75006) w = Angle(186.23352) t = Epoch(1990, 10, 28.54502) epoch = Epoch(1990, 10, 6.0) minor = Minor(q, e, i, omega, w, t) lon, lat = minor.heliocentric_ecliptical_position(epoch) print_me("Heliocentric ecliptical longitude", lon.dms_str(n_dec=1)) # Heliocentric ecliptical longitude: 66d 51' 57.8'' print_me("Heliocentric ecliptical latitude", lat.dms_str(n_dec=1)) # Heliocentric ecliptical latitude: 11d 56' 14.4'' pymeeus-0.3.6/docs/source/ex-Neptune.rst000066400000000000000000000045761355545537700202600ustar00rootroot00000000000000Neptune examples **************** Let's define a small helper function:: def print_me(msg, val): print("{}: {}".format(msg, val)) We can compute the geometric heliocentric position for a given epoch:: epoch = Epoch(2018, 10, 27.0) lon, lat, r = Neptune.geometric_heliocentric_position(epoch) print_me("Geometric Heliocentric Longitude", lon.to_positive()) # Geometric Heliocentric Longitude: 345.3776 print_me("Geometric Heliocentric Latitude", lat) # Geometric Heliocentric Latitude: -0.9735 print_me("Radius vector", r) # Radius vector: 29.93966 Compute the geocentric position for 1992/12/20:: epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Neptune.geocentric_position(epoch) print_me("Right ascension", ra.ra_str(n_dec=1)) # Right ascension: 19h 17' 14.5'' print_me("Declination", dec.dms_str(n_dec=1)) # Declination: -21d 34' 15.1'' print_me("Elongation", elon.dms_str(n_dec=1)) # Elongation: 19d 44' 59.6'' Print mean orbital elements for Neptune at 2065.6.24:: epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Neptune.orbital_elements_mean_equinox(epoch) print_me("Mean longitude of the planet", round(l, 6)) # Mean longitude of the planet: 88.321947 print_me("Semimajor axis of the orbit (UA)", round(a, 8)) # Semimajor axis of the orbit (UA): 30.11038676 print_me("Eccentricity of the orbit", round(e, 7)) # Eccentricity of the orbit: 0.0094597 print_me("Inclination on plane of the ecliptic", round(i, 6)) # Inclination on plane of the ecliptic: 1.763855 print_me("Longitude of the ascending node", round(ome, 5)) # Longitude of the ascending node: 132.46986 print_me("Argument of the perihelion", round(arg, 6)) # Argument of the perihelion: -83.415521 Compute the time of the conjunction close to 1993/10/1:: epoch = Epoch(1993, 10, 1.0) conj = Neptune.conjunction(epoch) y, m, d = conj.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Conjunction date", date) # Conjunction date: 1994/1/11.3057 Compute the time of the opposition close to 1846/8/1:: epoch = Epoch(1846, 8, 1) oppo = Neptune.opposition(epoch) y, m, d = oppo.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Opposition date", date) # Opposition date: 1846/8/20.1623 pymeeus-0.3.6/docs/source/ex-Pluto.rst000066400000000000000000000016421355545537700177340ustar00rootroot00000000000000Pluto examples ************** Let's define a small helper function:: def print_me(msg, val): print("{}: {}".format(msg, val)) We can compute the geometric heliocentric position for a given epoch:: epoch = Epoch(2018, 10, 27.0) lon, lat, r = Pluto.geometric_heliocentric_position(epoch) print_me("Geometric Heliocentric Longitude", lon.to_positive()) # Geometric Heliocentric Longitude: 232.740711423 print_me("Geometric Heliocentric Latitude", lat) # Geometric Heliocentric Latitude: 14.5878173017 print_me("Radius vector", r) # Radius vector: 29.711110981 Compute the geocentric position for 1992/12/20:: epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Pluto.geocentric_position(epoch) print_me("Right ascension", ra.ra_str(n_dec=1)) # Right ascension: 15h 31' 43.7'' print_me("Declination", dec.dms_str(n_dec=1)) # Declination: -4d 27' 28.8'' pymeeus-0.3.6/docs/source/ex-Saturn.rst000066400000000000000000000075611355545537700201130ustar00rootroot00000000000000Saturn examples *************** Let's define a small helper function:: def print_me(msg, val): print("{}: {}".format(msg, val)) We can compute the geometric heliocentric position for a given epoch:: epoch = Epoch(2018, 10, 27.0) lon, lat, r = Saturn.geometric_heliocentric_position(epoch) print_me("Geometric Heliocentric Longitude", lon.to_positive()) # Geometric Heliocentric Longitude: 279.5108 print_me("Geometric Heliocentric Latitude", lat) # Geometric Heliocentric Latitude: 0.6141 print_me("Radius vector", r) # Radius vector: 10.06266 Compute the geocentric position for 1992/12/20:: epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Saturn.geocentric_position(epoch) print_me("Right ascension", ra.ra_str(n_dec=1)) # Right ascension: 21h 11' 41.8'' print_me("Declination", dec.dms_str(n_dec=1)) # Declination: -17d 15' 40.8'' print_me("Elongation", elon.dms_str(n_dec=1)) # Elongation: 46d 51' 47.7'' Print mean orbital elements for Saturn at 2065.6.24:: epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Saturn.orbital_elements_mean_equinox(epoch) print_me("Mean longitude of the planet", round(l, 6)) # Mean longitude of the planet: 131.196871 print_me("Semimajor axis of the orbit (UA)", round(a, 8)) # Semimajor axis of the orbit (UA): 9.55490779 print_me("Eccentricity of the orbit", round(e, 7)) # Eccentricity of the orbit: 0.0553209 print_me("Inclination on plane of the ecliptic", round(i, 6)) # Inclination on plane of the ecliptic: 2.486426 print_me("Longitude of the ascending node", round(ome, 5)) # Longitude of the ascending node: 114.23974 print_me("Argument of the perihelion", round(arg, 6)) # Argument of the perihelion: -19.896331 Compute the time of the conjunction close to 2125/6/1:: epoch = Epoch(2125, 6, 1.0) conj = Saturn.conjunction(epoch) y, m, d = conj.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Conjunction date", date) # Conjunction date: 2125/8/26.4035 Compute the time of the opposition close to -6/9/1:: epoch = Epoch(-6, 9, 1.0) oppo = Saturn.opposition(epoch) y, m, d = oppo.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Opposition date", date) # Opposition date: -6/9/14.3709 Compute the time of the station in longitude #1 close to 2018/11/1:: epoch = Epoch(2018, 11, 1.0) sta1 = Saturn.station_longitude_1(epoch) y, m, d = sta1.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Date of station in longitude #1", date) # Date of station in longitude #1: 2018/4/17.9433 Compute the time of the station in longitude #2 close to 2018/11/1:: epoch = Epoch(2018, 11, 1.0) sta2 = Saturn.station_longitude_2(epoch) y, m, d = sta2.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Date of station in longitude #2", date) # Date of station in longitude #2: 2018/9/6.4175 Find the epoch of the Perihelion closer to 2000/1/1:: epoch = Epoch(2000, 1, 1.0) e = Saturn.perihelion_aphelion(epoch) y, m, d, h, mi, s = e.get_full_date() peri = str(y) + '/' + str(m) + '/' + str(d) + ' at ' + str(h) + ' hours' print_me("The Perihelion closest to 2000/1/1 happened on", peri) # The Perihelion closest to 2000/1/1 happened on: 2003/7/26 at 15 hours Compute the time of passage through an ascending node:: epoch = Epoch(2019, 1, 1) time, r = Saturn.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) print("Time of passage through ascending node: {}/{}/{}".format(y, m, d)) # Time of passage through ascending node: 2034/5/30.2 print("Radius vector at ascending node: {}".format(round(r, 4))) # Radius vector at ascending node: 9.0546 pymeeus-0.3.6/docs/source/ex-Sun.rst000066400000000000000000000114061355545537700173750ustar00rootroot00000000000000Sun examples ************ Let's define a small helper function:: def print_me(msg, val): print("{}: {}".format(msg, val)) It is possible to compute an approximation of the Sun's **true** ecliptical longitude:: epoch = Epoch(1992, 10, 13) true_lon, r = Sun.true_longitude_coarse(epoch) print_me("Sun's approximate true longitude", true_lon.dms_str(n_dec=0)) # Sun's approximate true longitude: 199d 54' 36.0'' print_me("Sun's radius vector", round(r, 5)) # Sun's radius vector: 0.99766 Now let's compute the Sun's approximate **apparent** ecliptical longitude:: epoch = Epoch(1992, 10, 13) app_lon, r = Sun.apparent_longitude_coarse(epoch) print_me("Sun's approximate apparent longitude", app_lon.dms_str(n_dec=0)) # Sun's approximate apparent longitude: 199d 54' 32.0'' And now is the turn for the **apparent** right ascension and declination:: epoch = Epoch(1992, 10, 13) ra, delta, r = Sun.apparent_rightascension_declination_coarse(epoch) print_me("Sun's apparent right ascension", ra.ra_str(n_dec=1)) # Sun's apparent right ascension: 13h 13' 31.4'' print_me("Sun's apparent declination", delta.dms_str(n_dec=0)) # Sun's apparent declination: -7d 47' 6.0'' Now, let's compute Sun's true (**geometric**) position again, but more accurately:: epoch = Epoch(1992, 10, 13.0) l, b, r = Sun.geometric_geocentric_position(epoch, toFK5=False) print_me("Geometric Geocentric Longitude", round(l.to_positive(), 6)) # Geometric Geocentric Longitude: 199.907297 print_me("Geometric Geocentric Latitude", b.dms_str(n_dec=3)) # Geometric Geocentric Latitude: 0.744'' print_me("Radius vector", round(r, 8)) # Radius vector: 0.99760852 Compute Sun's **apparent** postion accurately:: epoch = Epoch(1992, 10, 13.0) l, b, r = Sun.apparent_geocentric_position(epoch) print_me("Apparent Geocentric Longitude", l.to_positive().dms_str(n_dec=3)) # Apparent Geocentric Longitude: 199d 54' 21.548'' print_me("Apparent Geocentric Latitude", b.dms_str(n_dec=3)) # Apparent Geocentric Latitude; 0.721'' print_me("Radius vector", round(r, 8)) # Radius vector: 0.99760852 We can compute rectangular coordinates referred to mean equinox of date:: epoch = Epoch(1992, 10, 13.0) x, y, z = Sun.rectangular_coordinates_mean_equinox(epoch) print_me("X", round(x, 7)) # X: -0.9379963 print_me("Y", round(y, 6)) # Y: -0.311654 print_me("Z", round(z, 7)) # Z: -0.1351207 Now, compute rectangular coordinates w.r.t. standard equinox J2000.0:: epoch = Epoch(1992, 10, 13.0) x, y, z = Sun.rectangular_coordinates_j2000(epoch) print_me("X", round(x, 8)) # X: -0.93740485 print_me("Y", round(y, 8)) # Y: -0.3131474 print_me("Z", round(z, 8)) # Z: -0.12456646 Compute rectangular coordinates w.r.t. mean equinox of B1950.0:: epoch = Epoch(1992, 10, 13.0) x, y, z = Sun.rectangular_coordinates_b1950(epoch) print_me("X", round(x, 8)) # X: -0.94149557 print_me("Y", round(y, 8)) # Y: -0.30259922 print_me("Z", round(z, 8)) # Z: -0.11578695 And compute rectangular coordinates w.r.t. an arbitrary mean equinox:: epoch = Epoch(1992, 10, 13.0) e_equinox = Epoch(2467616.0) x, y, z = Sun.rectangular_coordinates_equinox(epoch, e_equinox) print_me("X", round(x, 8)) # X: -0.93373777 print_me("Y", round(y, 8)) # Y: -0.32235109 print_me("Z", round(z, 8)) # Z: -0.12856709 It is possible to compute the date of equinoxes and solstices:: epoch = Sun.get_equinox_solstice(1962, target="summer") y, m, d, h, mi, s = epoch.get_full_date() print("The summer solstice of 1962:") print("{}/{}/{} {}:{}:{}".format(y, m, d, h, mi, round(s, 0))) # 1962/6/21 21:24:42.0 The equation of time, i.e., the difference between apparent and mean time, can be easily computed:: epoch = Epoch(1992, 10, 13.0) m, s = Sun.equation_of_time(epoch) print("Equation of time difference: {} min {} secs".format(m, round(s, 1))) # Equation of time difference: 13 min 42.6 secs Compute the ephemeris of physical observations of the Sun using Carrington's formulas:: epoch = Epoch(1992, 10, 13) p, b0, l0 = Sun.ephemeris_physical_observations(epoch) print("Ephemeris of physical observations of the Sun:") print_me("P ", round(p, 2)) # P : 26.27 print_me("B0", round(b0, 2)) # B0: 5.99 print_me("L0", round(l0, 2)) # L0: 238.63 Get the epoch when the Carrington's synodic rotation No. 'number' starts:: epoch = Sun.beginning_synodic_rotation(1699) print_me("Epoch for Carrington's synodic rotation No. 1699", round(epoch(), 3)) # Epoch for Carrington's synodic rotation No. 1699: 2444480.723 pymeeus-0.3.6/docs/source/ex-Uranus.rst000066400000000000000000000062131355545537700201050ustar00rootroot00000000000000Uranus examples *************** Let's define a small helper function:: def print_me(msg, val): print("{}: {}".format(msg, val)) We can compute the geometric heliocentric position for a given epoch:: epoch = Epoch(2018, 10, 27.0) lon, lat, r = Uranus.geometric_heliocentric_position(epoch) print_me("Geometric Heliocentric Longitude", lon.to_positive()) # Geometric Heliocentric Longitude: 30.5888 print_me("Geometric Heliocentric Latitude", lat) # Geometric Heliocentric Latitude: -0.5315 print_me("Radius vector", r) # Radius vector: 19.86964 Compute the geocentric position for 1992/12/20:: epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Uranus.geocentric_position(epoch) print_me("Right ascension", ra.ra_str(n_dec=1)) # Right ascension: 19h 13' 48.7'' print_me("Declination", dec.dms_str(n_dec=1)) # Declination: -22d 46' 13.0'' print_me("Elongation", elon.dms_str(n_dec=1)) # Elongation: 18d 44' 18.7'' Print mean orbital elements for Uranus at 2065.6.24:: epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Uranus.orbital_elements_mean_equinox(epoch) print_me("Mean longitude of the planet", round(l, 6)) # Mean longitude of the planet: 235.517526 print_me("Semimajor axis of the orbit (UA)", round(a, 8)) # Semimajor axis of the orbit (UA): 19.21844604 print_me("Eccentricity of the orbit", round(e, 7)) # Eccentricity of the orbit: 0.0463634 print_me("Inclination on plane of the ecliptic", round(i, 6)) # Inclination on plane of the ecliptic: 0.77372 print_me("Longitude of the ascending node", round(ome, 5)) # Longitude of the ascending node: 74.34776 print_me("Argument of the perihelion", round(arg, 6)) # Argument of the perihelion: 99.630865 Compute the time of the conjunction close to 1993/10/1:: epoch = Epoch(1993, 10, 1.0) conj = Uranus.conjunction(epoch) y, m, d = conj.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Conjunction date", date) # Conjunction date: 1994/1/12.7365 Compute the time of the opposition close to 1780/12/1:: epoch = Epoch(1780, 12, 1.0) oppo = Uranus.opposition(epoch) y, m, d = oppo.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Opposition date", date) # Opposition date: 1780/12/17.5998 Find the epoch of the Perihelion closer to 1780/1/1:: epoch = Epoch(1780, 1, 1.0) e = Uranus.perihelion_aphelion(epoch) y, m, d = e.get_date() peri = str(y) + '/' + str(m) + '/' + str(int(d)) print_me("The Perihelion closest to 1780/1/1 happened on", peri) # The Perihelion closest to 1780/1/1 happened on: 1798/2/26 Compute the time of passage through an ascending node:: epoch = Epoch(2019, 1, 1) time, r = Uranus.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) print("Time of passage through ascending node: {}/{}/{}".format(y, m, d)) # Time of passage through ascending node: 2028/8/23.2 print("Radius vector at ascending node: {}".format(round(r, 4))) # Radius vector at ascending node: 19.3201 pymeeus-0.3.6/docs/source/ex-Venus.rst000066400000000000000000000127451355545537700177370ustar00rootroot00000000000000Venus examples ************** Let's define a small helper function:: def print_me(msg, val): print("{}: {}".format(msg, val)) We can compute the geometric heliocentric position for a given epoch:: epoch = Epoch(1992, 12, 20.0) lon, lat, r = Venus.geometric_heliocentric_position(epoch) print_me("Geometric Heliocentric Longitude", round(lon.to_positive(), 5)) # Geometric Heliocentric Longitude: 26.11428 print_me("Geometric Heliocentric Latitude", round(lat, 4)) # Geometric Heliocentric Latitude: -2.6207 print_me("Radius vector", round(r, 6)) # Radius vector: 0.724603 Compute the geocentric position for 1992/12/20:: epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Venus.geocentric_position(epoch) print_me("Right ascension", ra.ra_str(n_dec=1)) # Right ascension: 21h 4' 41.5'' print_me("Declination", dec.dms_str(n_dec=1)) # Declination: -18d 53' 16.8'' print_me("Elongation", elon.dms_str(n_dec=1)) # Elongation: 44d 46' 8.9'' Print mean orbital elements for Venus at 2065.6.24:: epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Venus.orbital_elements_mean_equinox(epoch) print_me("Mean longitude of the planet", round(l, 6)) # Mean longitude of the planet: 338.646306 print_me("Semimajor axis of the orbit (UA)", round(a, 8)) # Semimajor axis of the orbit (UA): 0.72332982 print_me("Eccentricity of the orbit", round(e, 7)) # Eccentricity of the orbit: 0.0067407 print_me("Inclination on plane of the ecliptic", round(i, 6)) # Inclination on plane of the ecliptic: 3.395319 print_me("Longitude of the ascending node", round(ome, 5)) # Longitude of the ascending node: 77.27012 print_me("Argument of the perihelion", round(arg, 6)) # Argument of the perihelion: 55.211257 Compute the time of the inferior conjunction close to 1882/12/1.0:: epoch = Epoch(1882, 12, 1.0) conjunction = Venus.inferior_conjunction(epoch) y, m, d = conjunction.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Inferior conjunction date", date) # Inferior conjunction date: 1882/12/6.6912 Compute the time of the superior conjunction close to 1993/10/1:: epoch = Epoch(1993, 10, 1.0) conjunction = Venus.superior_conjunction(epoch) y, m, d = conjunction.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Superior conjunction date", date) # Superior conjunction date: 1994/1/17.0465 Compute the time and angle of the western elongation close to 2019/1/1:: epoch = Epoch(2019, 1, 1.0) time, elongation = Venus.western_elongation(epoch) y, m, d = time.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Western elongation date", date) # Western elongation date: 2019/1/6.1895 elong = round(elongation, 4) print_me("Maximum western elongation angle", elong) # Maximum western elongation angle: 46.9571 Compute the time and angle of the eastern elongation close to 2019/10/1:: epoch = Epoch(2019, 10, 1.0) time, elongation = Venus.eastern_elongation(epoch) y, m, d = time.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Eastern elongation date", date) # Eastern elongation date: 2020/3/24.9179 elong = round(elongation, 4) print_me("Maximum eastern elongation angle", elong) # Maximum eastern elongation angle: 46.078 Compute the time of the station in longitude #1 close to 2018/12/1:: epoch = Epoch(2018, 12, 1.0) sta1 = Venus.station_longitude_1(epoch) y, m, d = sta1.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Date of station in longitude #1", date) # Date of station in longitude #1: 2018/10/5.7908 Compute the time of the station in longitude #2 close to 2018/12/1:: epoch = Epoch(2018, 12, 1.0) sta2 = Venus.station_longitude_2(epoch) y, m, d = sta2.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Date of station in longitude #2", date) # Date of station in longitude #2: 2018/11/16.439 Find the epoch of the Perihelion closer to 1978/10/15:: epoch = Epoch(1978, 10, 15.0) e = Venus.perihelion_aphelion(epoch) y, m, d, h, mi, s = e.get_full_date() peri = str(y) + '/' + str(m) + '/' + str(d) + ' at ' + str(h) + ' hours' print_me("The Perihelion closest to 1978/10/15 happened on", peri) # The Perihelion closest to 1978/10/15 happened on: 1978/12/31 at 4 hours Compute the time of passage through an ascending node:: epoch = Epoch(1979, 1, 1) time, r = Venus.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) print("Time of passage through ascending node: {}/{}/{}".format(y, m, d)) # Time of passage through ascending node: 1978/11/27.4 print("Radius vector at ascending node: {}".format(round(r, 4))) # Radius vector at ascending node: 0.7205 Compute the (approximate) illuminated fraction of Venus disk for an Epoch:: epoch = Epoch(1992, 12, 20) k = Venus.illuminated_fraction(epoch) print_me("Approximate illuminated fraction of Venus", round(k, 2)) # Approximate illuminated fraction of Venus: 0.64 Compute the magnitude of Venus:: sun_dist = 0.724604 earth_dist = 0.910947 phase_angle = Angle(72.96) m = Venus.magnitude(sun_dist, earth_dist, phase_angle) print_me("Venus' magnitude", round(m, 1)) # Venus' magnitude: -3.8 pymeeus-0.3.6/docs/source/ex-base.rst000066400000000000000000000015341355545537700175430ustar00rootroot00000000000000Base examples ************* Let's define a small helper function:: def print_me(msg, val): print("{}: {}".format(msg, val)) Let's print the tolerance:: print_me("The default value for the tolerance is", TOL) The default value for the tolerance is: 1e-10 Find the accuracy of this computer:: j, d = machine_accuracy() print_me("Number of significant BITS in the mantissa\t", j) Number of significant BITS in the mantissa : 52.0 print_me("Number of significant DIGITS in a decimal number", d) Number of significant DIGITS in a decimal number: 15 Print the suffixes for some ordinal numbers:: print_me("The suffix for ordinal 2 is", get_ordinal_suffix(2)) The suffix for ordinal 2 is: nd print_me("The suffix for ordinal 16 is", get_ordinal_suffix(16)) The suffix for ordinal 16 is: th pymeeus-0.3.6/docs/source/index.rst000066400000000000000000000015251355545537700173260ustar00rootroot00000000000000.. PyMeeus documentation master file, created by sphinx-quickstart on Wed Jun 27 23:07:31 2018. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. .. include:: ../../README.rst .. toctree:: :maxdepth: 2 :caption: API: base Angle Coordinates CurveFitting Earth Epoch Interpolation Jupiter Mars Mercury Minor Neptune Pluto Saturn Sun Uranus Venus .. toctree:: :maxdepth: 2 :caption: Examples: ex-base ex-Angle ex-Coordinates ex-CurveFitting ex-Earth ex-Epoch ex-Interpolation ex-Jupiter ex-Mars ex-Mercury ex-Minor ex-Neptune ex-Pluto ex-Saturn ex-Sun ex-Uranus ex-Venus Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` pymeeus-0.3.6/pymeeus/000077500000000000000000000000001355545537700147215ustar00rootroot00000000000000pymeeus-0.3.6/pymeeus/Angle.py000066400000000000000000001173771355545537700163410ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from math import pi, degrees, radians from pymeeus.base import TOL """ .. module:: Angle :synopsis: Class to handle angles :license: GNU Lesser General Public License v3 (LGPLv3) .. moduleauthor:: Dagoberto Salazar """ class Angle(object): """ Class Angle deals with angles in either decimal format (d.dd) or in sexagesimal format (d m' s''). It provides methods to handle an Angle object like it were a simple float, but adding the functionality associated with an angle. The constructor takes decimals and sexagesimal input. The sexagesimal angles can be given as separate degree, minutes, seconds values, or as tuples or lists. It is also possible to provide another Angle object as input. Also, if **radians=True** is passed to the constructor, then the input value is considered as in radians, and converted to degrees. """ def __init__(self, *args, **kwargs): """Angle constructor. It takes decimals and sexagesimal input. The sexagesimal angles can be given as separate degree, minutes, seconds values, or as tuples or lists. It is also possible to provide another Angle object as input. If **radians=True** is passed, then the input value is converted from radians to degrees. If **ra=True** is passed, then the input value is converted from Right Ascension to degrees :param args: Input angle, in decimal or sexagesimal format, or Angle :type args: int, float, list, tuple, :py:class:`Angle` :param radians: If True, input angle is in radians. False by default. :type radians: bool :param ra: If True, input angle is in Right Ascension. False by default :type ra: bool :returns: Angle object. :rtype: :py:class:`Angle` :raises: TypeError if input values are of wrong type. >>> a = Angle(-13, 30, 0.0) >>> print(a) -13.5 >>> b = Angle(a) >>> print(b) -13.5 """ self._deg = 0.0 # Angle value is stored here in decimal format self._tol = TOL self.set(*args, **kwargs) # Let's use 'set()' method to set angle @staticmethod def reduce_deg(deg): """Takes a degree value in decimal format and converts it to a float value in the +/-[0:360) range. :param deg: Input degree angle in decimal format. :type deg: int, float, :py:class:`Angle` :returns: Float value of the angle in the +/-[0:360) range. :rtype: float >>> a = 386.3 >>> b = Angle.reduce_deg(a) >>> print(round(b, 1)) 26.3 """ if abs(deg) >= 360.0: # Extract the sign sign = 1.0 if deg >= 0 else -1.0 frac = abs(deg) % 1 # Separate the fractional part deg = int(abs(deg)) % 360 # Reduce to [0:360) range deg = sign * (deg + frac) # Rebuild the value return float(deg) @staticmethod def reduce_dms(degrees, minutes, seconds=0.0): """Takes a degree value in sexagesimal format and converts it to a value in the +/-[0:360) range (degrees) and [0:60) range (minutes and seconds). It also takes care of fractional degrees and minutes. :param degrees: Degrees. :type degrees: int, float :param minutes: Minutes. :type minutes: int, float :param seconds: Seconds. 0.0 by default. :type seconds: int, float :returns: Angle in sexagesimal format, with ranges properly adjusted. :rtype: tuple >>> print(Angle.reduce_dms(-743.0, 26.0, 49.6)) (23, 26, 49.6, -1.0) """ # If any of the input values is negative, the sign is negative sign = -1.0 if (degrees < 0) or (minutes < 0) or (seconds < 0) else 1.0 degrees = abs(degrees) minutes = abs(minutes) seconds = abs(seconds) # We need to work first from degrees to seconds if degrees % 1 > 0.0: # The degrees value has decimals, push them to minutes minutes += (degrees % 1) * 60.0 degrees = int(degrees) # Keep the integer part if minutes % 1 > 0.0: # The minutes value has decimals, push them to seconds seconds += (minutes % 1) * 60.0 minutes = int(minutes) # We now need to work from seconds to degrees, because of overflow if seconds >= 60.0: minutes += int(seconds / 60.0) # Push the excess to minutes seconds = seconds % 60 # Keep the rest if minutes >= 60.0: degrees += int(minutes / 60.0) # Push the excess to degrees minutes = minutes % 60 # Keep the rest degrees = degrees % 360 # Keep degrees in [0:360) range return (degrees, minutes, seconds, sign) @staticmethod def deg2dms(deg): """Converts input from decimal to sexagesimal angle format. :param deg: Degrees decimal format. :type deg: int, float :returns: Angle in sexagesimal format, with ranges adjusted. :rtype: tuple .. note:: The output format is (Degrees, Minutes, Seconds, sign) >>> print(Angle.deg2dms(23.44694444)) (23, 26, 48.999983999997596, 1.0) """ deg = Angle.reduce_deg(deg) # Reduce the degrees to the [0:360) range # Extract the sign sign = 1.0 if deg >= 0 else -1.0 # We have the sign, now let's work with positive numbers deg = abs(deg) mi = (deg % 1) * 60.0 # Get the minutes, with decimals de = int(deg) # Get the integer part of the degrees se = (mi % 1) * 60.0 # Get the seconds mi = int(mi) return (de, mi, se, sign) @staticmethod def dms2deg(degrees, minutes, seconds=0.0): """Converts an angle from sexagesimal to decimal format. :param degrees: Degrees. :type degrees: int, float :param minutes: Minutes. :type minutes: int, float :param seconds: Seconds. 0.0 by default. :type seconds: int, float :returns: Angle in decimal format, within +/-[0:360) range. :rtype: float >>> print(Angle.dms2deg(-23, 26, 48.999983999997596)) -23.44694444 """ (de, mi, se, sign) = Angle.reduce_dms(degrees, minutes, seconds) deg = sign * (de + mi / 60.0 + se / 3600.0) return float(deg) def get_tolerance(self): """Gets the internal tolerance value used to compare Angles. .. note:: The default tolerance value is **base.TOL**. :returns: Internal tolerance. :rtype: float """ return self._tol def set_tolerance(self, tol): """Changes the internal tolerance value used to compare Angles. :param tol: New tolerance value. :type tol: int, float :returns: None :rtype: None """ self._tol = tol return def __call__(self): """Method used when object is called only with parenthesis. :returns: The internal value of the Angle object. :rtype: int, float >>> a = Angle(54.6) >>> print(a()) 54.6 """ return self._deg def __str__(self): """Method used when trying to print the object. :returns: Angle as string. :rtype: string >>> a = Angle(12.5) >>> print(a) 12.5 """ return str(self._deg) def __repr__(self): """Method providing the 'official' string representation of the object. It provides a valid expression that could be used to recreate the object. :returns: As string with a valid expression to recreate the object :rtype: string >>> a = Angle(12.5) >>> repr(a) 'Angle(12.5)' """ return "{}({})".format(self.__class__.__name__, self._deg) def set(self, *args, **kwargs): """Method used to define the value of the Angle object. It takes decimals and sexagesimal input. The sexagesimal angles can be given as separate degree, minutes, seconds values, or as tuples or lists. It is also possible to provide another Angle object as input. If **radians=True** is passed, then the input value is converted from radians to degrees If **ra=True** is passed, then the input value is converted from Right Ascension to degrees :param args: Input angle, in decimal or sexagesimal format, or Angle :type args: int, float, list, tuple, :py:class:`Angle` :param radians: If True, input angle is in radians. False by default. :type radians: bool :param ra: If True, input angle is in Right Ascension. False by default :type ra: bool :returns: None. :rtype: None :raises: TypeError if input values are of wrong type. """ if "ra" in kwargs: if kwargs["ra"]: # Input values are a Right Ascension self.set_ra(*args) return # If no arguments are given, internal angle is set to zero if len(args) == 0: self._deg = 0.0 return # If we have only one argument, it can be a single value, a tuple/list # or an Angle elif len(args) == 1: deg = args[0] if isinstance(deg, Angle): # Copy constructor self._deg = deg._deg self._tol = deg._tol return if isinstance(deg, (int, float)): if "radians" in kwargs: if kwargs["radians"]: # Input value is in radians. Convert to degrees deg = degrees(deg) # This works for ints, floats and Angles self._deg = Angle.reduce_deg(deg) return elif isinstance(deg, (list, tuple)): if len(deg) == 0: raise TypeError("Invalid input value") elif len(deg) == 1: # This is a single value if "radians" in kwargs: if kwargs["radians"]: # Input value is in radians. Convert to degrees deg[0] = degrees(deg[0]) self._deg = Angle.reduce_deg(deg[0]) return elif len(deg) == 2: # Seconds value is set to zero self._deg = Angle.dms2deg(deg[0], deg[1]) return elif len(deg) == 3: # The first three values are taken into account self._deg = Angle.dms2deg(deg[0], deg[1], deg[2]) return else: # Only the first four values are taken into account sign = ( -1.0 if deg[0] < 0 or deg[1] < 0 or deg[2] < 0 or deg[3] < 0 else 1.0 ) # If sign < 0, make all values negative, to be sure deg0 = sign * abs(deg[0]) deg1 = sign * abs(deg[1]) deg2 = sign * abs(deg[2]) self._deg = Angle.dms2deg(deg0, deg1, deg2) return else: raise TypeError("Invalid input value") elif len(args) == 2: # Seconds value is set to zero self._deg = Angle.dms2deg(args[0], args[1]) return elif len(args) == 3: # The first three values are taken into account self._deg = Angle.dms2deg(args[0], args[1], args[2]) return else: # Only the first four values are taken into account sign = ( -1.0 if args[0] < 0 or args[1] < 0 or args[2] < 0 or args[3] < 0 else 1.0 ) # If sign < 0, make all values negative, to be sure args0 = sign * abs(args[0]) args1 = sign * abs(args[1]) args2 = sign * abs(args[2]) self._deg = Angle.dms2deg(args0, args1, args2) return def set_radians(self, rads): """Method to define the value of the Angle object from radians. :param rads: Input angle, in radians. :type rads: int, float :returns: None. :rtype: None :raises: TypeError if input value is of wrong type. >>> a = Angle() >>> a.set_radians(pi) >>> print(a) 180.0 """ self.set(rads, radians=True) return def set_ra(self, *args): """Define the value of the Angle object from a Right Ascension. It takes decimals and sexagesimal input. The sexagesimal Right Ascensions can be given as separate hours, minutes, seconds values, or as tuples or lists. :param args: Input Right Ascension, in decimal or sexagesimal format. :type args: int, float, list, tuple :returns: None. :rtype: None :raises: TypeError if input values are of wrong type. >>> a = Angle() >>> a.set_ra(9, 14, 55.8) >>> print(a) 138.7325 """ self.set(*args) # Carry out a standard set(), without *kwargs self._deg *= 15.0 # Multipy Right Ascension by 15.0 to get degrees return def dms_str(self, fancy=True, n_dec=-1): """Returns the Angle value as a sexagesimal string. The parameter **fancy** allows to print in "Dd M' S''" format if True, and in "D:M:S" (easier to parse) if False. On the other hand, the **n_dec** parameter sets the number of decimals used to print the seconds. Set to a negative integer to disable (default). :param fancy: Format of output string. True by default. :type fancy: bool :param n_dec: Number of decimals used to print the seconds :type fancy: int :returns: Angle value as string in sexagesimal format. :rtype: string :raises: TypeError if input value is of wrong type. >>> a = Angle(42.75) >>> print(a.dms_str()) 42d 45' 0.0'' >>> print(a.dms_str(fancy=False)) 42:45:0.0 >>> a = Angle(49, 13, 42.4817) >>> print(a.dms_str(n_dec=2)) 49d 13' 42.48'' """ if not isinstance(n_dec, int): raise TypeError("Invalid input value") d, m, s, sign = Angle.deg2dms(self._deg) if n_dec >= 0: s = round(s, n_dec) if abs(s - 60.0) < TOL: s = 0.0 m += 1 if abs(m - 60.0) < TOL: m = 0 d += 1.0 if d >= 360.0: d -= 360.0 if fancy: if d != 0: return "{}d {}' {}''".format(int(sign * d), m, s) elif m != 0: return "{}' {}''".format(int(sign * m), s) elif s != 0.0: return "{}''".format(sign * s) else: return "0d 0' 0.0''" else: if d != 0: return "{}:{}:{}".format(int(sign * d), m, s) elif m != 0: return "0:{}:{}".format(int(sign * m), s) elif s != 0.0: return "0:0:{}".format(sign * s) else: return "0:0:0.0" def get_ra(self): """Returns the Angle value as a Right Ascension in float format :returns: The internal value of the Angle object as Right Ascension. :rtype: int, float >>> a = Angle(138.75) >>> print(a.get_ra()) 9.25 """ return self._deg / 15.0 def ra_str(self, fancy=True, n_dec=-1): """Returns the Angle value as a sexagesimal string in Right Ascension. The parameter **fancy** allows to print in "Hh M' S''" format if True, and in "H:M:S" (easier to parse) if False. On the other hand, the **n_dec** parameter sets the number of decimals used to print the seconds. Set to a negative integer to disable (default). :param fancy: Format of output string. True by default. :type fancy: bool :param n_dec: Number of decimals used to print the seconds :type fancy: int :returns: Angle value as Right Ascension in sexagesimal format. :rtype: string :raises: TypeError if input value is of wrong type. >>> a = Angle(138.75) >>> print(a.ra_str()) 9h 15' 0.0'' >>> print(a.ra_str(fancy=False)) 9:15:0.0 >>> a = Angle(2, 44, 11.98581, ra=True) >>> print(a.ra_str(n_dec=3)) 2h 44' 11.986'' """ a = Angle(self()) / 15.0 s = a.dms_str(fancy, n_dec) if fancy: s = s.replace("d", "h") return s def rad(self): """Returns the Angle value in radians. :returns: Angle value in radians. :rtype: float >>> a = Angle(47.762) >>> print(round(a.rad(), 8)) 0.83360416 """ return radians(self._deg) def dms_tuple(self): """Returns the Angle as a tuple containing (degrees, minutes, seconds, sign). :returns: Angle value as (degrees, minutes, seconds, sign). :rtype: tuple """ return Angle.deg2dms(self()) def ra_tuple(self): """Returns the Angle in Right Ascension format as a tuple containing (hours, minutes, seconds, sign). :returns: Angle value as RA in (hours, minutes, seconds, sign) format. :rtype: tuple """ return Angle.deg2dms(self() / 15.0) def to_positive(self): """Converts the internal angle value from negative to positive. :returns: This angle object. :rtype: :py:class:`Angle` >>> a = Angle(-87.32) >>> print(a.to_positive()) 272.68 """ if self._deg < 0: self._deg = 360.0 - abs(self._deg) return self def __eq__(self, b): """This method defines the 'is equal' operator between Angles. .. note:: For the comparison, the internal tolerance value is used. :returns: A boolean. :rtype: bool :raises: TypeError if input values are of wrong type. >>> a = Angle(172.01) >>> b = Angle(172.009) >>> a == b False """ if isinstance(b, (int, float)): return abs(self._deg - float(b)) < self._tol elif isinstance(b, Angle): return abs(self._deg - b._deg) < self._tol else: raise TypeError("Wrong operand type") def __ne__(self, b): """This method defines the 'is not equal' operator between Angles. .. note:: For the comparison, the internal tolerance value is used. :returns: A boolean. :rtype: bool >>> a = Angle(11.200001) >>> b = Angle(11.200000) >>> a != b True """ return not self.__eq__(b) # '!=' == 'not(==)' def __lt__(self, b): """This method defines the 'is less than' operator between Angles. :returns: A boolean. :rtype: bool :raises: TypeError if input values are of wrong type. >>> a = Angle(72.0) >>> b = Angle(72.0) >>> a < b False """ if isinstance(b, (int, float)): return self._deg < float(b) elif isinstance(b, Angle): return self._deg < b._deg else: raise TypeError("Wrong operand type") def __ge__(self, b): """This method defines 'is equal or greater' operator between Angles. :returns: A boolean. :rtype: bool :raises: TypeError if input values are of wrong type. >>> a = Angle(172.01) >>> b = Angle(172.009) >>> a >= b True """ return not self.__lt__(b) # '>=' == 'not(<)' def __gt__(self, b): """This method defines the 'is greater than' operator between Angles. :returns: A boolean. :rtype: bool :raises: TypeError if input values are of wrong type. >>> a = Angle(172.01) >>> b = Angle(172.009) >>> a > b True """ if isinstance(b, (int, float)): return self._deg > float(b) elif isinstance(b, Angle): return self._deg > b._deg else: raise TypeError("Wrong operand type") def __le__(self, b): """This method defines 'is equal or less' operator between Angles. :returns: A boolean. :rtype: bool :raises: TypeError if input values are of wrong type. >>> a = Angle(72.0) >>> b = Angle(72.0) >>> a <= b True """ return not self.__gt__(b) # '<=' == 'not(>)' def __neg__(self): """This method is used to obtain the negative version of this Angle. :returns: A new Angle object. :rtype: :py:class:`Angle` >>> a = Angle(-11.2) >>> print(-a) 11.2 """ return Angle(-self._deg) def __abs__(self): """This method is used to obtain the absolute value of this Angle. :returns: A new Angle object. :rtype: :py:class:`Angle` >>> a = Angle(-303.67) >>> print(abs(a)) 303.67 """ return Angle(abs(self._deg)) def __mod__(self, b): """This method is used to obtain the module b of this Angle. :returns: A new Angle object. :rtype: :py:class:`Angle` :raises: TypeError if input values are of wrong type. >>> a = Angle(333.0) >>> b = Angle(72.0) >>> print(a % b) 45.0 """ # Negative values will be treated as if they were positive sign = 1.0 if self._deg >= 0.0 else -1.0 if isinstance(b, (int, float)): return Angle(sign * (abs(self._deg) % b)) elif isinstance(b, Angle): return Angle(sign * (abs(self._deg) % b._deg)) else: raise TypeError("Wrong operand type") def __add__(self, b): """This method defines the addition between Angles. :returns: A new Angle object. :rtype: :py:class:`Angle` :raises: TypeError if input values are of wrong type. >>> a = Angle(83.1) >>> b = Angle(18.4) >>> print(a + b) 101.5 """ if isinstance(b, (int, float)): return Angle(self._deg + float(b)) elif isinstance(b, Angle): return Angle(self._deg + b._deg) else: raise TypeError("Wrong operand type") def __sub__(self, b): """This method defines the subtraction between Angles. :returns: A new Angle object. :rtype: :py:class:`Angle` :raises: TypeError if input values are of wrong type. >>> a = Angle(25.4) >>> b = Angle(10.2) >>> print(a - b) 15.2 """ return self.__add__(-b) def __mul__(self, b): """This method defines the multiplication between Angles. :returns: A new Angle object. :rtype: :py:class:`Angle` :raises: TypeError if input values are of wrong type. >>> a = Angle(33.0) >>> b = Angle(72.0) >>> print(a * b) 216.0 """ if isinstance(b, (int, float)): return Angle(self._deg * float(b)) elif isinstance(b, Angle): return Angle(self._deg * b._deg) else: raise TypeError("Wrong operand type") def __div__(self, b): """This method defines the division between Angles. :returns: A new Angle object. :rtype: :py:class:`Angle` :raises: ZeroDivisionError if divisor is zero. :raises: TypeError if input values are of wrong type. >>> a = Angle(172.0) >>> b = Angle(86.0) >>> print(a/b) 2.0 """ if b == 0.0: raise ZeroDivisionError("Division by zero is not allowed") if isinstance(b, (int, float)): return Angle(self._deg / float(b)) elif isinstance(b, Angle): return Angle(self._deg / b._deg) else: raise TypeError("Wrong operand type") def __truediv__(self, b): """This method defines the division between Angles (Python 3). :returns: A new Angle object. :rtype: :py:class:`Angle` :raises: ZeroDivisionError if divisor is zero. :raises: TypeError if input values are of wrong type. :see: __div__ """ return self.__div__(b) def __pow__(self, b): """This method defines the power operation for Angles. :returns: A new Angle object. :rtype: :py:class:`Angle` :raises: TypeError if input values are of wrong type. >>> a = Angle(12.5) >>> b = Angle(4.0) >>> print(a ** b) 294.0625 """ if isinstance(b, (int, float)): return Angle(self._deg ** b) elif isinstance(b, Angle): return Angle(self._deg ** b._deg) else: raise TypeError("Wrong operand type") def __imod__(self, b): """This method defines the accumulative module b of this Angle. :returns: This Angle. :rtype: :py:class:`Angle` >>> a = Angle(330.0) >>> b = Angle(45.0) >>> a %= b >>> print(a) 15.0 """ # Negative values will be treated as if they were positive self = self % b return self def __iadd__(self, b): """This method defines the accumulative addition to this Angle. :returns: This Angle. :rtype: :py:class:`Angle` >>> a = Angle(172.1) >>> b = Angle(54.6) >>> a += b >>> print(a) 226.7 """ self = self + b return self def __isub__(self, b): """This method defines the accumulative subtraction to this Angle. :returns: This Angle. :rtype: :py:class:`Angle` >>> a = Angle(97.0) >>> b = Angle(39.0) >>> a -= b >>> print(a) 58.0 """ self = self - b return self def __imul__(self, b): """This method defines the accumulative multiplication to this Angle. :returns: This Angle. :rtype: :py:class:`Angle` >>> a = Angle(30.0) >>> b = Angle(55.0) >>> a *= b >>> print(a) 210.0 """ self = self * b return self def __idiv__(self, b): """This method defines the accumulative division to this Angle. :returns: This Angle. :rtype: :py:class:`Angle` :raises: ZeroDivisionError if divisor is zero. :raises: TypeError if input values are of wrong type. >>> a = Angle(330.0) >>> b = Angle(30.0) >>> a /= b >>> print(a) 11.0 """ if b == 0.0: raise ZeroDivisionError("Division by zero is not allowed") if not isinstance(b, (int, float, Angle)): raise TypeError("Wrong operand type") self = self / b return self def __itruediv__(self, b): """This method defines accumulative division to this Angle (Python3). :returns: This Angle. :rtype: :py:class:`Angle` :raises: ZeroDivisionError if divisor is zero. :raises: TypeError if input values are of wrong type. :see: __idiv__ """ return self.__idiv__(b) def __ipow__(self, b): """This method defines the accumulative power to this Angle. :returns: This Angle. :rtype: :py:class:`Angle` >>> a = Angle(37.0) >>> b = Angle(3.0) >>> a **= b >>> print(a) 253.0 """ self = self ** b return self def __rmod__(self, b): """This method defines module operation between Angles by the right. :returns: A new Angle object. :rtype: :py:class:`Angle` >>> a = Angle(80.0) >>> print(350 % a) 30.0 """ if isinstance(b, (int, float)): b = Angle(b) # Negative values will be treated as if they were positive sign = 1.0 if b._deg >= 0.0 else -1.0 return Angle(sign * (abs(b._deg) % self._deg)) def __radd__(self, b): """This method defines the addition between Angles by the right :returns: A new Angle object. :rtype: :py:class:`Angle` >>> a = Angle(83.1) >>> print(8.5 + a) 91.6 """ return self.__add__(b) # In this case, it is the same as by the left def __rsub__(self, b): """This method defines the subtraction between Angles by the right. :returns: A new Angle object. :rtype: :py:class:`Angle` :raises: TypeError if input values are of wrong type. >>> a = Angle(25.0) >>> print(24.0 - a) -1.0 """ return -self.__sub__(b) # b - a = -(a - b) def __rmul__(self, b): """This method defines multiplication between Angles by the right. :returns: A new Angle object. :rtype: :py:class:`Angle` :raises: TypeError if input values are of wrong type. >>> a = Angle(11.0) >>> print(250.0 * a) 230.0 """ return self.__mul__(b) # In this case, it is the same as by the left def __rdiv__(self, b): """This method defines division between Angles by the right. :returns: A new Angle object. :rtype: :py:class:`Angle` :raises: ZeroDivisionError if divisor is zero. :raises: TypeError if input values are of wrong type. >>> a = Angle(80.0) >>> print(350 / a) 4.375 """ if self == 0.0: raise ZeroDivisionError("Division by zero is not allowed") if isinstance(b, (int, float)): return Angle(float(b) / self._deg) elif isinstance(b, Angle): return Angle(b._deg / self._deg) else: raise TypeError("Wrong operand type") def __rtruediv__(self, b): """This method defines division between Angle by the right (Python3). :returns: A new Angle object. :rtype: :py:class:`Angle` :raises: ZeroDivisionError if divisor is zero. :raises: TypeError if input values are of wrong type. :see: __rdiv__ """ return self.__rdiv__(b) def __rpow__(self, b): """This method defines the power operation for Angles by the right. :returns: A new Angle object. :rtype: :py:class:`Angle` :raises: TypeError if input values are of wrong type. >>> a = Angle(5.0) >>> print(24.0 ** a) 144.0 """ if isinstance(b, (int, float)): return Angle(b ** self._deg) elif isinstance(b, Angle): return Angle(b._deg ** self._deg) else: raise TypeError("Wrong operand type") def __float__(self): """This method returns Angle value as a float. :returns: Internal angle value as a float. :rtype: float >>> a = Angle(213.8) >>> float(a) 213.8 """ return float(self._deg) def __int__(self): """This method returns Angle value as an int. :returns: Internal angle value as an int. :rtype: int >>> a = Angle(213.8) >>> int(a) 213 """ return int(self._deg) def __round__(self, n=0): """This method returns an Angle with content rounded to 'n' decimal. :returns: A new Angle object. :rtype: :py:class:`Angle` >>> a = Angle(11.4361) >>> print(round(a, 2)) 11.44 """ # NOTE: This method is only called in Python 3 return Angle(round(self._deg, n)) def main(): # Let's define a small helper function def print_me(msg, val): print("{}: {}".format(msg, val)) # Let's show some uses of Angle class print("\n" + 35 * "*") print("*** Use of Angle class") print(35 * "*" + "\n") # Create an Angle object, providing degrees, minutes and seconds a = Angle(-23.0, 26.0, 48.999983999) print("a = Angle(-23.0, 26.0, 48.999983999)") # First we print using the __call__ method (note the extra parentheses) print_me("The angle 'a()' is", a()) # -23.44694444 # Second we print using the __str__ method (no extra parentheses needed) print_me("The angle 'a' is", a) # -23.44694444 print("") # Use the copy constructor b = Angle(a) print_me("Angle 'b', which is a copy of 'a', is", b) print("") # Use the static 'deg2dms()' method to carry out conversions d, m, s, sign = Angle.deg2dms(23.44694444) val = "{}d {}' {}''".format(int(sign * d), m, s) print_me("{Deg}d {Min}' {Sec}''", val) # 23d 26' 48.999984'' # We can print Angle 'a' directly in sexagesimal format # In 'fancy' format: # -23d 26' 48.999984'' print_me("{Deg}d {Min}' {Sec}''", a.dms_str(n_dec=6)) # In plain format: print_me("{Deg}:{Min}:{Sec}", a.dms_str(False, 6)) # -23:26:48.999983999 print("") # Print directly as a tuple a = Angle(23.44694444) print_me("a.dms_tuple()", a.dms_tuple()) print_me("a.ra_tuple()", a.ra_tuple()) print("") # Redefine Angle 'a' several times a.set(-0.44694444) print("a.set(-0.44694444)") print_me(" a.dms_str()", a.dms_str()) # -26' 48.999984'' a.set(0, 0, -46.31) print("a.set(0, 0, -46.31)") print_me(" a.dms_str(False)", a.dms_str(False)) # 0:0:-46.31 print("") # We can use decimals in degrees/minutes. They are converted automatically a.set(0, -46.25, 0.0) print("a.set(0, -46.25, 0.0)") print_me(" a.dms_str()", a.dms_str()) # -46' 15.0'' a.set(0, 0, 0.0) print("a.set(0, 0, 0.0)") print_me(" a.dms_str()", a.dms_str()) # 0d 0' 0.0'' print("") # We can define the angle as in radians. It will be converted to degrees b = Angle(pi, radians=True) print_me("b = Angle(pi, radians=True); print(b)", b) # 180.0 # And we can easily carry out the 'degrees to radians' conversion print_me("print(b.rad())", b.rad()) # 3.14159265359 print("") # We can also specify the angle as a Right Ascension print("Angle can be given as a Right Ascension: Hours, Minutes, Seconds") a.set_ra(9, 14, 55.8) print("a.set_ra(9, 14, 55.8)") print_me(" print(a)", a) b = Angle(9, 14, 55.8, ra=True) print("b = Angle(9, 14, 55.8, ra=True)") print_me(" print(b)", b) print("") # We can print the Angle as Right Ascension, as a float and as string a = Angle(138.75) print("a = Angle(138.75)") print_me(" print(a.get_ra())", a.get_ra()) print_me(" print(a.ra_str())", a.ra_str()) print_me(" print(a.ra_str(False))", a.ra_str(False)) print("") # Use the 'to_positive()' method to get the positive version of an angle a = Angle(-87.32) # 272.68 print("a = Angle(-87.32)") print_me(" print(a.to_positive())", a.to_positive()) print("") # Call the __repr__() method to get a string defining the current object # This string can then be fed to 'eval()' function to generate the object print_me("print(b.__repr__())", b.__repr__()) # Angle(138.7325) c = eval(repr(b)) print_me("c = eval(repr(b)); print(c)", c) # 138.7325 print("") print_me("c", c) # 138.7325 # Negate an angle d = Angle(13, 30) print_me("d", d) # 13.5 e = -d print_me(" e = -d", e) # -13.5 # Get the absolute value of an angle e = abs(e) print_me(" e = abs(e)", e) # 13.5 # Module operation on an angle d = Angle(17.0) print_me("d", d) # 17.0 e = c % d print_me(" e = c % d", e) # 10.0 print("") # Convert the angle to an integer d = Angle(13.95) print_me("d", d) # 13.95 print_me(" int(d)", int(d)) # 13.0 d = Angle(-4.95) print_me("d", d) # -4.95 print_me(" int(d)", int(d)) # -4.0 # Convert the angle to a float print_me(" float(d)", float(d)) # -4.95 # Round the angle to a float e = Angle(-4.951648) print_me("e", e) # -4.951648 print_me(" round(e)", round(e)) # -5.0 print_me(" round(e, 2)", round(e, 2)) # -4.95 print_me(" round(e, 3)", round(e, 3)) # -4.952 print_me(" round(e, 4)", round(e, 4)) # -4.9516 print("") # Comparison operators print_me(" d == e", d == e) # False print_me(" d != e", d != e) # True print_me(" d > e", d > e) # True print_me(" c >= 180.0", c >= 180.0) # False print_me(" c < 180.0", c < 180.0) # True print_me(" c <= 180.0", c <= 180.0) # True print("") # It is very easy to add Angles to obtain a new Angle e = c + d print_me(" c + d", e) # 133.7825 # We can also directly add a decimal angle e = c + 11.5 print_me(" c + 11.5", e) # 150.2325 print("") # Types allowed are int, float and Angle print('e = c + "32.5"') try: e = c + "32.5" except TypeError: print("TypeError!: Valid types are int, float, and Angle, not string!") print("") # Subtraction e = c - d print_me(" c - d", e) # 143.6825 # Multiplication c.set(150.0) d.set(5.0) print_me("c", c) # 150.0 print_me("d", d) # 5.0 e = c * d print_me(" c * d", e) # 30.0 # Division c.set(150.0) d.set(6.0) print_me("d", d) # 6.0 e = c / d print_me(" c / d", e) # 25.0 print("") # Division by zero is not allowed d.set(0.0) print_me("d", d) # 0.0 print("e = c / d") try: e = c / d except ZeroDivisionError: print("ZeroDivisionError!: Division by zero is not allowed!") print("") # Power d.set(2.2) print_me("d", d) # 2.2 e = c ** d print_me(" c ** d", e) # 91.57336709992524 print("") # Accumulative module operation d.set(17.0) print_me("d", d) # 17.0 e %= d print_me(" e %= d", e) # 6.573367099925235 # Accumulative addition c += d print_me(" c += d", c) # 167.0 # Accumulative subtraction print_me("b", b) # 138.7325 c -= b print_me(" c -= b", c) # 28.2675 # Accumulative multiplication print_me("b", b) # 138.7325 c *= b print_me(" c *= b", c) # 321.62094375 # Accumulative division print_me("b", b) # 138.7325 d.set(6.0) print_me("d", d) # 6.0 b /= d print_me(" b /= d", b) # 23.1220833333 # Accumulative power d.set(2.2) print_me("d", d) # 2.2 c = abs(c) print_me(" c = abs(c)", c) # 321.62094375 c **= d print_me(" c **= d", c) # 254.307104203 print("") # The same operation, but by the right side e = 3.5 + b print_me(" e = 3.5 + b", e) # 26.6220833333 e = 3.5 - b print_me(" e = 3.5 - b", e) # -19.6220833333 e = 3.5 * b print_me(" e = 3.5 * b", e) # 80.9272916667 e = 3.5 / b print_me(" e = 3.5 / b", e) # 0.151370443119 e = 3.5 ** b print_me(" e = 3.5 ** b", e) # 260.783691406 if __name__ == "__main__": main() pymeeus-0.3.6/pymeeus/Coordinates.py000066400000000000000000004140461355545537700175560ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from math import ( sqrt, sin, cos, tan, atan, atan2, asin, acos, radians, pi, copysign, degrees ) from pymeeus.base import TOL, iint from pymeeus.Angle import Angle from pymeeus.Epoch import Epoch, JDE2000 from pymeeus.Interpolation import Interpolation """ .. module:: Coordinates :synopsis: Module including different functions to handle coordinates :license: GNU Lesser General Public License v3 (LGPLv3) .. moduleauthor:: Dagoberto Salazar """ NUTATION_ARG_TABLE = [ [0, 0, 0, 0, 1], [-2, 0, 0, 2, 2], [0, 0, 0, 2, 2], [0, 0, 0, 0, 2], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0], [-2, 1, 0, 2, 2], [0, 0, 0, 2, 1], [0, 0, 1, 2, 2], [-2, -1, 0, 2, 2], [-2, 0, 1, 0, 0], [-2, 0, 0, 2, 1], [0, 0, -1, 2, 2], [2, 0, 0, 0, 0], [0, 0, 1, 0, 1], [2, 0, -1, 2, 2], [0, 0, -1, 0, 1], [0, 0, 1, 2, 1], [-2, 0, 2, 0, 0], [0, 0, -2, 2, 1], [2, 0, 0, 2, 2], [0, 0, 2, 2, 2], [0, 0, 2, 0, 0], [-2, 0, 1, 2, 2], [0, 0, 0, 2, 0], [-2, 0, 0, 2, 0], [0, 0, -1, 2, 1], [0, 2, 0, 0, 0], [2, 0, -1, 0, 1], [-2, 2, 0, 2, 2], [0, 1, 0, 0, 1], [-2, 0, 1, 0, 1], [0, -1, 0, 0, 1], [0, 0, 2, -2, 0], [2, 0, -1, 2, 1], [2, 0, 1, 2, 2], [0, 1, 0, 2, 2], [-2, 1, 1, 0, 0], [0, -1, 0, 2, 2], [2, 0, 0, 2, 1], [2, 0, 1, 0, 0], [-2, 0, 2, 2, 2], [-2, 0, 1, 2, 1], [2, 0, -2, 0, 1], [2, 0, 0, 0, 1], [0, -1, 1, 0, 0], [-2, -1, 0, 2, 1], [-2, 0, 0, 0, 1], [0, 0, 2, 2, 1], [-2, 0, 2, 0, 1], [-2, 1, 0, 2, 1], [0, 0, 1, -2, 0], [-1, 0, 1, 0, 0], [-2, 1, 0, 0, 0], [1, 0, 0, 0, 0], [0, 0, 1, 2, 0], [0, 0, -2, 2, 2], [-1, -1, 1, 0, 0], [0, 1, 1, 0, 0], [0, -1, 1, 2, 2], [2, -1, -1, 2, 2], [0, 0, 3, 2, 2], [2, -1, 0, 2, 2], ] """This table contains the periodic terms for the argument of the nutation. In Meeus' book this is Table 22.A and can be found in pages 145-146.""" NUTATION_SINE_COEF_TABLE = [ [-171996.0, -174.2], [-13187.0, -1.6], [-2274.0, -0.2], [2062.0, 0.2], [1426.0, -3.4], [712.0, 0.1], [-517.0, 1.2], [-386.0, -0.4], [-301.0, 0.0], [217.0, -0.5], [-158.0, 0.0], [129.0, 0.1], [123.0, 0.0], [63.0, 0.0], [63.0, 0.1], [-59.0, 0.0], [-58.0, -0.1], [-51.0, 0.0], [48.0, 0.0], [46.0, 0.0], [-38.0, 0.0], [-31.0, 0.0], [29.0, 0.0], [29.0, 0.0], [26.0, 0.0], [-22.0, 0.0], [21.0, 0.0], [17.0, -0.1], [16.0, 0.0], [-16.0, 0.1], [-15.0, 0.0], [-13.0, 0.0], [-12.0, 0.0], [11.0, 0.0], [-10.0, 0.0], [-8.0, 0.0], [7.0, 0.0], [-7.0, 0.0], [-7.0, 0.0], [-7.0, 0.0], [6.0, 0.0], [6.0, 0.0], [6.0, 0.0], [-6.0, 0.0], [-6.0, 0.0], [5.0, 0.0], [-5.0, 0.0], [-5.0, 0.0], [-5.0, 0.0], [4.0, 0.0], [4.0, 0.0], [4.0, 0.0], [-4.0, 0.0], [-4.0, 0.0], [-4.0, 0.0], [3.0, 0.0], [-3.0, 0.0], [-3.0, 0.0], [-3.0, 0.0], [-3.0, 0.0], [-3.0, 0.0], [-3.0, 0.0], [-3.0, 0.0], ] """This table contains the periodic terms for the coefficients of the sine of the argument of the nutation, and they are used to compute Delta psi. Units are in 0.0001''. In Meeus' book this is Table 22.A and can be found in pages 145-146.""" NUTATION_COSINE_COEF_TABLE = [ [92025.0, 8.9], [5736.0, -3.1], [977.0, -0.5], [-895.0, 0.5], [54.0, -0.1], [-7.0, 0.0], [224.0, -0.6], [200.0, 0.0], [129.0, -0.1], [-95.0, 0.3], [0.0, 0.0], [-70.0, 0.0], [-53.0, 0.0], [0.0, 0.0], [-33.0, 0.0], [26.0, 0.0], [32.0, 0.0], [27.0, 0.0], [0.0, 0.0], [-24.0, 0.0], [16.0, 0.0], [13.0, 0.0], [0.0, 0.0], [-12.0, 0.0], [0.0, 0.0], [0.0, 0.0], [-10.0, 0.0], [0.0, 0.0], [-8.0, 0.0], [7.0, 0.0], [9.0, 0.0], [7.0, 0.0], [6.0, 0.0], [0.0, 0.0], [5.0, 0.0], [3.0, 0.0], [-3.0, 0.0], [0.0, 0.0], [3.0, 0.0], [3.0, 0.0], [0.0, 0.0], [-3.0, 0.0], [-3.0, 0.0], [3.0, 0.0], [3.0, 0.0], [0.0, 0.0], [3.0, 0.0], [3.0, 0.0], [3.0, 0.0], ] """This table contains the periodic terms for the coefficients of the cosine of the argument of the nutation, and they are used to compute Delta epsilon. Units are in 0.0001''. In Meeus' book this is Table 22.A and can be found in pages 145-146.""" def mean_obliquity(*args, **kwargs): """This function computes the mean obliquity (epsilon0) at the provided date. This function internally uses an :class:`Epoch` object, and the **utc** argument then controls the way the UTC->TT conversion is handled for that object. If **leap_seconds** argument is set to a value different than zero, then that value will be used for the UTC->TAI conversion, and the internal leap seconds table will be bypassed. :param args: Either :class:`Epoch`, date, datetime or year, month, day values, by themselves or inside a tuple or list :type args: int, float, :py:class:`Epoch`, datetime, date, tuple, list :param utc: Whether the provided epoch is a civil time (UTC) or TT :type utc: bool :param leap_seconds: This is the value to be used in the UTC->TAI conversion, instead of taking it from internal leap seconds table. :type leap_seconds: int, float :returns: The mean obliquity of the ecliptic, as an :class:`Angle` :rtype: :class:`Angle` :raises: ValueError if input values are in the wrong range. :raises: TypeError if input values are of wrong type. >>> e0 = mean_obliquity(1987, 4, 10) >>> a = e0.dms_tuple() >>> a[0] 23 >>> a[1] 26 >>> round(a[2], 3) 27.407 """ # Get the Epoch object corresponding to input parameters t = Epoch.check_input_date(*args, **kwargs) # Let's redefine u in units of 100 Julian centuries from Epoch J2000.0 u = (t.jde() - 2451545.0) / 3652500.0 epsilon0 = Angle(23, 26, 21.448) delta = u * ( -4680.93 + u * ( -1.55 + u * ( 1999.25 + u * ( -51.38 + u * ( -249.67 + u * (-39.05 + u * (7.12 + u * (27.87 + u * (5.79 + u * 2.45)))) ) ) ) ) ) delta = Angle(0, 0, delta) epsilon0 += delta return epsilon0 def true_obliquity(*args, **kwargs): """This function computes the true obliquity (epsilon) at the provided date. The true obliquity is the mean obliquity (epsilon0) plus the correction provided by the nutation in obliquity (Delta epsilon). This function internally uses an :class:`Epoch` object, and the **utc** argument then controls the way the UTC->TT conversion is handled for that object. If **leap_seconds** argument is set to a value different than zero, then that value will be used for the UTC->TAI conversion, and the internal leap seconds table will be bypassed. :param args: Either :class:`Epoch`, date, datetime or year, month, day values, by themselves or inside a tuple or list :type args: int, float, :py:class:`Epoch`, datetime, date, tuple, list :param utc: Whether the provided epoch is a civil time (UTC) or TT :type utc: bool :param leap_seconds: This is the value to be used in the UTC->TAI conversion, instead of taking it from internal leap seconds table. :type leap_seconds: int, float :returns: The true obliquity of the ecliptic, as an Angle :rtype: :class:`Angle` :raises: ValueError if input values are in the wrong range. :raises: TypeError if input values are of wrong type. >>> epsilon = true_obliquity(1987, 4, 10) >>> a = epsilon.dms_tuple() >>> a[0] 23 >>> a[1] 26 >>> round(a[2], 3) 36.849 """ epsilon0 = mean_obliquity(*args, **kwargs) delta_epsilon = nutation_obliquity(*args, **kwargs) return epsilon0 + delta_epsilon def nutation_longitude(*args, **kwargs): """This function computes the nutation in longitude (Delta psi) at the provided date. This function internally uses an :class:`Epoch` object, and the **utc** argument then controls the way the UTC->TT conversion is handled for that object. If **leap_seconds** argument is set to a value different than zero, then that value will be used for the UTC->TAI conversion, and the internal leap seconds table will be bypassed. :param args: Either :class:`Epoch`, date, datetime or year, month, day values, by themselves or inside a tuple or list :type args: int, float, :py:class:`Epoch`, datetime, date, tuple, list :param utc: Whether the provided epoch is a civil time (UTC) or TT :type utc: bool :param leap_seconds: This is the value to be used in the UTC->TAI conversion, instead of taking it from internal leap seconds table. :type leap_seconds: int, float :returns: The nutation in longitude (Delta psi), as an Angle :rtype: :class:`Angle` :raises: ValueError if input values are in the wrong range. :raises: TypeError if input values are of wrong type. >>> dpsi = nutation_longitude(1987, 4, 10) >>> a = dpsi.dms_tuple() >>> a[0] 0 >>> a[1] 0 >>> round(a[2], 3) 3.788 >>> a[3] -1.0 """ # Get the Epoch object corresponding to input parameters t = Epoch.check_input_date(*args, **kwargs) # Let's redefine t in units of Julian centuries from Epoch J2000.0 t = (t.jde() - 2451545.0) / 36525.0 # Let's compute the mean elongation of the Moon from the Sun d = 297.85036 + t * (445267.111480 + t * (-0.0019142 + t / 189474.0)) d = Angle(d) # Convert into an Angle: It is easier to handle # Compute the mean anomaly of the Sun (from Earth) m = 357.52772 + t * (35999.050340 + t * (-0.0001603 - t / 300000.0)) m = Angle(m) # Compute the mean anomaly of the Moon mprime = 134.96298 + t * (477198.867398 + t * (0.0086972 + t / 56250.0)) mprime = Angle(mprime) # Now, let's compute the Moon's argument of latitude f = 93.27191 + t * (483202.017538 + t * (-0.0036825 + t / 327270.0)) f = Angle(f) # And finally, the longitude of the ascending node of the Moon's mean # orbit on the ecliptic, measured from the mean equinox of date omega = 125.04452 + t * (-1934.136261 + t * (0.0020708 + t / 450000.0)) omega = Angle(omega) # Let's store this results in a list, in preparation for using tables arguments = [d, m, mprime, f, omega] # Now is time of using the nutation tables deltapsi = 0.0 for i, value in enumerate(NUTATION_SINE_COEF_TABLE): argument = Angle() coeff = 0.0 for j in range(5): if NUTATION_ARG_TABLE[i][j]: # Avoid multiplications by zero argument += NUTATION_ARG_TABLE[i][j] * arguments[j] coeff = value[0] if value[1]: coeff += value[1] * t deltapsi += (coeff * sin(argument.rad())) / 10000.0 return Angle(0, 0, deltapsi) def nutation_obliquity(*args, **kwargs): """This function computes the nutation in obliquity (Delta epsilon) at the provided date. This function internally uses an :class:`Epoch` object, and the **utc** argument then controls the way the UTC->TT conversion is handled for that object. If **leap_seconds** argument is set to a value different than zero, then that value will be used for the UTC->TAI conversion, and the internal leap seconds table will be bypassed. :param args: Either :class:`Epoch`, date, datetime or year, month, day values, by themselves or inside a tuple or list :type args: int, float, :py:class:`Epoch`, datetime, date, tuple, list :param utc: Whether the provided epoch is a civil time (UTC) or TT :type utc: bool :param leap_seconds: This is the value to be used in the UTC->TAI conversion, instead of taking it from internal leap seconds table. :type leap_seconds: int, float :returns: The nutation in obliquity (Delta epsilon), as an :class:`Angle` :rtype: :class:`Angle` :raises: ValueError if input values are in the wrong range. :raises: TypeError if input values are of wrong type. >>> depsilon = nutation_obliquity(1987, 4, 10) >>> a = depsilon.dms_tuple() >>> a[0] 0 >>> a[1] 0 >>> round(a[2], 3) 9.443 >>> a[3] 1.0 """ # Get the Epoch object corresponding to input parameters t = Epoch.check_input_date(*args, **kwargs) # Let's redefine t in units of Julian centuries from Epoch J2000.0 t = (t.jde() - 2451545.0) / 36525.0 # Let's compute the mean elongation of the Moon from the Sun d = 297.85036 + t * (445267.111480 + t * (-0.0019142 + t / 189474.0)) d = Angle(d) # Convert into an Angle: It is easier to handle # Compute the mean anomaly of the Sun (from Earth) m = 357.52772 + t * (35999.050340 + t * (-0.0001603 - t / 300000.0)) m = Angle(m) # Compute the mean anomaly of the Moon mprime = 134.96298 + t * (477198.867398 + t * (0.0086972 + t / 56250.0)) mprime = Angle(mprime) # Now, let's compute the Moon's argument of latitude f = 93.27191 + t * (483202.017538 + t * (-0.0036825 + t / 327270.0)) f = Angle(f) # And finally, the longitude of the ascending node of the Moon's mean # orbit on the ecliptic, measured from the mean equinox of date omega = 125.04452 + t * (-1934.136261 + t * (0.0020708 + t / 450000.0)) omega = Angle(omega) # Let's store this results in a list, in preparation for using tables arguments = [d, m, mprime, f, omega] # Now is time of using the nutation tables deltaepsilon = 0.0 for i, value in enumerate(NUTATION_COSINE_COEF_TABLE): argument = Angle() coeff = 0.0 for j in range(5): if NUTATION_ARG_TABLE[i][j]: # Avoid multiplications by zero argument += NUTATION_ARG_TABLE[i][j] * arguments[j] coeff = value[0] if value[1]: coeff += value[1] * t deltaepsilon += (coeff * cos(argument.rad())) / 10000.0 return Angle(0, 0, deltaepsilon) def precession_equatorial( start_epoch, final_epoch, start_ra, start_dec, p_motion_ra=0.0, p_motion_dec=0.0 ): """This function converts the equatorial coordinates (right ascension and declination) given for an epoch and a equinox, to the corresponding values for another epoch and equinox. Only the **mean** positions, i.e. the effects of precession and proper motion, are considered here. :param start_epoch: Initial epoch when initial coordinates are given :type start_epoch: :py:class:`Epoch` :param final_epoch: Final epoch for when coordinates are going to be computed :type final_epoch: :py:class:`Epoch` :param start_ra: Initial right ascension :type start_ra: :py:class:`Angle` :param start_dec: Initial declination :type start_dec: :py:class:`Angle` :param p_motion_ra: Proper motion in right ascension, in degrees per year. Zero by default. :type p_motion_ra: :py:class:`Angle` :param p_motion_dec: Proper motion in declination, in degrees per year. Zero by default. :type p_motion_dec: :py:class:`Angle` :returns: Equatorial coordinates (right ascension, declination, in that order) corresponding to the final epoch, given as two objects :class:`Angle` inside a tuple :rtype: tuple :raises: TypeError if input values are of wrong type. >>> start_epoch = JDE2000 >>> final_epoch = Epoch(2028, 11, 13.19) >>> alpha0 = Angle(2, 44, 11.986, ra=True) >>> delta0 = Angle(49, 13, 42.48) >>> pm_ra = Angle(0, 0, 0.03425, ra=True) >>> pm_dec = Angle(0, 0, -0.0895) >>> alpha, delta = precession_equatorial(start_epoch, final_epoch, alpha0, ... delta0, pm_ra, pm_dec) >>> print(alpha.ra_str(False, 3)) 2:46:11.331 >>> print(delta.dms_str(False, 2)) 49:20:54.54 """ # First check that input values are of correct types if not ( isinstance(start_epoch, Epoch) and isinstance(final_epoch, Epoch) and isinstance(start_ra, Angle) and isinstance(start_dec, Angle) ): raise TypeError("Invalid input types") if isinstance(p_motion_ra, (int, float)): p_motion_ra = Angle(p_motion_ra) if isinstance(p_motion_dec, (int, float)): p_motion_dec = Angle(p_motion_dec) if not (isinstance(p_motion_ra, Angle) and isinstance(p_motion_dec, Angle)): raise TypeError("Invalid input types") tt = (start_epoch - JDE2000) / 36525.0 t = (final_epoch - start_epoch) / 36525.0 # Correct starting coordinates by proper motion start_ra += p_motion_ra * t * 100.0 start_dec += p_motion_dec * t * 100.0 # Compute the conversion parameters zeta = t * ( (2306.2181 + tt * (1.39656 - 0.000139 * tt)) + t * ((0.30188 - 0.000344 * tt) + 0.017998 * t) ) z = t * ( (2306.2181 + tt * (1.39656 - 0.000139 * tt)) + t * ((1.09468 + 0.000066 * tt) + 0.018203 * t) ) theta = t * ( 2004.3109 + tt * (-0.85330 - 0.000217 * tt) + t * (-(0.42665 + 0.000217 * tt) - 0.041833 * t) ) # Redefine the former values as Angles zeta = Angle(0, 0, zeta) z = Angle(0, 0, z) theta = Angle(0, 0, theta) a = cos(start_dec.rad()) * sin(start_ra.rad() + zeta.rad()) b = cos(theta.rad()) * cos(start_dec.rad()) * cos( start_ra.rad() + zeta.rad() ) - sin(theta.rad()) * sin(start_dec.rad()) c = sin(theta.rad()) * cos(start_dec.rad()) * cos( start_ra.rad() + zeta.rad() ) + cos(theta.rad()) * sin(start_dec.rad()) final_ra = atan2(a, b) + z.rad() if start_dec > 85.0: # Coordinates are close to the pole final_dec = sqrt(a * a + b * b) else: final_dec = asin(c) # Convert results to Angles. Please note results are in radians final_ra = Angle(final_ra, radians=True) final_dec = Angle(final_dec, radians=True) return (final_ra, final_dec) def precession_ecliptical( start_epoch, final_epoch, start_lon, start_lat, p_motion_lon=0.0, p_motion_lat=0.0 ): """This function converts the ecliptical coordinates (longitude and latitude) given for an epoch and a equinox, to the corresponding values for another epoch and equinox. Only the **mean** positions, i.e. the effects of precession and proper motion, are considered here. :param start_epoch: Initial epoch when initial coordinates are given :type start_epoch: :py:class:`Epoch` :param final_epoch: Final epoch for when coordinates are going to be computed :type final_epoch: :py:class:`Epoch` :param start_lon: Initial longitude :type start_lon: :py:class:`Angle` :param start_lat: Initial latitude :type start_lat: :py:class:`Angle` :param p_motion_lon: Proper motion in longitude, in degrees per year. Zero by default. :type p_motion_lon: :py:class:`Angle` :param p_motion_lat: Proper motion in latitude, in degrees per year. Zero by default. :type p_motion_lat: :py:class:`Angle` :returns: Ecliptical coordinates (longitude, latitude, in that order) corresponding to the final epoch, given as two :class:`Angle` objects inside a tuple :rtype: tuple :raises: TypeError if input values are of wrong type. >>> start_epoch = JDE2000 >>> final_epoch = Epoch(-214, 6, 30.0) >>> lon0 = Angle(149.48194) >>> lat0 = Angle(1.76549) >>> lon, lat = precession_ecliptical(start_epoch, final_epoch, lon0, lat0) >>> print(round(lon(), 3)) 118.704 >>> print(round(lat(), 3)) 1.615 """ # First check that input values are of correct types if not ( isinstance(start_epoch, Epoch) and isinstance(final_epoch, Epoch) and isinstance(start_lon, Angle) and isinstance(start_lat, Angle) ): raise TypeError("Invalid input types") if isinstance(p_motion_lon, (int, float)): p_motion_lon = Angle(p_motion_lon) if isinstance(p_motion_lat, (int, float)): p_motion_lat = Angle(p_motion_lat) if not (isinstance(p_motion_lon, Angle) and isinstance(p_motion_lat, Angle)): raise TypeError("Invalid input types") tt = (start_epoch - JDE2000) / 36525.0 t = (final_epoch - start_epoch) / 36525.0 # Correct starting coordinates by proper motion start_lon += p_motion_lon * t * 100.0 start_lat += p_motion_lat * t * 100.0 # Compute the conversion parameters eta = t * ( (47.0029 + tt * (-0.06603 + 0.000598 * tt)) + t * ((-0.03302 + 0.000598 * tt) + 0.00006 * t) ) pie = tt * (3289.4789 + 0.60622 * tt) + t * ( -(869.8089 + 0.50491 * tt) + 0.03536 * t ) p = t * ( 5029.0966 + tt * (2.22226 - 0.000042 * tt) + t * (1.11113 - 0.000042 * tt - 0.000006 * t) ) eta = Angle(0, 0, eta) pie = Angle(0, 0, pie) p = Angle(0, 0, p) # But beware!: There is still a missing constant for pie. We didn't add # it before because of the mismatch between degrees and seconds pie += 174.876384 a = (cos(eta.rad()) * cos(start_lat.rad()) * sin(pie.rad() - start_lon.rad()) - sin(eta.rad()) * sin(start_lat.rad())) b = cos(start_lat.rad()) * cos(pie.rad() - start_lon.rad()) c = cos(eta.rad()) * sin(start_lat.rad()) + sin(eta.rad()) * cos( start_lat.rad() ) * sin(pie.rad() - start_lon.rad()) final_lon = p.rad() + pie.rad() - atan2(a, b) final_lat = asin(c) # Convert results to Angles. Please note results are in radians final_lon = Angle(final_lon, radians=True) final_lat = Angle(final_lat, radians=True) return (final_lon, final_lat) def p_motion_equa2eclip(p_motion_ra, p_motion_dec, ra, dec, lat, epsilon): """It is usual that proper motions are given in equatorial coordinates, not in ecliptical ones. Therefore, this function converts the provided proper motions in equatorial coordinates to the corresponding ones in ecliptical coordinates. :param p_motion_ra: Proper motion in right ascension, in degrees per year, as an :class:`Angle` object :type p_motion_ra: :py:class:`Angle` :param p_motion_dec: Proper motion in declination, in degrees per year, as an :class:`Angle` object :type p_motion_dec: :py:class:`Angle` :param ra: Right ascension of the astronomical object, as degrees in an :class:`Angle` object :type ra: :py:class:`Angle` :param dec: Declination of the astronomical object, as degrees in an :class:`Angle` object :type dec: :py:class:`Angle` :param lat: Ecliptical latitude of the astronomical object, as degrees in an :class:`Angle` object :type lat: :py:class:`Angle` :param epsilon: Obliquity of the ecliptic :type epsilon: :py:class:`Angle` :returns: Proper motions in ecliptical longitude and latitude (in that order), given as two :class:`Angle` objects inside a tuple :rtype: tuple :raises: TypeError if input values are of wrong type. """ # First check that input values are of correct types if not ( isinstance(p_motion_ra, Angle) and isinstance(p_motion_dec, Angle) and isinstance(ra, Angle) and isinstance(dec, Angle) and isinstance(lat, Angle) and isinstance(epsilon, Angle) ): raise TypeError("Invalid input types") pm_ra = p_motion_ra.rad() pm_dec = p_motion_dec.rad() s_eps = sin(epsilon.rad()) c_eps = cos(epsilon.rad()) s_ra = sin(ra.rad()) c_ra = cos(ra.rad()) s_dec = sin(dec.rad()) c_dec = cos(dec.rad()) c_lat = cos(lat.rad()) se_ca = s_eps * c_ra se_sd_sa = s_eps * s_dec * s_ra pa_cd = pm_ra * c_dec ce_cd = c_eps * c_dec cl2 = c_lat * c_lat p_motion_lon = (pm_dec * se_ca + pa_cd * (ce_cd + se_sd_sa)) / cl2 p_motion_lat = (pm_dec * (ce_cd + se_sd_sa) - pa_cd * se_ca) / c_lat return (p_motion_lon, p_motion_lat) def precession_newcomb( start_epoch, final_epoch, start_ra, start_dec, p_motion_ra=0.0, p_motion_dec=0.0 ): """This function implements the Newcomb precessional equations used in the old FK4 system. It takes equatorial coordinates (right ascension and declination) given for an epoch and a equinox, and converts them to the corresponding values for another epoch and equinox. Only the **mean** positions, i.e. the effects of precession and proper motion, are considered here. :param start_epoch: Initial epoch when initial coordinates are given :type start_epoch: :py:class:`Epoch` :param final_epoch: Final epoch for when coordinates are going to be computed :type final_epoch: :py:class:`Epoch` :param start_ra: Initial right ascension :type start_ra: :py:class:`Angle` :param start_dec: Initial declination :type start_dec: :py:class:`Angle` :param p_motion_ra: Proper motion in right ascension, in degrees per year. Zero by default. :type p_motion_ra: :py:class:`Angle` :param p_motion_dec: Proper motion in declination, in degrees per year. Zero by default. :type p_motion_dec: :py:class:`Angle` :returns: Equatorial coordinates (right ascension, declination, in that order) corresponding to the final epoch, given as two objects :class:`Angle` inside a tuple :rtype: tuple :raises: TypeError if input values are of wrong type. """ # First check that input values are of correct types if not ( isinstance(start_epoch, Epoch) and isinstance(final_epoch, Epoch) and isinstance(start_ra, Angle) and isinstance(start_dec, Angle) ): raise TypeError("Invalid input types") if isinstance(p_motion_ra, (int, float)): p_motion_ra = Angle(p_motion_ra) if isinstance(p_motion_dec, (int, float)): p_motion_dec = Angle(p_motion_dec) if not (isinstance(p_motion_ra, Angle) and isinstance(p_motion_dec, Angle)): raise TypeError("Invalid input types") tt = (start_epoch - 2415020.3135) / 36524.2199 t = (final_epoch - start_epoch) / 36524.2199 # Correct starting coordinates by proper motion start_ra += p_motion_ra * t * 100.0 start_dec += p_motion_dec * t * 100.0 # Compute the conversion parameters zeta = t * (2304.25 + 1.396 * tt + t * (0.302 + 0.018 * t)) z = zeta + t * t * (0.791 + 0.001 * t) theta = t * (2004.682 - 0.853 * tt - t * (0.426 + 0.042 * t)) # Redefine the former values as Angles zeta = Angle(0, 0, zeta) z = Angle(0, 0, z) theta = Angle(0, 0, theta) a = cos(start_dec.rad()) * sin(start_ra.rad() + zeta.rad()) b = cos(theta.rad()) * cos(start_dec.rad()) * cos( start_ra.rad() + zeta.rad() ) - sin(theta.rad()) * sin(start_dec.rad()) c = sin(theta.rad()) * cos(start_dec.rad()) * cos( start_ra.rad() + zeta.rad() ) + cos(theta.rad()) * sin(start_dec.rad()) final_ra = atan2(a, b) + z.rad() if start_dec > 85.0: # Coordinates are close to the pole final_dec = sqrt(a * a + b * b) else: final_dec = asin(c) # Convert results to Angles. Please note results are in radians final_ra = Angle(final_ra, radians=True) final_dec = Angle(final_dec, radians=True) return (final_ra, final_dec) def motion_in_space( start_ra, start_dec, distance, velocity, p_motion_ra, p_motion_dec, time ): """This function computes the star's true motion through space relative to the Sun, allowing to compute the start proper motion at a given time. :param start_ra: Initial right ascension :type start_ra: :py:class:`Angle` :param start_dec: Initial declination :type start_dec: :py:class:`Angle` :param distance: Star's distance to the Sun, in parsecs. If distance is given in light-years, multipy it by 0.3066. If the star's parallax **pie** (in arcseconds) is given, use (1.0/pie). :type distance: float :param velocity: Radial velocity in km/s :type velocity: float :param p_motion_ra: Proper motion in right ascension, in degrees per year. :type p_motion_ra: :py:class:`Angle` :param p_motion_dec: Proper motion in declination, in degrees per year. :type p_motion_dec: :py:class:`Angle` :param time: Number of years since starting epoch, positive in the future, negative in the past :type time: float :returns: Equatorial coordinates (right ascension, declination, in that order) corresponding to the final epoch, given as two objects :class:`Angle` inside a tuple :rtype: tuple :raises: TypeError if input values are of wrong type. >>> ra = Angle(6, 45, 8.871, ra=True) >>> dec = Angle(-16.716108) >>> pm_ra = Angle(0, 0, -0.03847, ra=True) >>> pm_dec = Angle(0, 0, -1.2053) >>> dist = 2.64 >>> vel = -7.6 >>> alpha, delta = motion_in_space(ra, dec, dist, vel, pm_ra, pm_dec, ... -1000.0) >>> print(alpha.ra_str(False, 2)) 6:45:47.16 >>> print(delta.dms_str(False, 1)) -16:22:56.0 >>> alpha, delta = motion_in_space(ra, dec, dist, vel, pm_ra, pm_dec, ... -4000.0) >>> print(alpha.ra_str(False, 2)) 6:47:39.91 >>> print(delta.dms_str(False, 1)) -15:23:30.6 """ # >>> ra = Angle(101.286962) # First check that input values are of correct types if not (isinstance(start_ra, Angle) and isinstance(start_dec, Angle)): raise TypeError("Invalid input types") if isinstance(p_motion_ra, (int, float)): p_motion_ra = Angle(p_motion_ra) if isinstance(p_motion_dec, (int, float)): p_motion_dec = Angle(p_motion_dec) if not (isinstance(p_motion_ra, Angle) and isinstance(p_motion_dec, Angle)): raise TypeError("Invalid input types") if not ( isinstance(distance, (int, float)) and isinstance(velocity, (int, float)) and isinstance(time, (int, float)) ): raise TypeError("Invalid input types") dr = velocity / 977792.0 x = distance * cos(start_dec.rad()) * cos(start_ra.rad()) y = distance * cos(start_dec.rad()) * sin(start_ra.rad()) z = distance * sin(start_dec.rad()) dx = ( (x / distance) * dr - z * p_motion_dec.rad() * cos(start_ra.rad()) - y * p_motion_ra.rad() ) dy = ( (y / distance) * dr - z * p_motion_dec.rad() * sin(start_ra.rad()) + x * p_motion_ra.rad() ) dz = ((z / distance) * dr + distance * p_motion_dec.rad() * cos(start_dec.rad())) xp = x + time * dx yp = y + time * dy zp = z + time * dz final_ra = atan2(yp, xp) final_dec = atan(zp / sqrt(xp * xp + yp * yp)) # Convert results to Angles. Please note results are in radians final_ra = Angle(final_ra, radians=True) final_dec = Angle(final_dec, radians=True) return (final_ra, final_dec) def equatorial2ecliptical(right_ascension, declination, obliquity): """This function converts from equatorial coordinated (right ascension and declination) to ecliptical coordinates (longitude and latitude). :param right_ascension: Right ascension, as an Angle object :type start_epoch: :py:class:`Angle` :param declination: Declination, as an Angle object :type start_epoch: :py:class:`Angle` :param obliquity: Obliquity of the ecliptic, as an Angle object :type obliquity: :py:class:`Angle` :returns: Ecliptical coordinates (longitude, latitude, in that order), given as two :class:`Angle` objects inside a tuple :rtype: tuple :raises: TypeError if input values are of wrong type. >>> ra = Angle(7, 45, 18.946, ra=True) >>> dec = Angle(28, 1, 34.26) >>> epsilon = Angle(23.4392911) >>> lon, lat = equatorial2ecliptical(ra, dec, epsilon) >>> print(round(lon(), 5)) 113.21563 >>> print(round(lat(), 5)) 6.68417 """ # First check that input values are of correct types if not ( isinstance(right_ascension, Angle) and isinstance(declination, Angle) and isinstance(obliquity, Angle) ): raise TypeError("Invalid input types") ra = right_ascension.rad() dec = declination.rad() eps = obliquity.rad() lon = atan2((sin(ra) * cos(eps) + tan(dec) * sin(eps)), cos(ra)) lat = asin(sin(dec) * cos(eps) - cos(dec) * sin(eps) * sin(ra)) lon = Angle(lon, radians=True) lon = lon.to_positive() lat = Angle(lat, radians=True) return (lon, lat) def ecliptical2equatorial(longitude, latitude, obliquity): """This function converts from ecliptical coordinates (longitude and latitude) to equatorial coordinated (right ascension and declination). :param longitude: Ecliptical longitude, as an Angle object :type longitude: :py:class:`Angle` :param latitude: Ecliptical latitude, as an Angle object :type latitude: :py:class:`Angle` :param obliquity: Obliquity of the ecliptic, as an Angle object :type obliquity: :py:class:`Angle` :returns: Equatorial coordinates (right ascension, declination, in that order), given as two :class:`Angle` objects inside a tuple :rtype: tuple :raises: TypeError if input values are of wrong type. >>> lon = Angle(113.21563) >>> lat = Angle(6.68417) >>> epsilon = Angle(23.4392911) >>> ra, dec = ecliptical2equatorial(lon, lat, epsilon) >>> print(ra.ra_str(n_dec=3)) 7h 45' 18.946'' >>> print(dec.dms_str(n_dec=2)) 28d 1' 34.26'' """ # First check that input values are of correct types if not ( isinstance(longitude, Angle) and isinstance(latitude, Angle) and isinstance(obliquity, Angle) ): raise TypeError("Invalid input types") lon = longitude.rad() lat = latitude.rad() eps = obliquity.rad() ra = atan2((sin(lon) * cos(eps) - tan(lat) * sin(eps)), cos(lon)) dec = asin(sin(lat) * cos(eps) + cos(lat) * sin(eps) * sin(lon)) ra = Angle(ra, radians=True) ra = ra.to_positive() dec = Angle(dec, radians=True) return (ra, dec) def equatorial2horizontal(hour_angle, declination, geo_latitude): """This function converts from equatorial coordinates (right ascension and declination) to local horizontal coordinates (azimuth and elevation). Following Meeus' convention, the azimuth is measured westward from the SOUTH. If you want the azimuth to be measured from the north (common custom between navigators and meteorologits), you should add 180 degrees. The hour angle (H) comprises information about the sidereal time, the observer's geodetic longitude (positive west from Greenwich) and the right ascension. If theta is the local sidereal time, theta0 the sidereal time at Greenwich, lon the observer's longitude and ra the right ascension, the following expressions hold: H = theta - ra H = theta0 - lon - ra :param hour_angle: Hour angle, as an Angle object :type hour_angle: :py:class:`Angle` :param declination: Declination, as an Angle object :type declination: :py:class:`Angle` :param geo_latitude: Geodetic latitude of the observer, as an Angle object :type geo_latitude: :py:class:`Angle` :returns: Local horizontal coordinates (azimuth, elevation, in that order), given as two :class:`Angle` objects inside a tuple :rtype: tuple :raises: TypeError if input values are of wrong type. >>> lon = Angle(77, 3, 56) >>> lat = Angle(38, 55, 17) >>> ra = Angle(23, 9, 16.641, ra=True) >>> dec = Angle(-6, 43, 11.61) >>> theta0 = Angle(8, 34, 57.0896, ra=True) >>> eps = Angle(23, 26, 36.87) >>> delta = Angle(0, 0, ((-3.868*cos(eps.rad()))/15.0), ra=True) >>> theta0 += delta >>> h = theta0 - lon - ra >>> azi, ele = equatorial2horizontal(h, dec, lat) >>> print(round(azi, 3)) 68.034 >>> print(round(ele, 3)) 15.125 """ # First check that input values are of correct types if not ( isinstance(hour_angle, Angle) and isinstance(declination, Angle) and isinstance(geo_latitude, Angle) ): raise TypeError("Invalid input types") h = hour_angle.rad() dec = declination.rad() lat = geo_latitude.rad() azi = atan2(sin(h), (cos(h) * sin(lat) - tan(dec) * cos(lat))) ele = asin(sin(lat) * sin(dec) + cos(lat) * cos(dec) * cos(h)) azi = Angle(azi, radians=True) ele = Angle(ele, radians=True) return (azi, ele) def horizontal2equatorial(azimuth, elevation, geo_latitude): """This function converts from local horizontal coordinates (azimuth and elevation) to equatorial coordinates (right ascension and declination). Following Meeus' convention, the azimuth is measured westward from the SOUTH. This function returns the hour angle and the declination. The hour angle (H) comprises information about the sidereal time, the observer's geodetic longitude (positive west from Greenwich) and the right ascension. If theta is the local sidereal time, theta0 the sidereal time at Greenwich, lon the observer's longitude and ra the right ascension, the following expressions hold: H = theta - ra H = theta0 - lon - ra :param azimuth: Azimuth, measured westward from south, as an Angle object :type azimuth: :py:class:`Angle` :param elevation: Elevation from the horizon, as an Angle object :type elevation: :py:class:`Angle` :param geo_latitude: Geodetic latitude of the observer, as an Angle object :type geo_latitude: :py:class:`Angle` :returns: Equatorial coordinates (as hour angle and declination, in that order), given as two :class:`Angle` objects inside a tuple :rtype: tuple :raises: TypeError if input values are of wrong type. >>> azi = Angle(68.0337) >>> ele = Angle(15.1249) >>> lat = Angle(38, 55, 17) >>> h, dec = horizontal2equatorial(azi, ele, lat) >>> print(round(h, 4)) 64.3521 >>> print(dec.dms_str(n_dec=0)) -6d 43' 12.0'' """ # First check that input values are of correct types if not ( isinstance(azimuth, Angle) and isinstance(elevation, Angle) and isinstance(geo_latitude, Angle) ): raise TypeError("Invalid input types") azi = azimuth.rad() ele = elevation.rad() lat = geo_latitude.rad() h = atan2(sin(azi), (cos(azi) * sin(lat) + tan(ele) * cos(lat))) dec = asin(sin(lat) * sin(ele) - cos(lat) * cos(ele) * cos(azi)) h = Angle(h, radians=True) dec = Angle(dec, radians=True) return (h, dec) def equatorial2galactic(right_ascension, declination): """This function converts from equatorial coordinates (right ascension and declination) to galactic coordinates (longitude and latitude). The current galactic system of coordinates was defined by the International Astronomical Union in 1959, using the standard equatorial system of epoch B1950.0. :param right_ascension: Right ascension, as an Angle object :type right_ascension: :py:class:`Angle` :param declination: Declination, as an Angle object :type declination: :py:class:`Angle` :returns: Galactic coordinates (longitude and latitude, in that order), given as two :class:`Angle` objects inside a tuple :rtype: tuple :raises: TypeError if input values are of wrong type. >>> ra = Angle(17, 48, 59.74, ra=True) >>> dec = Angle(-14, 43, 8.2) >>> lon, lat = equatorial2galactic(ra, dec) >>> print(round(lon, 4)) 12.9593 >>> print(round(lat, 4)) 6.0463 """ # First check that input values are of correct types if not (isinstance(right_ascension, Angle) and isinstance(declination, Angle)): raise TypeError("Invalid input types") ra = right_ascension.rad() dec = declination.rad() c1 = Angle(192.25) c1 = c1.rad() c1ra = c1 - ra c2 = Angle(27.4) c2 = c2.rad() x = atan2(sin(c1ra), (cos(c1ra) * sin(c2) - tan(dec) * cos(c2))) lon = Angle(-x, radians=True) lon = 303.0 + lon lon = lon.to_positive() lat = asin(sin(dec) * sin(c2) + cos(dec) * cos(c2) * cos(c1ra)) lat = Angle(lat, radians=True) return (lon, lat) def galactic2equatorial(longitude, latitude): """This function converts from galactic coordinates (longitude and latitude) to equatorial coordinates (right ascension and declination). The current galactic system of coordinates was defined by the International Astronomical Union in 1959, using the standard equatorial system of epoch B1950.0. :param longitude: Longitude, as an Angle object :type longitude: :py:class:`Angle` :param latitude: Latitude, as an Angle object :type latitude: :py:class:`Angle` :returns: Equatorial coordinates (right ascension and declination, in that order), given as two :class:`Angle` objects inside a tuple :rtype: tuple :raises: TypeError if input values are of wrong type. >>> lon = Angle(12.9593) >>> lat = Angle(6.0463) >>> ra, dec = galactic2equatorial(lon, lat) >>> print(ra.ra_str(n_dec=1)) 17h 48' 59.7'' >>> print(dec.dms_str(n_dec=0)) -14d 43' 8.0'' """ # First check that input values are of correct types if not (isinstance(longitude, Angle) and isinstance(latitude, Angle)): raise TypeError("Invalid input types") lon = longitude.rad() lat = latitude.rad() c1 = Angle(123.0) c1 = c1.rad() c2 = Angle(27.4) c2 = c2.rad() lc1 = lon - c1 y = atan2(sin(lc1), (cos(lc1) * sin(c2) - tan(lat) * cos(c2))) y = Angle(y, radians=True) ra = y + 12.25 ra.to_positive() dec = asin(sin(lat) * sin(c2) + cos(lat) * cos(c2) * cos(lc1)) dec = Angle(dec, radians=True) return (ra, dec) def parallactic_angle(hour_angle, declination, geo_latitude): """This function computes the parallactic angle, an apparent rotation that appears because celestial bodies move along parallel circles. By convention, the parallactic angle is negative before the passage through the southern meridian (in the north hemisphere), and positive afterwards. Exactly on the meridian, its value is zero. Please note that when the celestial body is exactly at the zenith, the parallactic angle is not defined, and this function will return 'None'. The hour angle (H) comprises information about the sidereal time, the observer's geodetic longitude (positive west from Greenwich) and the right ascension. If theta is the local sidereal time, theta0 the sidereal time at Greenwich, lon the observer's longitude and ra the right ascension, the following expressions hold: H = theta - ra H = theta0 - lon - ra :param hour_angle: Hour angle, as an Angle object :type hour_angle: :py:class:`Angle` :param declination: Declination, as an Angle object :type declination: :py:class:`Angle` :param geo_latitude: Geodetic latitude of the observer, as an Angle object :type geo_latitude: :py:class:`Angle` :returns: Parallactic angle as an py:class:`Angle` object :rtype: :py:class:`Angle` :raises: TypeError if input values are of wrong type. >>> hour_angle = Angle(0.0) >>> declination = Angle(45.0) >>> latitude = Angle(50.0) >>> q = parallactic_angle(hour_angle, declination, latitude) >>> print(q.dms_str(n_dec=1)) 0d 0' 0.0'' """ # First check that input values are of correct types if not ( isinstance(hour_angle, Angle) and isinstance(declination, Angle) and isinstance(geo_latitude, Angle) ): raise TypeError("Invalid input types") h = hour_angle.rad() dec = declination.rad() lat = geo_latitude.rad() den = tan(lat) * cos(dec) - sin(dec) * cos(h) if abs(den) < TOL: return None q = atan2(sin(h), den) q = Angle(q, radians=True) return q def ecliptic_horizon(local_sidereal_time, geo_latitude, obliquity): """This function returns the longitudes of the two points of the ecliptic which are on the horizon, as well as the angle between the ecliptic and the horizon. :param local_sidereal_time: Local sidereal time, as an Angle object :type local_sidereal_time: :py:class:`Angle` :param geo_latitude: Geodetic latitude, as an Angle object :type geo_latitude: :py:class:`Angle` :param obliquity: Obliquity of the ecliptic, as an Angle object :type obliquity: :py:class:`Angle` :returns: Longitudes of the two points of the ecliptic which are on the horizon, and the angle between the ecliptic and the horizon (in that order), given as three :class:`Angle` objects inside a tuple :rtype: tuple :raises: TypeError if input values are of wrong type. >>> sidereal_time = Angle(5.0, ra=True) >>> lat = Angle(51.0) >>> epsilon = Angle(23.44) >>> lon1, lon2, i = ecliptic_horizon(sidereal_time, lat, epsilon) >>> print(lon1.dms_str(n_dec=1)) 169d 21' 29.9'' >>> print(lon2.dms_str(n_dec=1)) 349d 21' 29.9'' >>> print(round(i, 0)) 62.0 """ # First check that input values are of correct types if not ( isinstance(local_sidereal_time, Angle) and isinstance(geo_latitude, Angle) and isinstance(obliquity, Angle) ): raise TypeError("Invalid input types") theta = local_sidereal_time.rad() lat = geo_latitude.rad() eps = obliquity.rad() # First, let's compute the longitudes of the ecliptic points on the horizon lon1 = atan2(-cos(theta), (sin(eps) * tan(lat) + cos(eps) * sin(theta))) lon1 = Angle(lon1, radians=True) lon1.to_positive() # Get the second point, which is 180 degrees apart if lon1 < 180.0: lon2 = lon1 + 180.0 else: lon2 = lon1 lon1 = lon2 - 180.0 # Now, compute the angle between the ecliptic and the horizon i = acos(cos(eps) * sin(lat) - sin(eps) * cos(lat) * sin(theta)) i = Angle(i, radians=True) return (lon1, lon2, i) def ecliptic_equator(longitude, latitude, obliquity): """This function returns the angle between the direction of the northern celestial pole and the direction of the north pole of the ecliptic, taking as reference the point whose ecliptic longitude and latitude are given. Please note that if we make latitude=0, the result is the angle between the ecliptic (at the given ecliptical longitude) and the east-west direction on the celestial sphere. :param longitude: Ecliptical longitude, as an Angle object :type longitude: :py:class:`Angle` :param latitude: Ecliptical latitude, as an Angle object :type latitude: :py:class:`Angle` :param obliquity: Obliquity of the ecliptic, as an Angle object :type obliquity: :py:class:`Angle` :returns: Angle between the direction of the northern celestial pole and the direction of the north pole of the ecliptic, given as one :class:`Angle` object :rtype: :class:`Angle` :raises: TypeError if input values are of wrong type. >>> lon = Angle(0.0) >>> lat = Angle(0.0) >>> eps = Angle(23.5) >>> ang_ecl_equ = ecliptic_equator(lon, lat, eps) >>> print(ang_ecl_equ.dms_str(n_dec=1)) 156d 30' 0.0'' """ # First check that input values are of correct types if not ( isinstance(longitude, Angle) and isinstance(latitude, Angle) and isinstance(obliquity, Angle) ): raise TypeError("Invalid input types") lon = longitude.rad() lat = latitude.rad() eps = obliquity.rad() q = (atan2((cos(lon) * tan(eps)), (sin(lat) * sin(lon) * tan(eps) - cos(lat)))) q = Angle(q, radians=True) return q def diurnal_path_horizon(declination, geo_latitude): """This function returns the angle of the diurnal path of a celestial body relative to the horizon at the time of its rising or setting. :param declination: Declination, as an Angle object :type declination: :py:class:`Angle` :param geo_latitude: Geodetic latitude, as an Angle object :type geo_latitude: :py:class:`Angle` :returns: Angle of the diurnal path of the celestial body relative to the horizon at the time of rising or setting, given as one :class:`Angle` object :rtype: :class:`Angle` :raises: TypeError if input values are of wrong type. >>> declination = Angle(23.44) >>> latitude = Angle(40.0) >>> path_angle = diurnal_path_horizon(declination, latitude) >>> print(path_angle.dms_str(n_dec=1)) 45d 31' 28.4'' """ # First check that input values are of correct types if not (isinstance(declination, Angle) and isinstance(geo_latitude, Angle)): raise TypeError("Invalid input types") dec = declination.rad() lat = geo_latitude.rad() b = tan(dec) * tan(lat) c = sqrt(1.0 - b * b) j = atan2(c * cos(dec), tan(lat)) j = Angle(j, radians=True) return j def times_rise_transit_set( longitude, latitude, alpha1, delta1, alpha2, delta2, alpha3, delta3, h0, delta_t, theta0, ): """This function computes the times (in Universal Time UT) of rising, transit and setting of a given celestial body. .. note:: If the body is circumpolar there are no rising, transit nor setting times. In such a case a tuple with None's is returned .. note:: Care must be taken when interpreting the results. For instance, if the setting time is **smaller** than the rising time, it means that it belongs to the **following** day. Also, if the rising time is **bigger** than the setting time, it belong to the **previous** day. The same applies to the transit time. :param longitude: Geodetic longitude, as an Angle object. It is measured positively west from Greenwich, and negatively to the east. :type longitude: :py:class:`Angle` :param latitude: Geodetic latitude, as an Angle object :type latitude: :py:class:`Angle` :param alpha1: Apparent right ascension the previous day at 0h TT, as an Angle object :type alpha1: :py:class:`Angle` :param delta1: Apparent declination the previous day at 0h TT, as an Angle object :type delta1: :py:class:`Angle` :param alpha2: Apparent right ascension the current day at 0h TT, as an Angle object :type alpha2: :py:class:`Angle` :param delta2: Apparent declination the current day at 0h TT, as an Angle object :type delta2: :py:class:`Angle` :param alpha3: Apparent right ascension the following day at 0h TT, as an Angle object :type alpha3: :py:class:`Angle` :param delta3: Apparent declination the following day at 0h TT, as an Angle object :type delta3: :py:class:`Angle` :param h0: 'Standard' altitude: the geometric altitude of the center of the body at the time of apparent rising or setting, as degrees in an Angle object. It should be -0.5667 deg for stars and planets, -0.8333 deg for the Sun, and 0.125 deg for the Moon. :type h0: :py:class:`Angle` :param delta_t: The difference between Terrestrial Time and Universal Time (TT - UT) in seconds of time :type delta_t: float :param theta0: Apparent sidereal time at 0h TT on the current day for the meridian of Greenwich, as degrees in an Angle object :type theta0: :py:class:`Angle` :returns: A tuple with the times of rising, transit and setting, in that order, as hours in UT. :rtype: tuple :raises: TypeError if input values are of wrong type. >>> longitude = Angle(71, 5, 0.0) >>> latitude = Angle(42, 20, 0.0) >>> alpha1 = Angle(2, 42, 43.25, ra=True) >>> delta1 = Angle(18, 2, 51.4) >>> alpha2 = Angle(2, 46, 55.51, ra=True) >>> delta2 = Angle(18, 26, 27.3) >>> alpha3 = Angle(2, 51, 7.69, ra=True) >>> delta3 = Angle(18, 49, 38.7) >>> h0 = Angle(-0.5667) >>> delta_t = 56.0 >>> theta0 = Angle(11, 50, 58.1, ra=True) >>> rising, transit, setting = times_rise_transit_set(longitude, latitude,\ alpha1, delta1, \ alpha2, delta2, \ alpha3, delta3, h0, \ delta_t, theta0) >>> print(round(rising, 4)) 12.4238 >>> print(round(transit, 3)) 19.675 >>> print(round(setting, 3)) 2.911 """ def check_value(m): while m < 0 or m > 1.0: if m < 0.0: m += 1 elif m > 1.0: m -= 1 return m def interpol(n, y1, y2, y3): a = y2 - y1 b = y3 - y2 c = b - a return y2 + n * (a + b + n * c) / 2.0 # First check that input values are of correct types if not ( isinstance(longitude, Angle) and isinstance(latitude, Angle) and isinstance(alpha1, Angle) and isinstance(delta1, Angle) and isinstance(alpha2, Angle) and isinstance(delta2, Angle) and isinstance(alpha3, Angle) and isinstance(delta3, Angle) and isinstance(h0, Angle) and isinstance(theta0, Angle) and isinstance(delta_t, (int, float)) ): raise TypeError("Invalid input types") # Let's start computing approximate times h = h0.rad() lat = latitude.rad() d2 = delta2.rad() hh0 = (sin(h) - sin(lat) * sin(d2)) / (cos(lat) * cos(d2)) # Check if the body is circumpolar. In such case, there are no rising, # transit nor setting times, and a tuple with None's is returned if abs(hh0) > 1.0: return (None, None, None) hh0 = acos(hh0) hh0 = Angle(hh0, radians=True) hh0.to_positive() m0 = (alpha2 + longitude - theta0) / 360.0 m0 = m0() # m0 is an Angle. Convert to float m1 = m0 - hh0() / 360.0 m2 = m0 + hh0() / 360.0 m0 = check_value(m0) m1 = check_value(m1) m2 = check_value(m2) # Carry out this procedure twice for _ in range(2): # Interpolate alpha and delta values for each (m0, m1, m2) n = m0 + delta_t / 86400.0 transit_alpha = interpol(n, alpha1, alpha2, alpha3) n = m1 + delta_t / 86400.0 rise_alpha = interpol(n, alpha1, alpha2, alpha3) rise_delta = interpol(n, delta1, delta2, delta3) n = m2 + delta_t / 86400.0 set_alpha = interpol(n, alpha1, alpha2, alpha3) set_delta = interpol(n, delta1, delta2, delta3) # Compute the hour angles theta = theta0 + 360.985647 * m0 transit_ha = theta - longitude - transit_alpha delta_transit = transit_ha / (-360.0) theta = theta0 + 360.985647 * m1 rise_ha = theta - longitude - rise_alpha theta = theta0 + 360.985647 * m2 set_ha = theta - longitude - set_alpha # We need the elevations azi, rise_ele = equatorial2horizontal(rise_ha, rise_delta, latitude) azi, set_ele = equatorial2horizontal(set_ha, set_delta, latitude) delta_rise = (rise_ele - h0) / ( 360.0 * cos(rise_delta.rad()) * cos(lat) * sin(rise_ha.rad()) ) delta_set = (set_ele - h0) / ( 360.0 * cos(set_delta.rad()) * cos(lat) * sin(set_ha.rad()) ) m0 += delta_transit() m1 += delta_rise() m2 += delta_set() return (m1 * 24.0, m0 * 24.0, m2 * 24.0) def refraction_apparent2true(apparent_elevation, pressure=1010.0, temperature=10.0): """This function computes the atmospheric refraction converting from the apparent elevation (i.e., the observed elevation through the air) to the true, 'airless', elevation. .. note:: This function, by default, assumes that the atmospheric pressure is 1010 milibars, and the air temperature is 10 Celsius. .. note:: Due to the numerous factors that may affect the atmospheric refraction, especially near the horizon, the values given by this function are approximate values. :param apparent_elevation: The elevation, in degrees and as an Angle object, of a given celestial object when observed through the normal atmosphere :type apparent_elevation: :py:class:`Angle` :param pressure: Atmospheric pressure at the observation point, in milibars :type pressure: float :param temperature: Atmospheric temperature at the observation point, in degrees Celsius :type temperature: :float :returns: An Angle object with the true, 'airless' elevation of the celestial object :rtype: :py:class:`Angle` :raises: TypeError if input values are of wrong type. >>> apparent_elevation = Angle(0, 30, 0.0) >>> true_elevation = refraction_apparent2true(apparent_elevation) >>> print(true_elevation.dms_str(n_dec=1)) 1' 14.7'' """ # First check that input values are of correct types if not ( isinstance(apparent_elevation, Angle) and isinstance(pressure, (int, float)) and isinstance(temperature, (int, float)) ): raise TypeError("Invalid input types") x = apparent_elevation + 7.31 / (apparent_elevation + 4.4) r = 1.0 / tan(x.rad()) + 0.0013515 r = Angle(r / 60.0) # The 'r' value is in minutes of arc if pressure != 1010.0 or temperature != 10.0: r = r * pressure / 1010.0 * 283.0 / (273.0 + temperature) return apparent_elevation - r def refraction_true2apparent(true_elevation, pressure=1010.0, temperature=10.0): """This function computes the atmospheric refraction converting from the true, 'airless', elevation (i.e., the one computed from celestial coordinates) to the apparent elevation (the observed elevation through the air) .. note:: This function, by default, assumes that the atmospheric pressure is 1010 milibars, and the air temperature is 10 Celsius. .. note:: Due to the numerous factors that may affect the atmospheric refraction, especially near the horizon, the values given by this function are approximate values. :param true_elevation: The elevation, in degrees and as an Angle object, of a given celestial object when computed from celestial coordinates, and assuming there is no atmospheric refraction due to the air :type true_elevation: :py:class:`Angle` :param pressure: Atmospheric pressure at the observation point, in milibars :type pressure: float :param temperature: Atmospheric temperature at the observation point, in degrees Celsius :type temperature: :float :returns: An Angle object with the aparent, 'with air' elevation of the celestial object :rtype: :py:class:`Angle` :raises: TypeError if input values are of wrong type. >>> true_elevation = Angle(0, 33, 14.76) >>> apparent_elevation = refraction_true2apparent(true_elevation) >>> print(apparent_elevation.dms_str(n_dec=2)) 57' 51.96'' """ # First check that input values are of correct types if not ( isinstance(true_elevation, Angle) and isinstance(pressure, (int, float)) and isinstance(temperature, (int, float)) ): raise TypeError("Invalid input types") x = true_elevation + 10.3 / (true_elevation + 5.11) r = 1.02 / tan(x.rad()) + 0.0019279 r = Angle(r / 60.0) # The 'r' value is in minutes of arc if pressure != 1010.0 or temperature != 10.0: r = r * pressure / 1010.0 * 283.0 / (273.0 + temperature) return true_elevation + r def angular_separation(alpha1, delta1, alpha2, delta2): """This function computes the angular distance between two celestial bodies whose right ascensions and declinations are given. .. note:: It is possible to use this formula with ecliptial (celestial) longitudes and latitudes instead of right ascensions and declinations, respectively. :param alpha1: Right ascension of celestial body #1, as an Angle object :type alpha1: :py:class:`Angle` :param delta1: Declination of celestial body #1, as an Angle object :type delta1: :py:class:`Angle` :param alpha2: Right ascension of celestial body #2, as an Angle object :type alpha2: :py:class:`Angle` :param delta2: Declination of celestial body #2, as an Angle object :type delta2: :py:class:`Angle` :returns: An Angle object with the angular separation between the given celestial objects :rtype: :py:class:`Angle` :raises: TypeError if input values are of wrong type. >>> alpha1 = Angle(14, 15, 39.7, ra=True) >>> delta1 = Angle(19, 10, 57.0) >>> alpha2 = Angle(13, 25, 11.6, ra=True) >>> delta2 = Angle(-11, 9, 41.0) >>> sep_ang = angular_separation(alpha1, delta1, alpha2, delta2) >>> print(round(sep_ang, 3)) 32.793 """ # Let's define an auxiliary function def hav(theta): """Function to compute the haversine (hav)""" return (1.0 - cos(theta)) / 2.0 # First check that input values are of correct types if not ( isinstance(alpha1, Angle) and isinstance(delta1, Angle) and isinstance(alpha2, Angle) and isinstance(delta2, Angle) ): raise TypeError("Invalid input types") dalpha = alpha1 - alpha2 dalpha = dalpha.rad() ddelta = delta1 - delta2 ddelta = ddelta.rad() d1 = delta1.rad() d2 = delta2.rad() theta = 2.0 * asin(sqrt(hav(ddelta) + cos(d1) * cos(d2) * hav(dalpha))) theta = Angle(theta, radians=True) return theta def minimum_angular_separation( alpha1_1, delta1_1, alpha1_2, delta1_2, alpha1_3, delta1_3, alpha2_1, delta2_1, alpha2_2, delta2_2, alpha2_3, delta2_3, ): """Given the positions at three different instants of times (equidistant) of two celestial objects, this function computes the minimum angular distance that will be achieved within that interval of time. .. note:: Suffix '1 _' is for the first celestial object, and '2 _' is for the second one. .. note:: This function provides as output the 'n' fraction of time when the minimum angular separation is achieved. For that, the epoch in the middle is assigned the value "n = 0". Therefore, n < 0 is for times **before** the middle epoch, and n > 0 is for times **after** the middle epoch. :param alpha1_1: First right ascension of celestial body #1, as an Angle object :type alpha1_1: :py:class:`Angle` :param delta1_1: First declination of celestial body #1, as an Angle object :type delta1_1: :py:class:`Angle` :param alpha1_2: Second right ascension of celestial body #1, as an Angle object :type alpha1_2: :py:class:`Angle` :param delta1_2: Second declination of celestial body #1, as Angle object :type delta1_2: :py:class:`Angle` :param alpha1_3: Third right ascension of celestial body #1, as an Angle object :type alpha1_3: :py:class:`Angle` :param delta1_3: Third declination of celestial body #1, as an Angle object :type delta1_3: :py:class:`Angle` :param alpha2_1: First right ascension of celestial body #2, as an Angle object :type alpha2_1: :py:class:`Angle` :param delta2_1: First declination of celestial body #2, as an Angle object :type delta2_1: :py:class:`Angle` :param alpha2_2: Second right ascension of celestial body #2, as an Angle object :type alpha2_2: :py:class:`Angle` :param delta2_2: Second declination of celestial body #2, as Angle object :type delta2_2: :py:class:`Angle` :param alpha2_3: Third right ascension of celestial body #2, as an Angle object :type alpha2_3: :py:class:`Angle` :param delta2_3: Third declination of celestial body #2, as an Angle object :type delta2_3: :py:class:`Angle` :returns: A tuple with two components: The first component is a float containing the 'n' fraction of time when the minimum angular separation is achieved. The second component is an Angle object containing the minimum angular separation between the given celestial objects :rtype: tuple :raises: TypeError if input values are of wrong type. >>> alpha1_1 = Angle(10, 29, 44.27, ra=True) >>> delta1_1 = Angle(11, 2, 5.9) >>> alpha2_1 = Angle(10, 33, 29.64, ra=True) >>> delta2_1 = Angle(10, 40, 13.2) >>> alpha1_2 = Angle(10, 36, 19.63, ra=True) >>> delta1_2 = Angle(10, 29, 51.7) >>> alpha2_2 = Angle(10, 33, 57.97, ra=True) >>> delta2_2 = Angle(10, 37, 33.4) >>> alpha1_3 = Angle(10, 43, 1.75, ra=True) >>> delta1_3 = Angle(9, 55, 16.7) >>> alpha2_3 = Angle(10, 34, 26.22, ra=True) >>> delta2_3 = Angle(10, 34, 53.9) >>> a = minimum_angular_separation(alpha1_1, delta1_1, alpha1_2, delta1_2,\ alpha1_3, delta1_3, alpha2_1, delta2_1,\ alpha2_2, delta2_2, alpha2_3, delta2_3) >>> print(round(a[0], 6)) -0.370726 >>> print(a[1].dms_str(n_dec=0)) 3' 44.0'' """ # Let's define some auxiliary functions def k_factor(d1, d_a): """This auxiliary function returns arcseconds, input is in radians""" return (206264.8062 / (1.0 + sin(d1) * sin(d1) * tan(d_a) * tan(d_a / 2.0))) def u_factor(k, d1, d_a, d_d): """Input is in radians, except for k (arcseconds)""" return -k * (1.0 - tan(d1) * sin(d_d)) * cos(d1) * tan(d_a) def v_factor(k, d1, d_a, d_d): """Input is in radians, except for k (arcseconds)""" return k * (sin(d_d) + sin(d1) * cos(d1) * tan(d_a) * tan(d_a / 2.0)) def u_prime(n, u1, u2, u3): return (u3 - u1) / 2.0 + n * (u1 + u3 - 2.0 * u2) def delta_n(u, u_p, v, v_p): return -(u * u_p + v * v_p) / (u_p * u_p + v_p * v_p) def interpol(n, y1, y2, y3): """This is formula 3.3 from Meeus book""" a = y2 - y1 b = y3 - y2 c = b - a return y2 + n * (a + b + n * c) / 2.0 # First check that input values are of correct types if not ( isinstance(alpha1_1, Angle) and isinstance(delta1_1, Angle) and isinstance(alpha1_2, Angle) and isinstance(delta1_2, Angle) and isinstance(alpha1_3, Angle) and isinstance(delta1_3, Angle) and isinstance(alpha2_1, Angle) and isinstance(delta2_1, Angle) and isinstance(alpha2_2, Angle) and isinstance(delta2_2, Angle) and isinstance(alpha2_3, Angle) and isinstance(delta2_3, Angle) ): raise TypeError("Invalid input types") # Let's define two dictionaries to store the intermediate results u = {} v = {} # Compute intermediate results for first epoch d1 = delta1_1.rad() d_a = alpha2_1.rad() - alpha1_1.rad() d_d = delta2_1.rad() - delta1_1.rad() k = k_factor(d1, d_a) u[1] = u_factor(k, d1, d_a, d_d) v[1] = v_factor(k, d1, d_a, d_d) # Compute intermediate results for second epoch d1 = delta1_2.rad() d_a = alpha2_2.rad() - alpha1_2.rad() d_d = delta2_2.rad() - delta1_2.rad() k = k_factor(d1, d_a) u[2] = u_factor(k, d1, d_a, d_d) v[2] = v_factor(k, d1, d_a, d_d) # Compute intermediate results for third epoch d1 = delta1_3.rad() d_a = alpha2_3.rad() - alpha1_3.rad() d_d = delta2_3.rad() - delta1_3.rad() k = k_factor(d1, d_a) u[3] = u_factor(k, d1, d_a, d_d) v[3] = v_factor(k, d1, d_a, d_d) # Iterate to find the solution n = 0.0 dn = 999999.9 while abs(dn) > 0.000001: uu = interpol(n, u[1], u[2], u[3]) vv = interpol(n, v[1], v[2], v[3]) up = u_prime(n, u[1], u[2], u[3]) vp = u_prime(n, v[1], v[2], v[3]) dn = delta_n(uu, up, vv, vp) n += dn # Let's compute the minimum distance, in arcseconds arcsec = sqrt(uu * uu + vv * vv) d = Angle(0, 0, arcsec) # Convert to an Angle object return n, d def relative_position_angle(alpha1, delta1, alpha2, delta2): """This function computes the position angle P of a body with respect to another body. :param alpha1: Right ascension of celestial body #1, as an Angle object :type alpha1: :py:class:`Angle` :param delta1: Declination of celestial body #1, as an Angle object :type delta1: :py:class:`Angle` :param alpha2: Right ascension of celestial body #2, as an Angle object :type alpha2: :py:class:`Angle` :param delta2: Declination of celestial body #2, as an Angle object :type delta2: :py:class:`Angle` :returns: An Angle object with the relative position angle between the given celestial objects :rtype: :py:class:`Angle` :raises: TypeError if input values are of wrong type. >>> alpha1 = Angle(14, 15, 39.7, ra=True) >>> delta1 = Angle(19, 10, 57.0) >>> alpha2 = Angle(14, 15, 39.7, ra=True) >>> delta2 = Angle(-11, 9, 41.0) >>> pos_ang = relative_position_angle(alpha1, delta1, alpha2, delta2) >>> print(round(pos_ang, 1)) 0.0 """ # First check that input values are of correct types if not ( isinstance(alpha1, Angle) and isinstance(delta1, Angle) and isinstance(alpha2, Angle) and isinstance(delta2, Angle) ): raise TypeError("Invalid input types") da = alpha1 - alpha2 da = da.rad() d1 = delta1.rad() d2 = delta2.rad() p = atan2(sin(da), (cos(d2) * tan(d1) - sin(d2) * cos(da))) p = Angle(p, radians=True) return p def planetary_conjunction(alpha1_list, delta1_list, alpha2_list, delta2_list): """Given the positions of two planets passing near each other, this function computes the time of conjunction in right ascension, and the difference in declination of the two bodies at that time. .. note:: This function provides as output the 'n' fraction of time when the minimum angular separation is achieved. For that, the epoch in the middle is assigned the value "n = 0". Therefore, n < 0 is for times **before** the middle epoch, and n > 0 is for times **after** the middle epoch. .. note:: When the entries in the input values are more than three and even, the last entry is discarted and an odd number of entries will be used. :param alpha1_list: List (or tuple) containing the right ascensions (as Angle objects) for object #1 (minimum 3 entries) :type alpha1_list: list, tuple of :py:class:`Angle` :param delta1_list: List (or tuple) containing the declinations (as Angle objects) for object #1 (minimum 3 entries) :type delta1_list: list, tuple of :py:class:`Angle` :param alpha2_list: List (or tuple) containing the right ascensions (as Angle objects) for object #2 (minimum 3 entries) :type alpha2_list: list, tuple of :py:class:`Angle` :param delta2_list: List (or tuple) containing the declinations (as Angle objects) for object #2 (minimum 3 entries) :type delta2_list: list, tuple of :py:class:`Angle` :returns: A tuple with two components: The first component is a float containing the 'n' fraction of time when the conjunction occurs. The second component is an Angle object containing the declination separation between the given objects at conjunction epoch :rtype: tuple :raises: ValueError if input values have less than three entries or they don't have the same number of entries. :raises: TypeError if input values are of wrong type. >>> alpha1_1 = Angle(10, 24, 30.125, ra=True) >>> delta1_1 = Angle( 6, 26, 32.05) >>> alpha1_2 = Angle(10, 25, 0.342, ra=True) >>> delta1_2 = Angle( 6, 10, 57.72) >>> alpha1_3 = Angle(10, 25, 12.515, ra=True) >>> delta1_3 = Angle( 5, 57, 33.08) >>> alpha1_4 = Angle(10, 25, 6.235, ra=True) >>> delta1_4 = Angle( 5, 46, 27.07) >>> alpha1_5 = Angle(10, 24, 41.185, ra=True) >>> delta1_5 = Angle( 5, 37, 48.45) >>> alpha2_1 = Angle(10, 27, 27.175, ra=True) >>> delta2_1 = Angle( 4, 4, 41.83) >>> alpha2_2 = Angle(10, 26, 32.410, ra=True) >>> delta2_2 = Angle( 3, 55, 54.66) >>> alpha2_3 = Angle(10, 25, 29.042, ra=True) >>> delta2_3 = Angle( 3, 48, 3.51) >>> alpha2_4 = Angle(10, 24, 17.191, ra=True) >>> delta2_4 = Angle( 3, 41, 10.25) >>> alpha2_5 = Angle(10, 22, 57.024, ra=True) >>> delta2_5 = Angle( 3, 35, 16.61) >>> alpha1_list = [alpha1_1, alpha1_2, alpha1_3, alpha1_4, alpha1_5] >>> delta1_list = [delta1_1, delta1_2, delta1_3, delta1_4, delta1_5] >>> alpha2_list = [alpha2_1, alpha2_2, alpha2_3, alpha2_4, alpha2_5] >>> delta2_list = [delta2_1, delta2_2, delta2_3, delta2_4, delta2_5] >>> pc = planetary_conjunction(alpha1_list, delta1_list, \ alpha2_list, delta2_list) >>> print(round(pc[0], 5)) 0.23797 >>> print(pc[1].dms_str(n_dec=1)) 2d 8' 21.8'' """ # First check that input values are of correct types if not ( isinstance(alpha1_list, (list, tuple)) and isinstance(delta1_list, (list, tuple)) and isinstance(alpha2_list, (list, tuple)) and isinstance(delta2_list, (list, tuple)) ): raise TypeError("Invalid input types") if ( len(alpha1_list) < 3 or len(delta1_list) < 3 or len(alpha2_list) < 3 or len(delta2_list) < 3 ): raise ValueError("Invalid number of entries") if ( len(alpha1_list) != len(delta1_list) or len(alpha1_list) != len(alpha2_list) or len(alpha1_list) != len(delta2_list) ): raise ValueError("Uneven number of entries") n_entries = len(alpha1_list) if n_entries % 2 != 1: # Check if number of entries is odd alpha1_list = alpha1_list[:-1] # Drop the last entry delta1_list = delta1_list[:-1] alpha2_list = alpha2_list[:-1] delta2_list = delta2_list[:-1] n_entries = len(alpha1_list) half_entries = n_entries // 2 # Compute the list with the time ('n') entries n_list = [i - half_entries for i in range(n_entries)] # Compute lists with differences between right ascensions and declinations # for objects #1 and #2 dalpha = [alpha1_list[i] - alpha2_list[i] for i in range(n_entries)] ddelta = [delta1_list[i] - delta2_list[i] for i in range(n_entries)] # Build the interpolation objects i_alpha = Interpolation(n_list, dalpha) i_delta = Interpolation(n_list, ddelta) # Find when the dalphas are 0 (i.e., the 'root') n_0 = i_alpha.root() # Now, let's find the declination difference with the newly found 'n_0' dd = i_delta(n_0) # We are done, let's return return n_0, dd def planet_star_conjunction(alpha_list, delta_list, alpha_star, delta_star): """Given the positions of one planet passing near a star, this function computes the time of conjunction in right ascension, and the difference in declination of the two bodies at that time. .. note:: This function provides as output the 'n' fraction of time when the minimum angular separation is achieved. For that, the epoch in the middle is assigned the value "n = 0". Therefore, n < 0 is for times **before** the middle epoch, and n > 0 is for times **after** the middle epoch. .. note:: When the entries in the input values for the planet are more than three and pair, the last entry is discarted and an odd number of entries will be used. :param alpha_list: List (or tuple) containing the right ascensions (as Angle objects) for the planet (minimum 3 entries) :type alpha_list: list, tuple of :py:class:`Angle` :param delta_list: List (or tuple) containing the declinations (as Angle objects) for the planet (minimum 3 entries) :type delta_list: list, tuple of :py:class:`Angle` :param alpha_star: Right ascension, as an Angle object, of the star :type alpha_star: :py:class:`Angle` :param delta_star: Declination, as an Angle object, of the star :type delta_star: :py:class:`Angle` :returns: A tuple with two components: The first component is a float containing the 'n' fraction of time when the conjunction occurs. The second component is an Angle object containing the declination separation between the given objects at conjunction epoch :rtype: tuple :raises: ValueError if input values for planet have less than three entries or they don't have the same number of entries. :raises: TypeError if input values are of wrong type. >>> alpha_1 = Angle(15, 3, 51.937, ra=True) >>> delta_1 = Angle(-8, 57, 34.51) >>> alpha_2 = Angle(15, 9, 57.327, ra=True) >>> delta_2 = Angle(-9, 9, 3.88) >>> alpha_3 = Angle(15, 15, 37.898, ra=True) >>> delta_3 = Angle(-9, 17, 37.94) >>> alpha_4 = Angle(15, 20, 50.632, ra=True) >>> delta_4 = Angle(-9, 23, 16.25) >>> alpha_5 = Angle(15, 25, 32.695, ra=True) >>> delta_5 = Angle(-9, 26, 1.01) >>> alpha_star = Angle(15, 17, 0.446, ra=True) >>> delta_star = Angle(-9, 22, 58.47) >>> alpha_list = [alpha_1, alpha_2, alpha_3, alpha_4, alpha_5] >>> delta_list = [delta_1, delta_2, delta_3, delta_4, delta_5] >>> pc = planet_star_conjunction(alpha_list, delta_list, \ alpha_star, delta_star) >>> print(round(pc[0], 4)) 0.2551 >>> print(pc[1].dms_str(n_dec=0)) 3' 38.0'' """ # Build the corresponding lists for the star n_entries = len(alpha_list) alpha_star_list = [alpha_star for _ in range(n_entries)] delta_star_list = [delta_star for _ in range(n_entries)] # Call the 'planetary_conjunction()' function. It handles everything else return planetary_conjunction( alpha_list, delta_list, alpha_star_list, delta_star_list ) def planet_stars_in_line( alpha_list, delta_list, alpha_star1, delta_star1, alpha_star2, delta_star2 ): """Given the positions of one planet, this function computes the time when it is in a straight line with two other stars. .. note:: This function provides as output the 'n' fraction of time when the minimum angular separation is achieved. For that, the epoch in the middle is assigned the value "n = 0". Therefore, n < 0 is for times **before** the middle epoch, and n > 0 is for times **after** the middle epoch. .. note:: When the entries in the input values for the planet are more than three and pair, the last entry is discarted and an odd number of entries will be used. :param alpha_list: List (or tuple) containing the right ascensions (as Angle objects) for the planet (minimum 3 entries) :type alpha_list: list, tuple of :py:class:`Angle` :param delta_list: List (or tuple) containing the declinations (as Angle objects) for the planet (minimum 3 entries) :type delta_list: list, tuple of :py:class:`Angle` :param alpha_star1: Right ascension, as an Angle object, of star #1 :type alpha_star1: :py:class:`Angle` :param delta_star1: Declination, as an Angle object, of star #1 :type delta_star1: :py:class:`Angle` :param alpha_star2: Right ascension, as an Angle object, of star #2 :type alpha_star2: :py:class:`Angle` :param delta_star2: Declination, as an Angle object, of star #2 :type delta_star2: :py:class:`Angle` :returns: A float containing the 'n' fraction of time when the alignment occurs. :rtype: float :raises: ValueError if input values for planet have less than three entries or they don't have the same number of entries. :raises: TypeError if input values are of wrong type. >>> alpha_1 = Angle( 7, 55, 55.36, ra=True) >>> delta_1 = Angle(21, 41, 3.0) >>> alpha_2 = Angle( 7, 58, 22.55, ra=True) >>> delta_2 = Angle(21, 35, 23.4) >>> alpha_3 = Angle( 8, 0, 48.99, ra=True) >>> delta_3 = Angle(21, 29, 38.2) >>> alpha_4 = Angle( 8, 3, 14.66, ra=True) >>> delta_4 = Angle(21, 23, 47.5) >>> alpha_5 = Angle( 8, 5, 39.54, ra=True) >>> delta_5 = Angle(21, 17, 51.4) >>> alpha_star1 = Angle( 7, 34, 16.40, ra=True) >>> delta_star1 = Angle(31, 53, 51.2) >>> alpha_star2 = Angle( 7, 45, 0.10, ra=True) >>> delta_star2 = Angle(28, 2, 12.5) >>> alpha_list = [alpha_1, alpha_2, alpha_3, alpha_4, alpha_5] >>> delta_list = [delta_1, delta_2, delta_3, delta_4, delta_5] >>> n = planet_stars_in_line(alpha_list, delta_list, alpha_star1, \ delta_star1, alpha_star2, delta_star2) >>> print(round(n, 4)) 0.2233 """ # Define an auxiliary function def straight(alpha1, delta1, alpha2, delta2, alpha3, delta3): a1 = alpha1.rad() d1 = delta1.rad() a2 = alpha2.rad() d2 = delta2.rad() a3 = alpha3.rad() d3 = delta3.rad() return (tan(d1) * sin(a2 - a3) + tan(d2) * sin(a3 - a1) + tan(d3) * sin(a1 - a2)) # First check that input values are of correct types if not ( isinstance(alpha_list, (list, tuple)) and isinstance(delta_list, (list, tuple)) and isinstance(alpha_star1, Angle) and isinstance(delta_star1, Angle) and isinstance(alpha_star2, Angle) and isinstance(delta_star2, Angle) ): raise TypeError("Invalid input types") if len(alpha_list) < 3 or len(delta_list) < 3: raise ValueError("Invalid number of entries") if len(alpha_list) != len(delta_list): raise ValueError("Uneven number of entries") n_entries = len(alpha_list) if n_entries % 2 != 1: # Check if number of entries is odd alpha_list = alpha_list[:-1] # Drop the last entry delta_list = delta_list[:-1] n_entries = len(alpha_list) half_entries = n_entries // 2 # Compute the list with the time ('n') entries n_list = [i - half_entries for i in range(n_entries)] # Use auxiliary function 'straight()' to compute the values to interpolate dx = [ straight( alpha_list[i], delta_list[i], alpha_star1, delta_star1, alpha_star2, delta_star2, ) for i in range(n_entries) ] # Build the interpolation objects i = Interpolation(n_list, dx) # Find when the dx's are 0 (i.e., the 'root') n_0 = i.root() return n_0 def straight_line(alpha1, delta1, alpha2, delta2, alpha3, delta3): """This function computes if three celestial bodies are in a straight line, providing the angle with which the bodies differ from a great circle. :param alpha1: Right ascension, as an Angle object, of celestial body #1 :type alpha1: :py:class:`Angle` :param delta1: Declination, as an Angle object, of celestial body #1 :type delta1: :py:class:`Angle` :param alpha2: Right ascension, as an Angle object, of celestial body #2 :type alpha2: :py:class:`Angle` :param delta2: Declination, as an Angle object, of celestial body #2 :type delta2: :py:class:`Angle` :param alpha3: Right ascension, as an Angle object, of celestial body #3 :type alpha3: :py:class:`Angle` :param delta3: Declination, as an Angle object, of celestial body #3 :type delta3: :py:class:`Angle` :returns: A tuple with two components. The first element is an angle (as Angle object) with which the bodies differ from a great circle. The second element is the Angular distance of central point to the straight line (also as Angle object). :rtype: tuple :raises: TypeError if input values are of wrong type. >>> alpha1 = Angle( 5, 32, 0.40, ra=True) >>> delta1 = Angle(0, -17, 56.9) >>> alpha2 = Angle( 5, 36, 12.81, ra=True) >>> delta2 = Angle(-1, 12, 7.0) >>> alpha3 = Angle( 5, 40, 45.52, ra=True) >>> delta3 = Angle(-1, 56, 33.3) >>> psi, om = straight_line(alpha1, delta1, alpha2, delta2, alpha3, delta3) >>> print(psi.dms_str(n_dec=0)) 7d 31' 1.0'' >>> print(om.dms_str(n_dec=0)) -5' 24.0'' """ # First check that input values are of correct types if not ( isinstance(alpha1, Angle) and isinstance(delta1, Angle) and isinstance(alpha2, Angle) and isinstance(delta2, Angle) and isinstance(alpha3, Angle) and isinstance(delta3, Angle) ): raise TypeError("Invalid input types") # We need to order the input according to right ascension a = [alpha1.rad(), alpha2.rad(), alpha3.rad()] d = [delta1.rad(), delta2.rad(), delta3.rad()] anew = [] dnew = [] amax = max(a) + 1.0 for _ in range(len(a)): # Get the index of the minimum value imin = a.index(min(a)) # Append the current minimum value to the new 'a' list anew.append(a[imin]) # Store the *position* of the current minimum value to new 'd' list dnew.append(imin) # The current minimum value will no longer be the minimum a[imin] = amax # In the new 'd' list, substitute the positions by the real values for i in range(len(a)): dnew[i] = d[dnew[i]] # Substitute the new values in the original list a = anew d = dnew # Compute the parameters a1 = cos(d[0]) * cos(a[0]) a2 = cos(d[1]) * cos(a[1]) a3 = cos(d[2]) * cos(a[2]) b1 = cos(d[0]) * sin(a[0]) b2 = cos(d[1]) * sin(a[1]) b3 = cos(d[2]) * sin(a[2]) c1 = sin(d[0]) c2 = sin(d[1]) c3 = sin(d[2]) l1 = b1 * c2 - b2 * c1 l2 = b2 * c3 - b3 * c2 l3 = b1 * c3 - b3 * c1 m1 = c1 * a2 - c2 * a1 m2 = c2 * a3 - c3 * a2 m3 = c1 * a3 - c3 * a1 n1 = a1 * b2 - a2 * b1 n2 = a2 * b3 - a3 * b2 n3 = a1 * b3 - a3 * b1 psi = acos( (l1 * l2 + m1 * m2 + n1 * n2) / (sqrt(l1 * l1 + m1 * m1 + n1 * n1) * sqrt(l2 * l2 + m2 * m2 + n2 * n2))) omega = asin( (a2 * l3 + b2 * m3 + c2 * n3) / (sqrt(a2 * a2 + b2 * b2 + c2 * c2) * sqrt(l3 * l3 + m3 * m3 + n3 * n3))) return Angle(psi, radians=True), Angle(omega, radians=True) def circle_diameter(alpha1, delta1, alpha2, delta2, alpha3, delta3): """This function computes the diameter of the smallest circle that contains three celestial bodies. :param alpha1: Right ascension, as an Angle object, of celestial body #1 :type alpha1: :py:class:`Angle` :param delta1: Declination, as an Angle object, of celestial body #1 :type delta1: :py:class:`Angle` :param alpha2: Right ascension, as an Angle object, of celestial body #2 :type alpha2: :py:class:`Angle` :param delta2: Declination, as an Angle object, of celestial body #2 :type delta2: :py:class:`Angle` :param alpha3: Right ascension, as an Angle object, of celestial body #3 :type alpha3: :py:class:`Angle` :param delta3: Declination, as an Angle object, of celestial body #3 :type delta3: :py:class:`Angle` :returns: The diameter (as an Angle object) of the smallest circle containing the three bodies. :rtype: :py:class:`Angle` :raises: TypeError if input values are of wrong type. >>> alpha1 = Angle(12, 41, 8.63, ra=True) >>> delta1 = Angle(-5, 37, 54.2) >>> alpha2 = Angle(12, 52, 5.21, ra=True) >>> delta2 = Angle(-4, 22, 26.2) >>> alpha3 = Angle(12, 39, 28.11, ra=True) >>> delta3 = Angle(-1, 50, 3.7) >>> d = circle_diameter(alpha1, delta1, alpha2, delta2, alpha3, delta3) >>> print(d.dms_str(n_dec=0)) 4d 15' 49.0'' >>> alpha1 = Angle(9, 5, 41.44, ra=True) >>> delta1 = Angle(18, 30, 30.0) >>> alpha2 = Angle(9, 9, 29.0, ra=True) >>> delta2 = Angle(17, 43, 56.7) >>> alpha3 = Angle(8, 59, 47.14, ra=True) >>> delta3 = Angle(17, 49, 36.8) >>> d = circle_diameter(alpha1, delta1, alpha2, delta2, alpha3, delta3) >>> print(d.dms_str(n_dec=0)) 2d 18' 38.0'' """ # First check that input values are of correct types if not ( isinstance(alpha1, Angle) and isinstance(delta1, Angle) and isinstance(alpha2, Angle) and isinstance(delta2, Angle) and isinstance(alpha3, Angle) and isinstance(delta3, Angle) ): raise TypeError("Invalid input types") d12 = angular_separation(alpha1, delta1, alpha2, delta2) d13 = angular_separation(alpha1, delta1, alpha3, delta3) d23 = angular_separation(alpha2, delta2, alpha3, delta3) if d12 >= d13 and d12 >= d23: a = d12() b = d13() c = d23() elif d13 >= d12 and d13 >= d23: a = d13() b = d12() c = d23() else: a = d23() b = d12() c = d13() if a >= sqrt(b * b + c * c): d = a else: d = (2.0 * a * b * c) / sqrt( (a + b + c) * (a + b - c) * (b + c - a) * (a + c - b) ) return Angle(d) def vsop_pos(epoch, vsop_l, vsop_b, vsop_r): """This function computes the position of a celestial body at a given epoch when its VSOP87 periodic term tables are provided. :param epoch: Epoch to compute the position, given as an :class:`Epoch` object :type epoch: :py:class:`Epoch` :param vsop_l: Table of VSOP87 terms for the heliocentric longitude :type vsop_l: list :param vsop_b: Table of VSOP87 terms for the heliocentric latitude :type vsop_b: list :param vsop_r: Table of VSOP87 terms for the radius vector :type vsop_r: list :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. """ # First check that input values are of correct types if not ( isinstance(epoch, Epoch) and isinstance(vsop_l, list) and isinstance(vsop_b, list) and isinstance(vsop_r, list) ): raise TypeError("Invalid input types") # Let's redefine u in units of 100 Julian centuries from Epoch J2000.0 t = (epoch.jde() - 2451545.0) / 365250.0 sum_list = [] for i in range(len(vsop_l)): s = 0.0 for k in range(len(vsop_l[i])): s += vsop_l[i][k][0] * cos(vsop_l[i][k][1] + vsop_l[i][k][2] * t) sum_list.append(s) lon = 0.0 # Sum the longitude terms, while multiplying by 't' at the same time for i in range(len(sum_list) - 1, 0, -1): lon = (lon + sum_list[i]) * t # Add the L0 term, which is NOT multiplied by 't' lon += sum_list[0] lon /= 1e8 lon = Angle(lon, radians=True) lon = lon.to_positive() sum_list = [] for i in range(len(vsop_b)): s = 0.0 for k in range(len(vsop_b[i])): s += vsop_b[i][k][0] * cos(vsop_b[i][k][1] + vsop_b[i][k][2] * t) sum_list.append(s) lat = 0.0 # Sum the latitude terms, while multiplying by 't' at the same time for i in range(len(sum_list) - 1, 0, -1): lat = (lat + sum_list[i]) * t # Add the B0 term, which is NOT multiplied by 't' lat += sum_list[0] lat /= 1e8 lat = Angle(lat, radians=True) sum_list = [] for i in range(len(vsop_r)): s = 0.0 for k in range(len(vsop_r[i])): s += vsop_r[i][k][0] * cos(vsop_r[i][k][1] + vsop_r[i][k][2] * t) sum_list.append(s) r = 0.0 # Sum the radius vector terms, while multiplying by 't' at the same time for i in range(len(sum_list) - 1, 0, -1): r = (r + sum_list[i]) * t # Add the R0 term, which is NOT multiplied by 't' r += sum_list[0] r /= 1e8 return (lon, lat, r) def geometric_vsop_pos(epoch, vsop_l, vsop_b, vsop_r, tofk5=True): """This function computes the geometric position of a celestial body at a given epoch when its VSOP87 periodic term tables are provided. The small correction to convert to the FK5 system may or not be included. :param epoch: Epoch to compute the position, given as an :class:`Epoch` object :type epoch: :py:class:`Epoch` :param vsop_l: Table of VSOP87 terms for the heliocentric longitude :type vsop_l: list :param vsop_b: Table of VSOP87 terms for the heliocentric latitude :type vsop_b: list :param vsop_r: Table of VSOP87 terms for the radius vector :type vsop_r: list :param tofk5: Whether or not the small correction to convert to the FK5 system will be applied :type tofk5: bool :returns: A tuple with the geometric heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. """ # First check that input values are of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input types") # Second, call the auxiliary function in charge of computations lon, lat, r = vsop_pos(epoch, vsop_l, vsop_b, vsop_r) if tofk5: # Apply the small correction for conversion to the FK5 system t = (epoch.jde() - 2451545.0) / 36525.0 lambda_p = lon - t * (1.397 + 0.00031 * t) delta_lon = Angle(0, 0, -0.09033) a = 0.03916 * (cos(lambda_p.rad()) + sin(lambda_p.rad())) a = a * tan(lat.rad()) delta_lon += Angle(0, 0, a) delta_beta = 0.03916 * (cos(lambda_p.rad()) - sin(lambda_p.rad())) delta_beta = Angle(0, 0, delta_beta) lon += delta_lon lat += delta_beta return lon, lat, r def apparent_vsop_pos(epoch, vsop_l, vsop_b, vsop_r, nutation=True): """This function computes the apparent position of a celestial body at a given epoch when its VSOP87 periodic term tables are provided. The small correction to convert to the FK5 system is always included. :param epoch: Epoch to compute the position, given as an :class:`Epoch` object :type epoch: :py:class:`Epoch` :param vsop_l: Table of VSOP87 terms for the heliocentric longitude :type vsop_l: list :param vsop_b: Table of VSOP87 terms for the heliocentric latitude :type vsop_b: list :param vsop_r: Table of VSOP87 terms for the radius vector :type vsop_r: list :param nutation: Whether the nutation correction will be applied :type tofk5: bool :returns: A tuple with the geometric heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. """ # First check that input values are of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input types") # Second, call auxiliary function in charge of computations lon, lat, r = geometric_vsop_pos(epoch, vsop_l, vsop_b, vsop_r) if nutation: lon += nutation_longitude(epoch) delta = -20.4898 / r delta = Angle(0, 0, delta) lon += delta return lon, lat, r def apparent_position(epoch, alpha, delta, sun_lon): """This function computes the apparent position of a star, correcting by nutation and aberration effects. :param epoch: Epoch to compute the apparent position for :type epoch: :py:class:`Epoch` :param alpha: Right ascension of the star, as an Angle object :type alpha: :py:class:`Angle` :param delta: Declination of the star, as an Angle object :type delta: :py:class:`Angle` :param sun_lon: True (geometric) longitude of the Sun :type sun_lon: :py:class:`Angle` :returns: A tuple with two Angle objects: Apparent right ascension, and aparent declination :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2028, 11, 13.19) >>> alpha = Angle(2, 46, 11.331, ra=True) >>> delta = Angle(49, 20, 54.54) >>> sun_lon = Angle(231.328) >>> app_alpha, app_delta = apparent_position(epoch, alpha, delta, sun_lon) >>> print(app_alpha.ra_str(n_dec=2)) 2h 46' 14.39'' >>> print(app_delta.dms_str(n_dec=2)) 49d 21' 7.45'' """ # First check that input values are of correct types if not ( isinstance(epoch, Epoch) and isinstance(alpha, Angle) and isinstance(delta, Angle) and isinstance(sun_lon, Angle) ): raise TypeError("Invalid input types") # Proceed to compute the true obliquity, nutation in longitude and nutation # in obliquity epsilon = true_obliquity(epoch) dpsi = nutation_longitude(epoch) depsilon = nutation_obliquity(epoch) # Convert the angles to radians a = alpha.rad() d = delta.rad() eps = epsilon.rad() # Compute corrections due to nutation dalpha1 = ((cos(eps) + sin(eps) * sin(a) * tan(d)) * dpsi - (cos(a) * tan(d)) * depsilon) ddelta1 = (sin(eps) * cos(a)) * dpsi + sin(a) * depsilon dalpha1 = Angle(dalpha1) ddelta1 = Angle(ddelta1) # Now, let's compute the aberration effect t = (epoch - JDE2000) / 36525 e = 0.016708634 + t * (-0.000042037 - t * 0.0000001267) pie = 102.93735 + t * (1.71946 + t * 0.00046) pie = radians(pie) lon = sun_lon.rad() k = 20.49552 # The constant of aberration dalpha2 = k * (-(cos(a) * cos(lon) * cos(eps) + sin(a) * sin(lon)) / cos(d) + e * (cos(a) * cos(pie) * cos(eps) + sin(a) * sin(pie)) / cos(d)) ddelta2 = k * (-(cos(lon) * cos(eps) * (tan(eps) * cos(d) - sin(a) * sin(d)) + cos(a) * sin(d) * sin(lon)) + e * (cos(pie) * cos(eps) * (tan(eps) * cos(d) - sin(a) * sin(d)) + cos(a) * sin(d) * sin(pie))) dalpha2 = Angle(0, 0, dalpha2) ddelta2 = Angle(0, 0, ddelta2) # Add the two corrections to the original values r_alpha = alpha + dalpha1 + dalpha2 r_delta = delta + ddelta1 + ddelta2 return r_alpha, r_delta def orbital_equinox2equinox(epoch0, epoch, i0, arg0, lon0): """This function reduces the orbital elements of a celestial object from one equinox to another. :param epoch0: Initial epoch :type epoch0: :py:class:`Epoch` :param epoch: Final epoch :type epoch: :py:class:`Epoch` :param i0: Initial inclination, as an Angle object :type i0: :py:class:`Angle` :param arg0: Initial argument of perihelion, as an Angle object :type arg0: :py:class:`Angle` :param lon0: Initial longitude of ascending node, as an Angle object :type lon0: :py:class:`Angle` :returns: A tuple with three Angle objects: Final inclination, argument of perihelion and longitude of ascending node, in that order :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch0 = Epoch(2358042.5305) >>> epoch = Epoch(2433282.4235) >>> i0 = Angle(47.122) >>> arg0 = Angle(151.4486) >>> lon0 = Angle(45.7481) >>> i1, arg1, lon1 = orbital_equinox2equinox(epoch0, epoch, i0, arg0, lon0) >>> print(round(i1(), 3)) 47.138 >>> print(round(arg1(), 4)) 151.4782 >>> print(round(lon1(), 4)) 48.6037 """ # First check that input values are of correct types if not ( isinstance(epoch0, Epoch) and isinstance(epoch, Epoch) and isinstance(i0, Angle) and isinstance(arg0, Angle) and isinstance(lon0, Angle) ): raise TypeError("Invalid input types") # Compute the auxiliary angles tt = (epoch0 - JDE2000) / 36525.0 t = (epoch - epoch0) / 36525.0 # Compute the conversion parameters eta = t * ( (47.0029 + tt * (-0.06603 + 0.000598 * tt)) + t * ((-0.03302 + 0.000598 * tt) + 0.00006 * t) ) pie = tt * (3289.4789 + 0.60622 * tt) + t * ( -(869.8089 + 0.50491 * tt) + 0.03536 * t ) p = t * ( 5029.0966 + tt * (2.22226 - 0.000042 * tt) + t * (1.11113 - 0.000042 * tt - 0.000006 * t) ) eta = Angle(0, 0, eta) pie = Angle(0, 0, pie) # But beware!: There is still a missing constant for pie. We didn't add # it before because of the mismatch between degrees and seconds pie += 174.876384 p = Angle(0, 0, p) i0r = i0.rad() etar = eta.rad() lon0r = lon0.rad() pir = pie.rad() # If i0 is very small, the procedure is different if i0 < 1.0: i1 = eta lon1 = pie + p + 180.0 else: a = sin(i0r) * sin(lon0r - pir) b = -sin(etar) * cos(i0r) + cos(etar) * sin(i0r) * cos(lon0r - pir) i1 = asin(sqrt(a*a + b*b)) i1 = Angle(i1, radians=True) omegapsi = atan2(a, b) omegapsi = Angle(omegapsi, radians=True) lon1 = omegapsi + pie + p domega = atan2(-sin(etar) * sin(lon0r - pir), sin(i0r) * cos(etar) - cos(i0r) * sin(etar) * cos(lon0r - pir)) domega = Angle(domega, radians=True) arg1 = arg0 + domega return i1, arg1, lon1 def kepler_equation(eccentricity, mean_anomaly): """This function computes the eccentric and true anomalies taking as input the mean anomaly and the eccentricity. :param eccentricity: Orbit's eccentricity :type eccentricity: int, float :param mean_anomaly: Mean anomaly, as an Angle object :type mean_anomaly: :py:class:`Angle` :returns: A tuple with two Angle objects: Eccentric and true anomalies :rtype: tuple :raises: TypeError if input values are of wrong type. >>> eccentricity = 0.1 >>> mean_anomaly = Angle(5.0) >>> e, v = kepler_equation(eccentricity, mean_anomaly) >>> print(round(e(), 6)) 5.554589 >>> print(round(v(), 6)) 6.139762 >>> eccentricity = 0.99 >>> mean_anomaly = Angle(2.0) >>> e, v = kepler_equation(eccentricity, mean_anomaly) >>> print(round(e(), 6)) 32.361007 >>> print(round(v(), 6)) 152.542134 >>> eccentricity = 0.99 >>> mean_anomaly = Angle(5.0) >>> e, v = kepler_equation(eccentricity, mean_anomaly) >>> print(round(e(), 6)) 45.361023 >>> print(round(v(), 6)) 160.745616 >>> eccentricity = 0.99 >>> mean_anomaly = Angle(1.0) >>> e, v = kepler_equation(eccentricity, mean_anomaly) >>> print(round(e(), 6)) 24.725822 >>> print(round(v(), 6)) 144.155952 >>> e, v = kepler_equation(0.999, Angle(7.0)) >>> print(round(e(), 7)) 52.2702615 >>> print(round(v(), 6)) 174.780018 >>> e, v = kepler_equation(0.99, Angle(0.2, radians=True)) >>> print(round(e(), 8)) 61.13444578 >>> print(round(v(), 6)) 166.311977 """ # First check that input values are of correct types if not ( isinstance(eccentricity, (int, float)) and isinstance(mean_anomaly, Angle) ): raise TypeError("Invalid input types") # Let's implement the third method (from Roger Sinnot), page 206 # First, compute the eccentric anomaly m = mean_anomaly.rad() ecc = eccentricity f = copysign(1.0, m) m = abs(m) / (2.0 * pi) m = (m - iint(m)) * 2.0 * pi * f if m < 0.0: m += 2.0 * pi f = 1.0 if m > pi: f = -1 m = 2.0 * pi - m e0 = pi / 2.0 d = pi / 4.0 ef = 0.0 while abs(e0 - ef) > TOL: ef = e0 m1 = e0 - ecc * sin(e0) s = copysign(1.0, m - m1) e0 += d * s d /= 2.0 e = Angle(e0 * f, radians=True) # Now, compute the true anomaly er = e.rad() v = 2.0 * atan(sqrt((1.0 + ecc) / (1.0 - ecc)) * tan(er / 2.0)) return e, Angle(v, radians=True) def orbital_elements(epoch, parameters1, parameters2): """This function computes the orbital elements for a given epoch, according to the parameters beeing passed as arguments. :param epoch: Epoch to compute orbital elements, as an Epoch object :type epoch: :py:class:`Epoch` :param parameters1: First set of parameters :type parameters1: list :param parameters2: Second set of parameters :type parameters2: list :returns: A tuple containing the following six orbital elements: - Mean longitude of the planet (Angle) - Semimajor axis of the orbit (float, astronomical units) - eccentricity of the orbit (float) - inclination on the plane of the ecliptic (Angle) - longitude of the ascending node (Angle) - argument of the perihelion (Angle) :rtype: tuple :raises: TypeError if input values are of wrong type. """ # First check that input values are of correct types if not (isinstance(epoch, Epoch) and isinstance(parameters1, list) and isinstance(parameters2, list)): raise TypeError("Invalid input types") # Define an auxiliary function def compute_element(t, param): return param[0] + t * (param[1] + t * (param[2] + t * param[3])) # Compute the time parameter t = (epoch - JDE2000) / 36525.0 # Compute the orbital elements ll = compute_element(t, parameters2[0]) a = compute_element(t, parameters1[1]) e = compute_element(t, parameters1[2]) if len(parameters2) == 4: i = compute_element(t, parameters2[1]) omega = compute_element(t, parameters2[2]) pie = compute_element(t, parameters2[3]) else: i = compute_element(t, parameters2[3]) omega = compute_element(t, parameters2[4]) pie = compute_element(t, parameters2[5]) arg = pie - omega ll = Angle(ll) i = Angle(i) omega = Angle(omega) arg = Angle(arg) return ll, a, e, i, omega, arg def velocity(r, a): """This function computes the instantaneous velocity of the moving body, in kilometers per second, for an unperturbed elliptic orbit. :param r: Distance of the body to the Sun, in Astronomical Units :type r: float :param a: Semimajor axis of the orbit, in Astronomical Units :type a: float :returns: Velocity of the body, in kilometers per second :rtype: float :raises: TypeError if input values are of wrong type. >>> r = 1.0 >>> a = 17.9400782 >>> v = velocity(r, a) >>> print(round(v, 2)) 41.53 """ if not (isinstance(r, float) and isinstance(a, float)): raise TypeError("Invalid input types") return 42.1218 * sqrt((1.0 / r) - (1.0 / (2.0 * a))) def velocity_perihelion(e, a): """This function computes the velocity of the moving body at perihelion, in kilometers per second, for an unperturbed elliptic orbit. :param e: Orbital eccentricity :type e: float :param a: Semimajor axis of the orbit, in Astronomical Units :type a: float :returns: Velocity of the body at perihelion, in kilometers per second :rtype: float :raises: TypeError if input values are of wrong type. >>> a = 17.9400782 >>> e = 0.96727426 >>> vp = velocity_perihelion(e, a) >>> print(round(vp, 2)) 54.52 """ if not (isinstance(e, float) and isinstance(a, float)): raise TypeError("Invalid input types") temp = sqrt((1.0 + e) / (1.0 - e)) return 29.7847 * temp / sqrt(a) def velocity_aphelion(e, a): """This function computes the velocity of the moving body at aphelion, in kilometers per second, for an unperturbed elliptic orbit. :param e: Orbital eccentricity :type e: float :param a: Semimajor axis of the orbit, in Astronomical Units :type a: float :returns: Velocity of the body at aphelion, in kilometers per second :rtype: float :raises: TypeError if input values are of wrong type. >>> a = 17.9400782 >>> e = 0.96727426 >>> va = velocity_aphelion(e, a) >>> print(round(va, 2)) 0.91 """ if not (isinstance(e, float) and isinstance(a, float)): raise TypeError("Invalid input types") temp = sqrt((1.0 - e) / (1.0 + e)) return 29.7847 * temp / sqrt(a) def length_orbit(e, a): """This function computes the length of an elliptic orbit given its eccentricity and semimajor axis. :param e: Orbital eccentricity :type e: float :param a: Semimajor axis of the orbit, in Astronomical Units :type a: float :returns: Length of the orbit in Astronomical Units :rtype: float :raises: TypeError if input values are of wrong type. >>> a = 17.9400782 >>> e = 0.96727426 >>> length = length_orbit(e, a) >>> print(round(length, 2)) 77.06 """ if not (isinstance(e, float) and isinstance(a, float)): raise TypeError("Invalid input types") # Let's start computing the semi-minor axis b = a * sqrt(1.0 - e * e) # Use one formula or another depending on eccentricity if e < 0.95: aa = (a + b) / 2.0 gg = sqrt(a * b) hh = (2.0 * a * b) / (a + b) length = pi * (21.0 * aa - 2.0 * gg - 3.0 * hh) / 8.0 else: length = pi * (3.0 * (a + b) - sqrt((a + 3.0 * b) * (3.0 * a + b))) return length def passage_nodes_elliptic(omega, e, a, t, ascending=True): """This function computes the time of passage by the nodes (ascending or descending) of a given celestial object with an elliptic orbit. :param omega: Argument of the perihelion :type omega: :py:class:`Angle` :param e: Orbital eccentricity :type e: float :param a: Semimajor axis of the orbit, in Astronomical Units :type a: float :param t: Time of perihelion passage :type t: :py:class:`Epoch` :param ascending: Whether the time of passage by the ascending (True) or descending (False) node will be computed :type ascending: bool :returns: Tuple containing: - Time of passage through the node (:py:class:`Epoch`) - Radius vector when passing through the node (in AU, float) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> omega = Angle(111.84644) >>> e = 0.96727426 >>> a = 17.9400782 >>> t = Epoch(1986, 2, 9.45891) >>> time, r = passage_nodes_elliptic(omega, e, a, t) >>> year, month, day = time.get_date() >>> print(year) 1985 >>> print(month) 11 >>> print(round(day, 2)) 9.16 >>> print(round(r, 4)) 1.8045 >>> time, r = passage_nodes_elliptic(omega, e, a, t, ascending=False) >>> year, month, day = time.get_date() >>> print(year) 1986 >>> print(month) 3 >>> print(round(day, 2)) 10.37 >>> print(round(r, 4)) 0.8493 """ if not (isinstance(omega, Angle) and isinstance(e, float) and isinstance(a, float) and isinstance(t, Epoch)): raise TypeError("Invalid input types") # First, get the true anomaly if ascending: v = 360.0 - omega else: v = 180.0 - omega # Compute the eccentric anomaly ee = 2.0 * atan(sqrt((1.0 - e)/(1.0 + e)) * tan(v.rad() / 2.0)) # Now compute the mean anomaly m = ee - e * sin(ee) # We need the mean motion, in degrees/day n = 0.9856076686/(a * sqrt(a)) # The time of passage will be tt = t + degrees(m) / n # And the corresponding radius vector is r = a * (1.0 - e * cos(ee)) return tt, r def passage_nodes_parabolic(omega, q, t, ascending=True): """This function computes the time of passage by the nodes (ascending or descending) of a given celestial object with a parabolic orbit. :param omega: Argument of the perihelion :type omega: :py:class:`Angle` :param q: Perihelion distance, in Astronomical Units :type q: float :param t: Time of perihelion passage :type t: :py:class:`Epoch` :param ascending: Whether the time of passage by the ascending (True) or descending (False) node will be computed :type ascending: bool :returns: Tuple containing: - Time of passage through the node (:py:class:`Epoch`) - Radius vector when passing through the node (in AU, float) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> omega = Angle(154.9103) >>> q = 1.324502 >>> t = Epoch(1989, 8, 20.291) >>> time, r = passage_nodes_parabolic(omega, q, t) >>> year, month, day = time.get_date() >>> print(year) 1977 >>> print(month) 9 >>> print(round(day, 2)) 17.64 >>> print(round(r, 4)) 28.0749 >>> time, r = passage_nodes_parabolic(omega, q, t, ascending=False) >>> year, month, day = time.get_date() >>> print(year) 1989 >>> print(month) 9 >>> print(round(day, 3)) 17.636 >>> print(round(r, 4)) 1.3901 """ if not (isinstance(omega, Angle) and isinstance(q, float) and isinstance(t, Epoch)): raise TypeError("Invalid input types") # First, get the true anomaly if ascending: v = 360.0 - omega else: v = 180.0 - omega # Compute an auxiliary value s = tan(v.rad() / 2.0) s2 = s * s # Compute time of passage tt = t + 27.403895 * s * (s2 + 3.0) * q * sqrt(q) # Compute radius vector r = q * (1.0 + s2) return tt, r def phase_angle(sun_dist, earth_dist, sun_earth_dist): """This function computes the phase angle, i.e., the angle Sun-planet-Earth from the corresponding distances. :param sun_dist: Planet's distance to the Sun, in Astronomical Units :type sun_dist: float :param earth_dist: Distance from planet to Earth, in Astronomical Units :type earth_dist: float :param sun_earth_dist: Distance Sun-Earth, in Astronomical Units :type sun_earth_dist: float :returns: The phase angle, as an Angle object :rtype: :py:class:`Angle` :raises: TypeError if input values are of wrong type. >>> sun_dist = 0.724604 >>> earth_dist = 0.910947 >>> sun_earth_dist = 0.983824 >>> angle = phase_angle(sun_dist, earth_dist, sun_earth_dist) >>> print(round(angle, 2)) 72.96 """ if not (isinstance(sun_dist, float) and isinstance(earth_dist, float) and isinstance(sun_earth_dist, float)): raise TypeError("Invalid input types") angle = acos((sun_dist * sun_dist + earth_dist * earth_dist - sun_earth_dist * sun_earth_dist) / (2.0 * sun_dist * earth_dist)) angle = Angle(angle, radians=True) return angle def illuminated_fraction(sun_dist, earth_dist, sun_earth_dist): """This function computes the illuminated fraction of the disk of a planet, as seen from the Earth. :param sun_dist: Planet's distance to the Sun, in Astronomical Units :type sun_dist: float :param earth_dist: Distance from planet to Earth, in Astronomical Units :type earth_dist: float :param sun_earth_dist: Distance Sun-Earth, in Astronomical Units :type sun_earth_dist: float :returns: The illuminated fraction of the disc of a planet :rtype: float :raises: TypeError if input values are of wrong type. >>> sun_dist = 0.724604 >>> earth_dist = 0.910947 >>> sun_earth_dist = 0.983824 >>> k = illuminated_fraction(sun_dist, earth_dist, sun_earth_dist) >>> print(round(k, 3)) 0.647 """ if not (isinstance(sun_dist, float) and isinstance(earth_dist, float) and isinstance(sun_earth_dist, float)): raise TypeError("Invalid input types") k = ((sun_dist + earth_dist) * (sun_dist + earth_dist) - sun_earth_dist * sun_earth_dist) / (4.0 * sun_dist * earth_dist) return k def main(): # Let's define a small helper function def print_me(msg, val): print("{}: {}".format(msg, val)) # Let's show some uses of Coordinate functions print("\n" + 35 * "*") print("*** Use of Coordinate functions") print(35 * "*" + "\n") # Here follows a series of important parameters related to the angle # between Earth's rotation axis and the ecliptic e0 = mean_obliquity(1987, 4, 10) print( "The mean angle between Earth rotation axis and ecliptic axis for " + "1987/4/10 is:" ) print_me("Mean obliquity", e0.dms_str(n_dec=3)) # 23d 26' 27.407'' epsilon = true_obliquity(1987, 4, 10) print("'True' (instantaneous) angle between those axes for 1987/4/10 is:") print_me("True obliquity", epsilon.dms_str(n_dec=3)) # 23d 26' 36.849'' epsilon = true_obliquity(2018, 7, 29) print("'True' (instantaneous) angle between those axes for 2018/7/29 is:") print_me("True obliquity", epsilon.dms_str(True, 4)) # 23d 26' 7.2157'' # The nutation effect is separated in two components: One parallel to the # ecliptic (nutation in longitude) and other perpendicular to the ecliptic # (nutation in obliquity) print("Nutation correction in longitude for 1987/4/10:") dpsi = nutation_longitude(1987, 4, 10) print_me("Nutation in longitude", dpsi.dms_str(n_dec=3)) # 0d 0' -3.788'' print("Nutation correction in obliquity for 1987/4/10:") depsilon = nutation_obliquity(1987, 4, 10) # 0d 0' 9.443'' print_me("Nutation in obliquity", depsilon.dms_str(n_dec=3)) print("") # We can compute the effects of precession on the equatorial coordinates of # a given star, taking also into account its proper motion start_epoch = JDE2000 final_epoch = Epoch(2028, 11, 13.19) alpha0 = Angle(2, 44, 11.986, ra=True) delta0 = Angle(49, 13, 42.48) # 2h 44' 11.986'' print_me("Initial right ascension", alpha0.ra_str(n_dec=3)) print_me("Initial declination", delta0.dms_str(n_dec=2)) # 49d 13' 42.48'' pm_ra = Angle(0, 0, 0.03425, ra=True) pm_dec = Angle(0, 0, -0.0895) alpha, delta = precession_equatorial( start_epoch, final_epoch, alpha0, delta0, pm_ra, pm_dec ) print_me("Final right ascension", alpha.ra_str(n_dec=3)) # 2h 46' 11.331'' print_me("Final declination", delta.dms_str(n_dec=2)) # 49d 20' 54.54'' print("") # Something similar can also be done with the ecliptical coordinates start_epoch = JDE2000 final_epoch = Epoch(-214, 6, 30.0) lon0 = Angle(149.48194) lat0 = Angle(1.76549) print_me("Initial ecliptical longitude", round(lon0(), 5)) # 149.48194 print_me("Initial ecliptical latitude", round(lat0(), 5)) # 1.76549 lon, lat = precession_ecliptical(start_epoch, final_epoch, lon0, lat0) print_me("Final ecliptical longitude", round(lon(), 3)) # 118.704 print_me("Final ecliptical latitude", round(lat(), 3)) # 1.615 print("") # It is possible to compute with relative accuracy the proper motion of the # stars, taking into account their distance to Sun and relative velocity ra = Angle(6, 45, 8.871, ra=True) dec = Angle(-16.716108) pm_ra = Angle(0, 0, -0.03847, ra=True) pm_dec = Angle(0, 0, -1.2053) dist = 2.64 vel = -7.6 alpha, delta = motion_in_space(ra, dec, dist, vel, pm_ra, pm_dec, -1000.0) print_me("Right ascension, year 2000", ra.ra_str(True, 2)) print_me("Right ascension, year 1000", alpha.ra_str(True, 2)) # 6h 45' 47.16'' print_me("Declination, year 2000", dec.dms_str(True, 1)) print_me("Declination, year 1000", delta.dms_str(True, 1)) # -16d 22' 56.0'' print("") # This module provides a series of functions to convert between equatorial, # ecliptical, horizontal and galactic coordinates ra = Angle(7, 45, 18.946, ra=True) dec = Angle(28, 1, 34.26) epsilon = Angle(23.4392911) lon, lat = equatorial2ecliptical(ra, dec, epsilon) print_me("Equatorial to ecliptical. Longitude", round(lon(), 5)) # 113.21563 print_me("Equatorial to ecliptical. Latitude", round(lat(), 5)) # 6.68417 print("") lon = Angle(113.21563) lat = Angle(6.68417) epsilon = Angle(23.4392911) ra, dec = ecliptical2equatorial(lon, lat, epsilon) print_me("Ecliptical to equatorial. Right ascension", ra.ra_str(n_dec=3)) # 7h 45' 18.946'' print_me("Ecliptical to equatorial. Declination", dec.dms_str(n_dec=2)) # 28d 1' 34.26'' print("") lon = Angle(77, 3, 56) lat = Angle(38, 55, 17) ra = Angle(23, 9, 16.641, ra=True) dec = Angle(-6, 43, 11.61) theta0 = Angle(8, 34, 57.0896, ra=True) eps = Angle(23, 26, 36.87) # Compute correction to convert from mean to apparent sidereal time delta = Angle(0, 0, ((-3.868 * cos(eps.rad())) / 15.0), ra=True) theta0 += delta h = theta0 - lon - ra azi, ele = equatorial2horizontal(h, dec, lat) print_me("Equatorial to horizontal: Azimuth", round(azi, 3)) # 68.034 print_me("Equatorial to horizontal: Elevation", round(ele, 3)) # 15.125 print("") azi = Angle(68.0337) ele = Angle(15.1249) lat = Angle(38, 55, 17) h, dec = horizontal2equatorial(azi, ele, lat) print_me("Horizontal to equatorial. Hour angle", round(h, 4)) # 64.3521 print_me("Horizontal to equatorial. Declination", dec.dms_str(n_dec=0)) # -6d 43' 12.0'' print("") ra = Angle(17, 48, 59.74, ra=True) dec = Angle(-14, 43, 8.2) lon, lat = equatorial2galactic(ra, dec) print_me("Equatorial to galactic. Longitude", round(lon, 4)) # 12.9593 print_me("Equatorial to galactic. Latitude", round(lat, 4)) # 6.0463 print("") lon = Angle(12.9593) lat = Angle(6.0463) ra, dec = galactic2equatorial(lon, lat) print_me("Galactic to equatorial. Right ascension", ra.ra_str(n_dec=1)) # 17h 48' 59.7'' print_me("Galactic to equatorial. Declination", dec.dms_str(n_dec=0)) # -14d 43' 8.0'' print("") # Get the ecliptic longitudes of the two points of the ecliptic which are # on the horizon, as well as the angle between the ecliptic and the horizon sidereal_time = Angle(5.0, ra=True) lat = Angle(51.0) epsilon = Angle(23.44) lon1, lon2, i = ecliptic_horizon(sidereal_time, lat, epsilon) print_me( "Longitude of ecliptic point #1 on the horizon", lon1.dms_str(n_dec=1) ) # 169d 21' 29.9'' print_me( "Longitude of ecliptic point #2 on the horizon", lon2.dms_str(n_dec=1) ) # 349d 21' 29.9'' print_me("Angle between the ecliptic and the horizon", round(i, 0)) # 62.0 print("") # Let's compute the angle of the diurnal path of a celestial body relative # to the horizon at the time of rising and setting dec = Angle(23.44) lat = Angle(40.0) j = diurnal_path_horizon(dec, lat) print_me( "Diurnal path vs. horizon angle at time of rising and setting", j.dms_str(n_dec=1), ) # 45d 31' 28.4'' print("") # There is a function to compute the times (in hours of the day) of rising, # transit and setting of a given celestial body longitude = Angle(71, 5, 0.0) latitude = Angle(42, 20, 0.0) alpha1 = Angle(2, 42, 43.25, ra=True) delta1 = Angle(18, 2, 51.4) alpha2 = Angle(2, 46, 55.51, ra=True) delta2 = Angle(18, 26, 27.3) alpha3 = Angle(2, 51, 7.69, ra=True) delta3 = Angle(18, 49, 38.7) h0 = Angle(-0.5667) delta_t = 56.0 theta0 = Angle(11, 50, 58.1, ra=True) rising, transit, setting = times_rise_transit_set( longitude, latitude, alpha1, delta1, alpha2, delta2, alpha3, delta3, h0, delta_t, theta0, ) print_me("Time of rising (hours of day)", round(rising, 4)) # 12.4238 print_me("Time of transit (hours of day)", round(transit, 3)) # 19.675 print_me("Time of setting (hours of day, next day)", round(setting, 3)) # 2.911 print("") # The air in the atmosphere introduces an error in the elevation due to the # refraction. We can compute the true (airless) elevation from the apparent # elevation, and viceversa apparent_elevation = Angle(0, 30, 0.0) true_elevation = refraction_apparent2true(apparent_elevation) print_me( "True elevation for an apparent elevation of 30'", true_elevation.dms_str(n_dec=1), ) # 1' 14.7'' true_elevation = Angle(0, 33, 14.76) apparent_elevation = refraction_true2apparent(true_elevation) print_me( "Apparent elevation for a true elevation of 33' 14.76''", apparent_elevation.dms_str(n_dec=2), ) # 57' 51.96'' print("") # The angular separation between two celestial objects can be easily # computed with the 'angular_separation()' function alpha1 = Angle(14, 15, 39.7, ra=True) delta1 = Angle(19, 10, 57.0) alpha2 = Angle(13, 25, 11.6, ra=True) delta2 = Angle(-11, 9, 41.0) sep_ang = angular_separation(alpha1, delta1, alpha2, delta2) print_me( "Angular separation between two given celestial bodies (degrees)", round(sep_ang, 3), ) # 32.793 print("") # We can compute the minimum angular separation achieved between two # celestial objects. For that, we must provide the positions at three # equidistant epochs: # EPOCH: Sep 13th, 1978, 0h TT: alpha1_1 = Angle(10, 29, 44.27, ra=True) delta1_1 = Angle(11, 2, 5.9) alpha2_1 = Angle(10, 33, 29.64, ra=True) delta2_1 = Angle(10, 40, 13.2) # EPOCH: Sep 14th, 1978, 0h TT: alpha1_2 = Angle(10, 36, 19.63, ra=True) delta1_2 = Angle(10, 29, 51.7) alpha2_2 = Angle(10, 33, 57.97, ra=True) delta2_2 = Angle(10, 37, 33.4) # EPOCH: Sep 15th, 1978, 0h TT: alpha1_3 = Angle(10, 43, 1.75, ra=True) delta1_3 = Angle(9, 55, 16.7) alpha2_3 = Angle(10, 34, 26.22, ra=True) delta2_3 = Angle(10, 34, 53.9) a = minimum_angular_separation( alpha1_1, delta1_1, alpha1_2, delta1_2, alpha1_3, delta1_3, alpha2_1, delta2_1, alpha2_2, delta2_2, alpha2_3, delta2_3, ) # Epoch fraction: print_me("Minimum angular separation, epoch fraction", round(a[0], 6)) # -0.370726 # NOTE: Given that 'n' is negative, and Sep 14th is the middle epoch (n=0), # then the minimum angular separation is achieved on Sep 13th, specifically # at: 1.0 - 0.370726 = 0.629274 => Sep 13.629274 = Sep 13th, 15h 6' 9'' # Minimum angular separation: print_me("Minimum angular separation", a[1].dms_str(n_dec=0)) # 3' 44.0'' print("") # If two objects have the same right ascension, then the relative position # angle between them must be 0 (or 180) alpha1 = Angle(14, 15, 39.7, ra=True) delta1 = Angle(19, 10, 57.0) alpha2 = Angle(14, 15, 39.7, ra=True) # Same as alpha1 delta2 = Angle(-11, 9, 41.0) pos_ang = relative_position_angle(alpha1, delta1, alpha2, delta2) print_me("Relative position angle", round(pos_ang, 1)) # 0.0 print("") # Planetary conjunctions may be computed with the appropriate function alpha1_1 = Angle(10, 24, 30.125, ra=True) delta1_1 = Angle(6, 26, 32.05) alpha1_2 = Angle(10, 25, 0.342, ra=True) delta1_2 = Angle(6, 10, 57.72) alpha1_3 = Angle(10, 25, 12.515, ra=True) delta1_3 = Angle(5, 57, 33.08) alpha1_4 = Angle(10, 25, 6.235, ra=True) delta1_4 = Angle(5, 46, 27.07) alpha1_5 = Angle(10, 24, 41.185, ra=True) delta1_5 = Angle(5, 37, 48.45) alpha2_1 = Angle(10, 27, 27.175, ra=True) delta2_1 = Angle(4, 4, 41.83) alpha2_2 = Angle(10, 26, 32.410, ra=True) delta2_2 = Angle(3, 55, 54.66) alpha2_3 = Angle(10, 25, 29.042, ra=True) delta2_3 = Angle(3, 48, 3.51) alpha2_4 = Angle(10, 24, 17.191, ra=True) delta2_4 = Angle(3, 41, 10.25) alpha2_5 = Angle(10, 22, 57.024, ra=True) delta2_5 = Angle(3, 35, 16.61) alpha1_list = [alpha1_1, alpha1_2, alpha1_3, alpha1_4, alpha1_5] delta1_list = [delta1_1, delta1_2, delta1_3, delta1_4, delta1_5] alpha2_list = [alpha2_1, alpha2_2, alpha2_3, alpha2_4, alpha2_5] delta2_list = [delta2_1, delta2_2, delta2_3, delta2_4, delta2_5] pc = planetary_conjunction(alpha1_list, delta1_list, alpha2_list, delta2_list) print_me("Epoch fraction 'n' for planetary conjunction", round(pc[0], 5)) # 0.23797 print_me( "Difference in declination at conjunction", pc[1].dms_str(n_dec=1) ) # 2d 8' 21.8'' print("") # A planetary conjunction with a star is a little bit simpler alpha_1 = Angle(15, 3, 51.937, ra=True) delta_1 = Angle(-8, 57, 34.51) alpha_2 = Angle(15, 9, 57.327, ra=True) delta_2 = Angle(-9, 9, 3.88) alpha_3 = Angle(15, 15, 37.898, ra=True) delta_3 = Angle(-9, 17, 37.94) alpha_4 = Angle(15, 20, 50.632, ra=True) delta_4 = Angle(-9, 23, 16.25) alpha_5 = Angle(15, 25, 32.695, ra=True) delta_5 = Angle(-9, 26, 1.01) alpha_star = Angle(15, 17, 0.446, ra=True) delta_star = Angle(-9, 22, 58.47) alpha_list = [alpha_1, alpha_2, alpha_3, alpha_4, alpha_5] delta_list = [delta_1, delta_2, delta_3, delta_4, delta_5] pc = planet_star_conjunction(alpha_list, delta_list, alpha_star, delta_star) print_me("Epoch fraction 'n' for planetary conjunction with star", round(pc[0], 4)) # 0.2551 print_me("Difference in declination with star at conjunction", pc[1].dms_str(n_dec=0)) # 3' 38.0'' print("") # It is possible to compute when a planet and two other stars will be in a # straight line alpha_1 = Angle(7, 55, 55.36, ra=True) delta_1 = Angle(21, 41, 3.0) alpha_2 = Angle(7, 58, 22.55, ra=True) delta_2 = Angle(21, 35, 23.4) alpha_3 = Angle(8, 0, 48.99, ra=True) delta_3 = Angle(21, 29, 38.2) alpha_4 = Angle(8, 3, 14.66, ra=True) delta_4 = Angle(21, 23, 47.5) alpha_5 = Angle(8, 5, 39.54, ra=True) delta_5 = Angle(21, 17, 51.4) alpha_star1 = Angle(7, 34, 16.40, ra=True) delta_star1 = Angle(31, 53, 51.2) alpha_star2 = Angle(7, 45, 0.10, ra=True) delta_star2 = Angle(28, 2, 12.5) alpha_list = [alpha_1, alpha_2, alpha_3, alpha_4, alpha_5] delta_list = [delta_1, delta_2, delta_3, delta_4, delta_5] n = planet_stars_in_line(alpha_list, delta_list, alpha_star1, delta_star1, alpha_star2, delta_star2) print_me("Epoch fraction 'n' when bodies are in a straight line", round(n, 4)) # 0.2233 print("") # The function 'straight_line()' computes if three celestial bodies are in # line providing the angle with which the bodies differ from a great circle alpha1 = Angle(5, 32, 0.40, ra=True) delta1 = Angle(0, -17, 56.9) alpha2 = Angle(5, 36, 12.81, ra=True) delta2 = Angle(-1, 12, 7.0) alpha3 = Angle(5, 40, 45.52, ra=True) delta3 = Angle(-1, 56, 33.3) psi, omega = straight_line(alpha1, delta1, alpha2, delta2, alpha3, delta3) print_me("Angle deviation from a straight line", psi.dms_str(n_dec=0)) # 7d 31' 1.0'' print_me("Angular distance of central point to the straight line", omega.dms_str(n_dec=0)) # -5' 24.0'' print("") # Let's compute the size of the smallest circle that contains three bodies alpha1 = Angle(12, 41, 8.63, ra=True) delta1 = Angle(-5, 37, 54.2) alpha2 = Angle(12, 52, 5.21, ra=True) delta2 = Angle(-4, 22, 26.2) alpha3 = Angle(12, 39, 28.11, ra=True) delta3 = Angle(-1, 50, 3.7) d = circle_diameter(alpha1, delta1, alpha2, delta2, alpha3, delta3) print_me( "Diameter of smallest circle containing three celestial bodies", d.dms_str(n_dec=0), ) # 4d 15' 49.0'' print("") # Now, let's find the apparent position of a star (Theta Persei) for a # given epoch epoch = Epoch(2028, 11, 13.19) alpha = Angle(2, 46, 11.331, ra=True) delta = Angle(49, 20, 54.54) sun_lon = Angle(231.328) app_alpha, app_delta = apparent_position(epoch, alpha, delta, sun_lon) print_me("Apparent right ascension", app_alpha.ra_str(n_dec=2)) # 2h 46' 14.39'' print_me("Apparent declination", app_delta.dms_str(n_dec=2)) # 49d 21' 7.45'' print("") # Convert orbital elements of an object from one equinox to another epoch0 = Epoch(2358042.5305) epoch = Epoch(2433282.4235) i0 = Angle(47.122) arg0 = Angle(151.4486) lon0 = Angle(45.7481) i1, arg1, lon1 = orbital_equinox2equinox(epoch0, epoch, i0, arg0, lon0) print_me("New inclination", round(i1(), 3)) # 47.138 print_me("New argument of perihelion", round(arg1(), 4)) # 151.4782 print_me("New longitude of ascending node", round(lon1(), 4)) # 48.6037 print("") # Compute the eccentric and true anomalies using Kepler's equation eccentricity = 0.1 mean_anomaly = Angle(5.0) e, v = kepler_equation(eccentricity, mean_anomaly) print_me("Eccentric anomaly, Case #1", round(e(), 6)) # 5.554589 print_me("True anomaly, Case #1", round(v(), 6)) # 6.139762 e, v = kepler_equation(0.99, Angle(0.2, radians=True)) print_me("Eccentric anomaly, Case #2", round(e(), 8)) # 61.13444578 print_me("True anomaly, Case #2", round(v(), 6)) # 166.311977 print("") # Compute the velocity of a body in a given point of its (unperturbated # elliptic) orbit r = 1.0 a = 17.9400782 v = velocity(r, a) print_me("Velocity at 1 AU", round(v, 2)) # 41.53 # Compute the velocity at perihelion e = 0.96727426 vp = velocity_perihelion(e, a) print_me("Velocity at perihelion", round(vp, 2)) # 54.52 # Compute the velocity at aphelion va = velocity_aphelion(e, a) print_me("Velocity at aphelion", round(va, 2)) # 0.91 # Calculate the length of the orbit length = length_orbit(e, a) print_me("Length of the orbit (AU)", round(length, 2)) # 77.06 print("") # Passage through the nodes of an elliptic orbit omega = Angle(111.84644) e = 0.96727426 a = 17.9400782 t = Epoch(1986, 2, 9.45891) time, r = passage_nodes_elliptic(omega, e, a, t) y, m, d = time.get_date() d = round(d, 2) print("Time of passage through ascending node: {}/{}/{}".format(y, m, d)) # 1985/11/9.16 print("Radius vector at ascending node: {}".format(round(r, 4))) # 1.8045 # Passage through the nodes of a parabolic orbit omega = Angle(154.9103) q = 1.324502 t = Epoch(1989, 8, 20.291) time, r = passage_nodes_parabolic(omega, q, t, ascending=False) y, m, d = time.get_date() d = round(d, 2) print("Time of passage through descending node: {}/{}/{}".format(y, m, d)) # 1989/9/17.64 print("Radius vector at descending node: {}".format(round(r, 4))) # 1.3901 print("") # Compute the phase angle sun_dist = 0.724604 earth_dist = 0.910947 sun_earth_dist = 0.983824 angle = phase_angle(sun_dist, earth_dist, sun_earth_dist) print_me("Phase angle", round(angle, 2)) # 72.96 # Now, let's compute the illuminated fraction of the disk k = illuminated_fraction(sun_dist, earth_dist, sun_earth_dist) print_me("Illuminated fraction of planet disk", round(k, 3)) # 0.647 if __name__ == "__main__": main() pymeeus-0.3.6/pymeeus/CurveFitting.py000066400000000000000000000544171355545537700177170ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from math import sqrt, radians, fsum, sin from pymeeus.base import TOL from pymeeus.Angle import Angle """ .. module:: CurveFitting :synopsis: Class to get the best fit of a curve to a set of (x, y) points :license: GNU Lesser General Public License v3 (LGPLv3) .. moduleauthor:: Dagoberto Salazar """ class CurveFitting(object): """ Class CurveFitting deals with finding the function (linear, cuadratic, etc) that best fit a given set of points. The constructor takes pairs of (x, y) values from the table of interest. These pairs of values can be given as a sequence of int/floats, tuples, lists or Angles. It is also possible to provide a CurveFitting object to the constructor in order to get a copy. .. note:: When using Angles, be careful with the 360-to-0 discontinuity. If a sequence of int, floats or Angles is given, the values in the odd positions are considered to belong to the 'x' set, while the values in the even positions belong to the 'y' set. If only one tuple or list is provided, it is assumed that it is the 'y' set, and the 'x' set is build from 0 onwards with steps of length 1. Please keep in mind that a minimum of two data pairs are needed in order to carry out any fitting. If only one value pair is provided, a ValueError exception will be raised. """ def __init__(self, *args): """CurveFitting constructor. This takes pairs of (x, y) values from the table of interest. These pairs of values can be given as a sequence of int/floats, tuples, lists or Angles. It is also possible to provide a CurveFitting object to the constructor in order to get a copy. .. note:: When using Angles, be careful with the 360-to-0 discontinuity If a sequence of int, floats or Angles is given, the values in the odd positions are considered to belong to the 'x' set, while the values in the even positions belong to the 'y' set. If only one tuple or list is provided, it is assumed that it is the 'y' set, and the 'x' set is build from 0 onwards with steps of length 1. Please keep in mind that a minimum of two data pairs are needed in order to carry out any interpolation. If only one value pair is provided, a ValueError exception will be raised. :param args: Input tabular values, or another CurveFitting object. :type args: int, float, list, tuple, :py:class:`Angle`, :py:class:`CurveFitting` :returns: CurveFitting object. :rtype: :py:class:`CurveFitting` :raises: ValueError if not enough input data pairs are provided. :raises: TypeError if input values are of wrong type. >>> i = CurveFitting([5, 3, 6, 1, 2, 4, 9], [10, 6, 12, 2, 4, 8]) >>> print(i._x) [5, 3, 6, 1, 2, 4] >>> print(i._y) [10, 6, 12, 2, 4, 8] >>> j = CurveFitting([3, -8, 1, 12, 2, 5, 8]) >>> print(j._x) [0, 1, 2, 3, 4, 5, 6] >>> print(j._y) [3, -8, 1, 12, 2, 5, 8] >>> k = CurveFitting(3, -8, 1, 12, 2, 5, 8) >>> print(k._x) [3, 1, 2] >>> print(k._y) [-8, 12, 5] >>> m = CurveFitting(k) >>> print(m._x) [3, 1, 2] >>> print(m._y) [-8, 12, 5] """ # Initialize data table self._x = [] self._y = [] self.set(*args) # Let's use 'set()' method to handle the setup def set(self, *args): """Method used to define the value pairs of CurveFitting object. This takes pairs of (x, y) values from the table of interest. These pairs of values can be given as a sequence of int/floats, tuples, lists, or Angles. It is also possible to provide a CurveFitting object to this method in order to get a copy. .. note:: When using Angles, be careful with the 360-to-0 discontinuity If a sequence of int, floats or Angles is given, the values in the odd positions are considered to belong to the 'x' set, while the values in the even positions belong to the 'y' set. If only one tuple or list is provided, it is assumed that it is the 'y' set, and the 'x' set is build from 0 onwards with steps of length 1. Please keep in mind that a minimum of two data pairs are needed in order to carry out any interpolation. If only one value is provided, a ValueError exception will be raised. :param args: Input tabular values, or another CurveFitting object. :type args: int, float, list, tuple, :py:class:`Angle` :returns: None. :rtype: None :raises: ValueError if not enough input data pairs are provided. :raises: TypeError if input values are of wrong type. >>> i = CurveFitting() >>> i.set([5, 3, 6, 1, 2, 4, 9], [10, 6, 12, 2, 4, 8]) >>> print(i._x) [5, 3, 6, 1, 2, 4] >>> print(i._y) [10, 6, 12, 2, 4, 8] >>> j = CurveFitting() >>> j.set([3, -8, 1, 12, 2, 5, 8]) >>> print(j._x) [0, 1, 2, 3, 4, 5, 6] >>> print(j._y) [3, -8, 1, 12, 2, 5, 8] >>> k = CurveFitting(3, -8, 1, 12, 2, 5, 8) >>> print(k._x) [3, 1, 2] >>> print(k._y) [-8, 12, 5] """ # Clean up the internal data tables and parameters self._x = [] self._y = [] # If no arguments are given, return. Internal data tables are empty if len(args) == 0: return # If we have only one argument, it can be a single value or tuple/list elif len(args) == 1: if isinstance(args[0], CurveFitting): self._x = args[0]._x self._y = args[0]._y elif isinstance(args[0], (int, float, Angle)): # Insuficient data for curve fitting. Raise ValueError raise ValueError("Invalid number of input values") elif isinstance(args[0], (list, tuple)): seq = args[0] if len(seq) < 2: raise ValueError("Invalid number of input values") else: # Read input values into 'y', and create 'x' i = 0 for value in seq: self._x.append(i) self._y.append(value) i += 1 else: raise TypeError("Invalid input value") elif len(args) == 2: if isinstance(args[0], (int, float, Angle)) or isinstance( args[1], (int, float, Angle) ): # Insuficient data for curve fitting. Raise ValueError raise ValueError("Invalid number of input values") elif isinstance(args[0], (list, tuple)) and isinstance( args[1], (list, tuple) ): x = args[0] y = args[1] # Check if they have the same length. If not, make them equal length_min = min(len(x), len(y)) x = x[:length_min] y = y[:length_min] if len(x) < 2 or len(y) < 2: raise ValueError("Invalid number of input values") else: # Read input values into 'x' and 'y' for xval, yval in zip(x, y): self._x.append(xval) self._y.append(yval) else: raise TypeError("Invalid input value") elif len(args) == 3: # In this case, no combination of input values is valid raise ValueError("Invalid number of input values") else: # If there is an odd number of arguments, drop the last one if len(args) % 2 != 0: args = args[:-1] # Check that all the arguments are ints, floats or Angles all_numbers = True for arg in args: all_numbers = (all_numbers and isinstance(arg, (int, float, Angle))) # If any of the values failed the test, raise an exception if not all_numbers: raise TypeError("Invalid input value") # Now, extract the data: Odds are x's, evens are y's for i in range(int(len(args) / 2.0)): self._x.append(args[2 * i]) self._y.append(args[2 * i + 1]) # Compute parameters if len(self._x) > 0: self._compute_parameters() def _compute_parameters(self): """Method to compute the intermediate parameters using for fitting.""" self._P = 0.0 self._Q = 0.0 self._R = 0.0 self._S = 0.0 self._T = 0.0 self._U = 0.0 self._V = 0.0 self._W = 0.0 self._N = len(self._x) self._P = fsum(self._x) self._T = fsum(self._y) for i in range(self._N): x2 = self._x[i] * self._x[i] xy = self._x[i] * self._y[i] self._Q += x2 self._R += x2 * self._x[i] self._S += x2 * x2 self._U += xy self._V += xy * self._x[i] self._W += self._y[i] * self._y[i] return def __str__(self): """Method used when trying to print the object. :returns: Internal tabular values as strings. :rtype: string >>> i = CurveFitting([5, 3, 6, 1, 2, 4, 9], [10, 6, 12, 2, 4, 8]) >>> print(i) X: [5, 3, 6, 1, 2, 4] Y: [10, 6, 12, 2, 4, 8] """ xstr = "X: " + str(self._x) + "\n" ystr = "Y: " + str(self._y) return xstr + ystr def __repr__(self): """Method providing the 'official' string representation of the object. It provides a valid expression that could be used to recreate the object. :returns: As string with a valid expression to recreate the object :rtype: string >>> i = CurveFitting([5, 3, 6, 1, 2, 4, 9], [10, 6, 12, 2, 4, 8]) >>> repr(i) 'CurveFitting([5, 3, 6, 1, 2, 4], [10, 6, 12, 2, 4, 8])' """ return "{}({}, {})".format(self.__class__.__name__, self._x, self._y) def __len__(self): """This method returns the number of value pairs internally stored in this object. :returns: Number of value pairs internally stored :rtype: int >>> i = CurveFitting([5, 3, 6, 1, 2, 4, 9], [10, 6, 12, 2, 4, 8]) >>> len(i) 6 """ return len(self._x) def correlation_coeff(self): """This method returns the coefficient of correlation, as a float. :returns: Coefficient of correlation. :rtype: float >>> cf = CurveFitting([73.0, 38.0, 35.0, 42.0, 78.0, 68.0, 74.0, 42.0, ... 52.0, 54.0, 39.0, 61.0, 42.0, 49.0, 50.0, 62.0, ... 44.0, 39.0, 43.0, 54.0, 44.0, 37.0], ... [90.4, 125.3, 161.8, 143.4, 52.5, 50.8, 71.5, ... 152.8, 131.3, 98.5, 144.8, 78.1, 89.5, 63.9, ... 112.1, 82.0, 119.8, 161.2, 208.4, 111.6, 167.1, ... 162.1]) >>> r = cf.correlation_coeff() >>> print(round(r, 3)) -0.767 """ n = self._N sxy = self._U sx = self._P sy = self._T sx2 = self._Q sy2 = self._W return ((n * sxy - sx * sy) / (sqrt(n * sx2 - sx * sx) * sqrt(n * sy2 - sy * sy))) def linear_fitting(self): """This method returns a tuple with the 'a', 'b' coefficients of the linear equation *'y = a*x + b'* that best fits the table data, using the least squares approach. :returns: 'a', 'b' coefficients of best linear equation fit. :rtype: tuple :raises: ZeroDivisionError if input data leads to a division by zero >>> cf = CurveFitting([73.0, 38.0, 35.0, 42.0, 78.0, 68.0, 74.0, 42.0, ... 52.0, 54.0, 39.0, 61.0, 42.0, 49.0, 50.0, 62.0, ... 44.0, 39.0, 43.0, 54.0, 44.0, 37.0], ... [90.4, 125.3, 161.8, 143.4, 52.5, 50.8, 71.5, ... 152.8, 131.3, 98.5, 144.8, 78.1, 89.5, 63.9, ... 112.1, 82.0, 119.8, 161.2, 208.4, 111.6, 167.1, ... 162.1]) >>> a, b = cf.linear_fitting() >>> print("a = {}\tb = {}".format(round(a, 2), round(b, 2))) a = -2.49 b = 244.18 """ n = self._N sxy = self._U sx = self._P sy = self._T sx2 = self._Q d = n * sx2 - sx * sx if abs(d) < TOL: raise ZeroDivisionError("Input data leads to a division by zero") a = (n * sxy - sx * sy) / d b = (sy * sx2 - sx * sxy) / d return (a, b) def quadratic_fitting(self): """This method returns a tuple with the 'a', 'b', 'c' coefficients of the quadratic equation *'y = a*x*x + b*x + c'* that best fits the table data, using the least squares approach. :returns: 'a', 'b', 'c' coefficients of best quadratic equation fit. :rtype: tuple :raises: ZeroDivisionError if input data leads to a division by zero >>> cf2 = CurveFitting([-2.0, -1.5, -1.0, -0.5, 0.0, 0.5, 1.0, 1.5, ... 2.0, 2.5,3.0], ... [-9.372, -3.821, 0.291, 3.730, 5.822, 8.324, ... 9.083, 6.957, 7.006, 0.365, -1.722]) >>> a, b, c = cf2.quadratic_fitting() >>> print("a = {}; b = {}; c = {}".format(round(a, 2), round(b, 2), ... round(c, 2))) a = -2.22; b = 3.76; c = 6.64 """ n = self._N p = self._P q = self._Q r = self._R s = self._S t = self._T u = self._U v = self._V q2 = q * q d = n * q * s + 2.0 * p * q * r - q2 * q - p * p * s - n * r * r if abs(d) < TOL: raise ZeroDivisionError("Input data leads to a division by zero") a = (n * q * v + p * r * t + p * q * u - q2 * t - p * p * v - n * r * u) / d b = (n * s * u + p * q * v + q * r * t - q2 * u - p * s * t - n * r * v) / d c = (q * s * t + q * r * u + p * r * v - q2 * v - p * s * u - r * r * t) / d return (a, b, c) def general_fitting(self, f0, f1=lambda *args: 0.0, f2=lambda *args: 0.0): """This method returns a tuple with the 'a', 'b', 'c' coefficients of the general equation *'y = a*f0(x) + b*f1(x) + c*f2(x)'* that best fits the table data, using the least squares approach. :param f0, f1, f2: Functions used to build the general equation. :type f0, f1, f2: function :returns: 'a', 'b', 'c' coefficients of best general equation fit. :rtype: tuple :raises: ZeroDivisionError if input functions are null or input data leads to a division by zero >>> cf4 = CurveFitting([3, 20, 34, 50, 75, 88, 111, 129, 143, 160, 183, ... 200, 218, 230, 248, 269, 290, 303, 320, 344], ... [0.0433, 0.2532, 0.3386, 0.3560, 0.4983, 0.7577, ... 1.4585, 1.8628, 1.8264, 1.2431, -0.2043, ... -1.2431, -1.8422, -1.8726, -1.4889, -0.8372, ... -0.4377, -0.3640, -0.3508, -0.2126]) >>> def sin1(x): return sin(radians(x)) >>> def sin2(x): return sin(radians(2.0*x)) >>> def sin3(x): return sin(radians(3.0*x)) >>> a, b, c = cf4.general_fitting(sin1, sin2, sin3) >>> print("a = {}; b = {}; c = {}".format(round(a, 2), round(b, 2), ... round(c, 2))) a = 1.2; b = -0.77; c = 0.39 >>> cf5 = CurveFitting([0, 1.2, 1.4, 1.7, 2.1, 2.2]) >>> a, b, c = cf5.general_fitting(sqrt) >>> print("a = {}; b = {}; c = {}".format(round(a, 3), round(b, 3), ... round(c, 3))) a = 1.016; b = 0.0; c = 0.0 """ m = 0 p = 0 q = 0 r = 0 s = 0 t = 0 u = 0 v = 0 w = 0 xl = list(self._x) yl = list(self._y) for i, value in enumerate(xl): x = value y = yl[i] m += f0(x) * f0(x) p += f0(x) * f1(x) q += f0(x) * f2(x) r += f1(x) * f1(x) s += f1(x) * f2(x) t += f2(x) * f2(x) u += y * f0(x) v += y * f1(x) w += y * f2(x) if abs(r) < TOL and abs(t) < TOL and abs(m) >= TOL: return (u / m, 0.0, 0.0) if abs(m * r * t) < TOL: raise ZeroDivisionError("Invalid input functions: They are null") d = m * r * t + 2.0 * p * q * s - m * s * s - r * q * q - t * p * p if abs(d) < TOL: raise ZeroDivisionError("Input data leads to a division by zero") a = (u * (r * t - s * s) + v * (q * s - p * t) + w * (p * s - q * r)) / d b = (u * (s * q - p * t) + v * (m * t - q * q) + w * (p * q - m * s)) / d c = (u * (p * s - r * q) + v * (p * q - m * s) + w * (m * r - p * p)) / d return (a, b, c) def main(): # Let's define a small helper function def print_me(msg, val): print("{}: {}".format(msg, val)) # Now let's work with the CurveFitting class print("\n" + 35 * "*") print("*** Use of CurveFitting class") print(35 * "*" + "\n") # Create a CurveFitting object cf1 = CurveFitting( [ 73.0, 38.0, 35.0, 42.0, 78.0, 68.0, 74.0, 42.0, 52.0, 54.0, 39.0, 61.0, 42.0, 49.0, 50.0, 62.0, 44.0, 39.0, 43.0, 54.0, 44.0, 37.0, ], [ 90.4, 125.3, 161.8, 143.4, 52.5, 50.8, 71.5, 152.8, 131.3, 98.5, 144.8, 78.1, 89.5, 63.9, 112.1, 82.0, 119.8, 161.2, 208.4, 111.6, 167.1, 162.1, ], ) # Let's use 'linear_fitting()' a, b = cf1.linear_fitting() print("Linear fitting for cf1:") print(" a = {}\tb = {}".format(round(a, 2), round(b, 2))) print("") # Use the copy constructor print("Let's make a copy:") cf2 = CurveFitting(cf1) print(" cf2 = CurveFitting(cf1)") a, b = cf2.linear_fitting() print("Linear fitting for cf2:") print(" a = {}\tb = {}".format(round(a, 2), round(b, 2))) print("") # Get the number of value pairs internally stored print_me("Number of value pairs inside 'cf2'", len(cf2)) # 22 print("") # Compute the correlation coefficient r = cf1.correlation_coeff() print("Correlation coefficient:") print_me(" r", round(r, 3)) cf2 = CurveFitting( [-2.0, -1.5, -1.0, -0.5, 0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0], [ -9.372, -3.821, 0.291, 3.730, 5.822, 8.324, 9.083, 6.957, 7.006, 0.365, -1.722, ], ) print("") # Now use 'quadratic_fitting()' a, b, c = cf2.quadratic_fitting() # Original curve: y = -2.0*x*x + 3.5*x + 7.0 + noise print("Quadratic fitting:") print(" a = {}\tb = {}\tc = {}".format(round(a, 2), round(b, 2), round(c, 2))) print("") cf4 = CurveFitting( [ 3, 20, 34, 50, 75, 88, 111, 129, 143, 160, 183, 200, 218, 230, 248, 269, 290, 303, 320, 344, ], [ 0.0433, 0.2532, 0.3386, 0.3560, 0.4983, 0.7577, 1.4585, 1.8628, 1.8264, 1.2431, -0.2043, -1.2431, -1.8422, -1.8726, -1.4889, -0.8372, -0.4377, -0.3640, -0.3508, -0.2126, ], ) # Let's define the three functions to be used for fitting def sin1(x): return sin(radians(x)) def sin2(x): return sin(radians(2.0 * x)) def sin3(x): return sin(radians(3.0 * x)) # Use 'general_fitting()' here a, b, c = cf4.general_fitting(sin1, sin2, sin3) print("General fitting with f0 = sin(x), f1 = sin(2*x), f2 = sin(3*x):") print(" a = {}\tb = {}\tc = {}".format(round(a, 2), round(b, 2), round(c, 2))) print("") cf5 = CurveFitting([0, 1.2, 1.4, 1.7, 2.1, 2.2]) a, b, c = cf5.general_fitting(sqrt) print("General fitting with f0 = sqrt(x), f1 = 0.0 and f2 = 0.0:") print(" a = {}\tb = {}\t\tc = {}".format(round(a, 3), round(b, 3), round(c, 3))) if __name__ == "__main__": main() pymeeus-0.3.6/pymeeus/Earth.py000066400000000000000000005170041355545537700163450ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from math import sqrt, radians, sin, cos, tan, atan, atan2, asin from pymeeus.Angle import Angle from pymeeus.Epoch import Epoch from pymeeus.Interpolation import Interpolation from pymeeus.Coordinates import ( geometric_vsop_pos, apparent_vsop_pos, orbital_elements, passage_nodes_elliptic ) """ .. module:: Earth :synopsis: Class to model Earth's globe :license: GNU Lesser General Public License v3 (LGPLv3) .. moduleauthor:: Dagoberto Salazar """ VSOP87_L = [ # L0 [ [175347045.673, 0.00000000000, 0.00000000000], [3341656.456, 4.66925680417, 6283.07584999140], [34894.275, 4.62610241759, 12566.15169998280], [3417.571, 2.82886579606, 3.52311834900], [3497.056, 2.74411800971, 5753.38488489680], [3135.896, 3.62767041758, 77713.77146812050], [2676.218, 4.41808351397, 7860.41939243920], [2342.687, 6.13516237631, 3930.20969621960], [1273.166, 2.03709655772, 529.69096509460], [1324.292, 0.74246356352, 11506.76976979360], [901.855, 2.04505443513, 26.29831979980], [1199.167, 1.10962944315, 1577.34354244780], [857.223, 3.50849156957, 398.14900340820], [779.786, 1.17882652114, 5223.69391980220], [990.250, 5.23268129594, 5884.92684658320], [753.141, 2.53339053818, 5507.55323866740], [505.264, 4.58292563052, 18849.22754997420], [492.379, 4.20506639861, 775.52261132400], [356.655, 2.91954116867, 0.06731030280], [284.125, 1.89869034186, 796.29800681640], [242.810, 0.34481140906, 5486.77784317500], [317.087, 5.84901952218, 11790.62908865880], [271.039, 0.31488607649, 10977.07880469900], [206.160, 4.80646606059, 2544.31441988340], [205.385, 1.86947813692, 5573.14280143310], [202.261, 2.45767795458, 6069.77675455340], [126.184, 1.08302630210, 20.77539549240], [155.516, 0.83306073807, 213.29909543800], [115.132, 0.64544911683, 0.98032106820], [102.851, 0.63599846727, 4694.00295470760], [101.724, 4.26679821365, 7.11354700080], [99.206, 6.20992940258, 2146.16541647520], [132.212, 3.41118275555, 2942.46342329160], [97.607, 0.68101272270, 155.42039943420], [85.128, 1.29870743025, 6275.96230299060], [74.651, 1.75508916159, 5088.62883976680], [101.895, 0.97569221824, 15720.83878487840], [84.711, 3.67080093025, 71430.69561812909], [73.547, 4.67926565481, 801.82093112380], [73.874, 3.50319443167, 3154.68708489560], [78.756, 3.03698313141, 12036.46073488820], [79.637, 1.80791330700, 17260.15465469040], [85.803, 5.98322631256, 161000.68573767410], [56.963, 2.78430398043, 6286.59896834040], [61.148, 1.81839811024, 7084.89678111520], [69.627, 0.83297596966, 9437.76293488700], [56.116, 4.38694880779, 14143.49524243060], [62.449, 3.97763880587, 8827.39026987480], [51.145, 0.28306864501, 5856.47765911540], [55.577, 3.47006009062, 6279.55273164240], [41.036, 5.36817351402, 8429.24126646660], [51.605, 1.33282746983, 1748.01641306700], [51.992, 0.18914945834, 12139.55350910680], [49.000, 0.48735065033, 1194.44701022460], [39.200, 6.16832995016, 10447.38783960440], [35.566, 1.77597314691, 6812.76681508600], [36.770, 6.04133859347, 10213.28554621100], [36.596, 2.56955238628, 1059.38193018920], [33.291, 0.59309499459, 17789.84561978500], [35.954, 1.70876111898, 2352.86615377180], [40.938, 2.39850881707, 19651.04848109800], [30.047, 2.73975123935, 1349.86740965880], [30.412, 0.44294464135, 83996.84731811189], [23.663, 0.48473567763, 8031.09226305840], [23.574, 2.06527720049, 3340.61242669980], [21.089, 4.14825464101, 951.71840625060], [24.738, 0.21484762138, 3.59042865180], [25.352, 3.16470953405, 4690.47983635860], [22.820, 5.22197888032, 4705.73230754360], [21.419, 1.42563735525, 16730.46368959580], [21.891, 5.55594302562, 553.56940284240], [17.481, 4.56052900359, 135.06508003540], [19.925, 5.22208471269, 12168.00269657460], [19.860, 5.77470167653, 6309.37416979120], [20.300, 0.37133792946, 283.85931886520], [14.421, 4.19315332546, 242.72860397400], [16.225, 5.98837722564, 11769.85369316640], [15.077, 4.19567181073, 6256.77753019160], [19.124, 3.82219996949, 23581.25817731760], [18.888, 5.38626880969, 149854.40013480789], [14.346, 3.72355084422, 38.02767263580], [17.898, 2.21490735647, 13367.97263110660], [12.054, 2.62229588349, 955.59974160860], [11.287, 0.17739328092, 4164.31198961300], [13.971, 4.40138139996, 6681.22485339960], [13.621, 1.88934471407, 7632.94325965020], [12.503, 1.13052412208, 5.52292430740], [10.498, 5.35909518669, 1592.59601363280], [9.803, 0.99947478995, 11371.70468975820], [9.220, 4.57138609781, 4292.33083295040], [10.327, 6.19982566125, 6438.49624942560], [12.003, 1.00351456700, 632.78373931320], [10.827, 0.32734520222, 103.09277421860], [8.356, 4.53902685948, 25132.30339996560], [10.005, 6.02914963280, 5746.27133789600], [8.409, 3.29946744189, 7234.79425624200], [8.006, 5.82145271907, 28.44918746780], [10.523, 0.93871805506, 11926.25441366880], [7.686, 3.12142363172, 7238.67559160000], [9.378, 2.62414241032, 5760.49843189760], [8.127, 6.11228001785, 4732.03062734340], [9.232, 0.48343968736, 522.57741809380], [9.802, 5.24413991147, 27511.46787353720], [7.871, 0.99590177926, 5643.17856367740], [8.123, 6.27053013650, 426.59819087600], [9.048, 5.33686335897, 6386.16862421000], [8.620, 4.16538210888, 7058.59846131540], [6.297, 4.71724819317, 6836.64525283380], [7.575, 3.97382858911, 11499.65622279280], [7.756, 2.95729056763, 23013.53953958720], [7.314, 0.60652505806, 11513.88331679440], [5.955, 2.87641047971, 6283.14316029419], [6.534, 5.79072926033, 18073.70493865020], [7.188, 3.99831508699, 74.78159856730], [7.346, 4.38582365437, 316.39186965660], [5.413, 5.39199024641, 419.48464387520], [5.127, 2.36062848786, 10973.55568635000], [7.056, 0.32258441903, 263.08392337280], [6.625, 3.66475158672, 17298.18232732620], [6.762, 5.91132535899, 90955.55169449610], [4.938, 5.73672165674, 9917.69687450980], [5.547, 2.45152597661, 12352.85260454480], [5.958, 3.32051344676, 6283.00853968860], [4.471, 2.06385999536, 7079.37385680780], [6.153, 1.45823331144, 233141.31440436150], [4.348, 4.42342175480, 5216.58037280140], [6.123, 1.07494905258, 19804.82729158280], [4.488, 3.65285037150, 206.18554843720], [4.020, 0.83995823171, 20.35531939880], [5.188, 4.06503864016, 6208.29425142410], [5.307, 0.38217636096, 31441.67756975680], [3.785, 2.34369213733, 3.88133535800], [4.497, 3.27230796845, 11015.10647733480], [4.132, 0.92128915753, 3738.76143010800], [3.521, 5.97844807108, 3894.18182954220], [4.215, 1.90601120623, 245.83164622940], [3.701, 5.03069397926, 536.80451209540], [3.865, 1.82634360607, 11856.21865142450], [3.652, 1.01838584934, 16200.77272450120], [3.390, 0.97785123922, 8635.94200376320], [3.737, 2.95380107829, 3128.38876509580], [3.507, 3.71291946325, 6290.18939699220], [3.086, 3.64646921512, 10.63666534980], [3.397, 1.10590684017, 14712.31711645800], [3.334, 0.83684924911, 6496.37494542940], [2.805, 2.58504514144, 14314.16811304980], [3.650, 1.08344142571, 88860.05707098669], [3.388, 3.20185096055, 5120.60114558360], [3.252, 3.47859752062, 6133.51265285680], [2.553, 3.94869034189, 1990.74501704100], [3.520, 2.05559692878, 244287.60000722768], [2.565, 1.56071784900, 23543.23050468179], [2.621, 3.85639359951, 266.60704172180], [2.955, 3.39692949667, 9225.53927328300], [2.876, 6.02635617464, 154717.60988768269], [2.395, 1.16131956403, 10984.19235169980], [3.161, 1.32798718453, 10873.98603048040], [3.163, 5.08946464629, 21228.39202354580], [2.361, 4.27212906992, 6040.34724601740], [3.030, 1.80209931347, 35371.88726597640], [2.343, 3.57689860500, 10969.96525769820], [2.618, 2.57870156528, 22483.84857449259], [2.113, 3.71393780256, 65147.61976813770], [2.019, 0.81393923319, 170.67287061920], [2.003, 0.38091017375, 6172.86952877200], [2.506, 3.74379142438, 10575.40668294180], [2.381, 0.10581361289, 7.04623669800], [1.949, 4.86892513469, 36.02786667740], [2.074, 4.22794774570, 5650.29211067820], [1.924, 5.59460549860, 6282.09552892320], [1.949, 1.07002512703, 5230.80746680300], [1.988, 5.19736046771, 6262.30045449900], [1.887, 3.74365662683, 23.87843774780], [1.787, 1.25929682929, 12559.03815298200], [1.883, 1.90364058477, 15.25247118500], [1.816, 3.68083868442, 15110.46611986620], [1.701, 4.41105895380, 110.20632121940], [1.990, 3.93295788548, 6206.80977871580], [2.103, 0.75354917468, 13521.75144159140], [1.774, 0.48747535361, 1551.04522264800], [1.882, 0.86684493432, 22003.91463486980], [1.924, 1.22898324132, 709.93304855830], [2.009, 4.62850921980, 6037.24420376200], [1.924, 0.60231842508, 6284.05617105960], [1.596, 3.98332956992, 13916.01910964160], [1.664, 4.41939715469, 8662.24032356300], [1.971, 1.04560500503, 18209.33026366019], [1.942, 4.31335979989, 6244.94281435360], [1.476, 0.93271367331, 2379.16447357160], [1.810, 0.49112137707, 1.48447270830], [1.346, 1.51574702235, 4136.91043351620], [1.528, 5.61835711404, 6127.65545055720], [1.791, 3.22187270126, 39302.09696219600], [1.747, 3.05638656738, 18319.53658487960], [1.431, 4.51153808594, 20426.57109242200], [1.695, 0.22047718414, 25158.60171976540], [1.242, 4.46665769933, 17256.63153634140], [1.463, 4.69242679213, 14945.31617355440], [1.205, 1.86912144659, 4590.91018048900], [1.192, 2.74227166898, 12569.67481833180], [1.222, 5.18120087482, 5333.90024102160], [1.390, 5.42894648983, 143571.32428481648], [1.473, 1.70479245805, 11712.95531823080], [1.362, 2.61069503292, 6062.66320755260], [1.148, 6.03001800540, 3634.62102451840], [1.198, 5.15294130422, 10177.25767953360], [1.266, 0.11421493643, 18422.62935909819], [1.411, 1.09908857534, 3496.03282613400], [1.349, 2.99805109633, 17654.78053974960], [1.253, 2.79850152848, 167283.76158766550], [1.311, 1.60942984879, 5481.25491886760], [1.079, 6.20304501787, 3.28635741780], [1.181, 1.20653776978, 131.54196168640], [1.254, 5.45103277798, 6076.89030155420], [1.035, 2.32142722747, 7342.45778018060], [1.117, 0.38838354256, 949.17560896980], [0.966, 3.18341890851, 11087.28512591840], [1.171, 3.39635049962, 12562.62858163380], [1.121, 0.72627490378, 220.41264243880], [1.024, 2.19378315386, 11403.67699557500], [0.888, 3.91173199285, 4686.88940770680], [0.910, 1.98802695087, 735.87651353180], [0.830, 0.48984915507, 24072.92146977640], [1.096, 6.17377835617, 5436.99301524020], [0.908, 0.44959639433, 7477.52286021600], [0.974, 1.52996238356, 9623.68827669120], [0.840, 1.79543266333, 5429.87946823940], [0.778, 6.17699177946, 38.13303563780], [0.776, 4.09855402433, 14.22709400160], [1.068, 4.64200173735, 43232.30665841560], [0.954, 1.49988435748, 1162.47470440780], [0.907, 0.86986870809, 10344.29506538580], [0.931, 4.06044689031, 28766.92442448400], [0.739, 5.04368197372, 639.89728631400], [0.937, 3.46884698960, 1589.07289528380], [0.763, 5.86304932998, 16858.48253293320], [0.953, 4.20801492835, 11190.37790013700], [0.708, 1.72899988940, 13095.84266507740], [0.969, 1.64439522215, 29088.81141598500], [0.717, 0.16688678895, 11.72935283600], [0.962, 3.53092337542, 12416.58850284820], [0.747, 5.77866940346, 12592.45001978260], [0.672, 1.91095796194, 3.93215326310], [0.671, 5.46240843677, 18052.92954315780], [0.675, 6.28311558823, 4535.05943692440], [0.684, 0.39975012080, 5849.36411211460], [0.799, 0.29851185294, 12132.43996210600], [0.758, 0.96370823331, 1052.26838318840], [0.782, 5.33878339919, 13517.87010623340], [0.730, 1.70106160291, 17267.26820169119], [0.749, 2.59599901875, 11609.86254401220], [0.734, 2.78417782952, 640.87760738220], [0.688, 5.15048287468, 16496.36139620240], [0.770, 1.62469589333, 4701.11650170840], [0.633, 2.20587893893, 25934.12433108940], [0.760, 4.21317219403, 377.37360791580], [0.584, 2.13420121623, 10557.59416082380], [0.574, 0.24250054587, 9779.10867612540], [0.573, 3.16435264609, 533.21408344360], [0.685, 3.19344289472, 12146.66705610760], [0.675, 0.96179233959, 10454.50138660520], [0.648, 1.46327342555, 6268.84875598980], [0.589, 2.50543543638, 3097.88382272579], [0.551, 5.28099026956, 9388.00590941520], [0.696, 3.65342150016, 4804.20927592700], [0.669, 2.51030077026, 2388.89402044920], [0.550, 0.06883864342, 20199.09495963300], [0.629, 4.13350995675, 45892.73043315699], [0.678, 6.09190163533, 135.62532501000], [0.593, 1.50136257618, 226858.23855437007], [0.542, 3.58573645173, 6148.01076995600], [0.682, 5.02203067788, 17253.04110768959], [0.565, 4.29309238610, 11933.36796066960], [0.486, 0.77746204893, 27.40155609680], [0.503, 0.58963565969, 15671.08175940660], [0.616, 4.06539884128, 227.47613278900], [0.583, 6.12695541996, 18875.52586977400], [0.537, 2.15056440980, 21954.15760939799], [0.669, 6.06986269566, 47162.51635463520], [0.475, 0.40343842110, 6915.85958930460], [0.540, 2.83444222174, 5326.78669402080], [0.530, 5.26359885263, 10988.80815753500], [0.582, 3.24533095664, 153.77881048480], [0.641, 3.24711791371, 2107.03450754240], [0.621, 3.09698523779, 33019.02111220460], [0.466, 3.14982372198, 10440.27429260360], [0.466, 0.90708835657, 5966.68398033480], [0.528, 0.81926454470, 813.55028395980], [0.603, 3.81378921927, 316428.22867391503], [0.559, 1.81894804124, 17996.03116822220], [0.437, 2.28625594435, 6303.85124548380], [0.518, 4.86069178322, 20597.24396304120], [0.424, 6.23520018693, 6489.26139842860], [0.518, 6.17617826756, 0.24381748350], [0.404, 5.72804304258, 5642.19824260920], [0.458, 1.34117773915, 6287.00800325450], [0.548, 5.68454458320, 155427.54293624099], [0.547, 1.03391472061, 3646.35037735440], [0.428, 4.69800981138, 846.08283475120], [0.413, 6.02520699406, 6279.48542133960], [0.534, 3.03030638223, 66567.48586525429], [0.383, 1.49056949125, 19800.94595622480], [0.410, 5.28319622279, 18451.07854656599], [0.352, 4.68891600359, 4907.30205014560], [0.480, 5.36572651091, 348.92442044800], [0.344, 5.89157452896, 6546.15977336420], [0.340, 0.37557426440, 13119.72110282519], [0.434, 4.98417785901, 6702.56049386660], [0.332, 2.68902519126, 29296.61538957860], [0.448, 2.16478480251, 5905.70224207560], [0.344, 2.06546633735, 49.75702547180], [0.315, 1.24023811803, 4061.21921539440], [0.324, 2.30897526929, 5017.50837136500], [0.413, 0.17171692962, 6286.66627864320], [0.431, 3.86601101393, 12489.88562870720], [0.349, 4.55372342974, 4933.20844033260], [0.323, 0.41971136084, 10770.89325626180], [0.341, 2.68612860807, 11.04570026390], [0.316, 3.52936906658, 17782.73207278420], [0.315, 5.63357264999, 568.82187402740], [0.340, 3.83571212349, 10660.68693504240], [0.297, 0.62691416712, 20995.39296644940], [0.405, 1.00085779471, 16460.33352952499], [0.414, 1.21998752076, 51092.72605085480], [0.336, 4.71465945226, 6179.98307577280], [0.361, 3.71227508354, 28237.23345938940], [0.385, 6.21925225757, 24356.78078864160], [0.327, 1.05606504715, 11919.14086666800], [0.327, 6.14222420989, 6254.62666252360], [0.268, 2.47224339737, 664.75604513000], [0.269, 1.86207884109, 23141.55838292460], [0.345, 0.93461290184, 6058.73105428950], [0.296, 4.51687557180, 6418.14093002680], [0.353, 4.50033653082, 36949.23080842420], [0.260, 4.04963546305, 6525.80445396540], [0.298, 2.20046722622, 156137.47598479927], [0.253, 3.49900838384, 29864.33402730900], [0.254, 2.44901693835, 5331.35744374080], [0.296, 0.84347588787, 5729.50644714900], [0.298, 1.29194706125, 22805.73556599360], [0.241, 2.00721280805, 16737.57723659660], [0.311, 1.23668016334, 6281.59137728310], [0.240, 2.51650377121, 6245.04817735560], [0.332, 3.55576945724, 7668.63742494250], [0.264, 4.44052061202, 12964.30070339100], [0.257, 1.79654471948, 11080.17157891760], [0.260, 3.33077598420, 5888.44996493220], [0.285, 0.30886361430, 11823.16163945020], [0.290, 5.70141882483, 77.67377042800], [0.255, 4.00939664440, 5881.40372823420], [0.253, 4.73318493678, 16723.35014259500], [0.228, 0.95333661324, 5540.08578945880], [0.319, 1.38633229189, 163096.18036118348], [0.224, 1.65156322696, 10027.90319572920], [0.226, 0.34106460604, 17796.95916678580], [0.236, 4.19817431922, 19.66976089979], [0.280, 4.14080268970, 12539.85338018300], [0.275, 5.50306930248, 32.53255079140], [0.223, 5.23334210294, 56.89837493560], [0.217, 6.08587881787, 6805.65326808520], [0.280, 4.52472044653, 6016.46880826960], [0.227, 5.06509843737, 6277.55292568400], [0.226, 5.17755154305, 11720.06886523160], [0.245, 3.96486270306, 22.77520145080], [0.220, 4.72078081970, 6.62855890001], [0.207, 5.71701403951, 41.55079098480], [0.204, 3.91227411250, 2699.73481931760], [0.209, 0.86881969011, 6321.10352262720], [0.200, 2.11984445273, 4274.51831083240], [0.200, 5.39839888163, 6019.99192661860], [0.209, 5.67606291663, 11293.47067435560], [0.252, 1.64965729351, 9380.95967271720], [0.275, 5.04826903506, 73.29712585900], [0.208, 1.88207277133, 11300.58422135640], [0.272, 0.74640926842, 1975.49254585600], [0.199, 3.30836672397, 22743.40937951640], [0.269, 4.48560812155, 64471.99124174489], [0.192, 2.17464236325, 5863.59120611620], [0.228, 5.85373115869, 128.01884333740], [0.261, 2.64321183295, 55022.93574707440], [0.220, 5.75012110079, 29.42950853600], [0.187, 4.03230554718, 467.96499035440], [0.200, 5.60556112058, 1066.49547719000], [0.231, 1.09802712785, 12341.80690428090], [0.199, 0.29500625200, 149.56319713460], [0.249, 5.10473210814, 7875.67186362420], [0.208, 0.93013835019, 14919.01785375460], [0.179, 0.87104393079, 12721.57209941700], [0.203, 1.56920753653, 28286.99048486120], [0.179, 2.47036386443, 16062.18452611680], [0.198, 3.54061588502, 30.91412563500], [0.171, 3.45356518113, 5327.47610838280], [0.183, 0.72325421604, 6272.03014972750], [0.216, 2.97174580686, 19402.79695281660], [0.168, 2.51550550242, 23937.85638974100], [0.195, 0.09045393425, 156.40072050240], [0.179, 4.49471798090, 31415.37924995700], [0.216, 0.42177594328, 23539.70738633280], [0.189, 0.37542530191, 9814.60410029120], [0.218, 2.36835880025, 16627.37091537720], [0.166, 4.23182968446, 16840.67001081519], [0.200, 2.02153258098, 16097.67995028260], [0.169, 0.91318727000, 95.97922721780], [0.211, 5.73370637657, 151.89728108520], [0.204, 0.42643085174, 515.46387109300], [0.212, 3.00233538977, 12043.57428188900], [0.192, 5.46153589821, 6379.05507720920], [0.165, 1.38698167064, 4171.42553661380], [0.160, 6.23798383332, 202.25339517410], [0.215, 0.20889073407, 5621.84292321040], [0.181, 4.12439203622, 13341.67431130680], [0.153, 1.24460848836, 29826.30635467320], [0.150, 3.12999753018, 799.82112516540], [0.175, 4.55671604437, 239424.39025435288], [0.192, 1.33928820063, 394.62588505920], [0.149, 2.65697593276, 21.33564046700], [0.146, 5.58021191726, 412.37109687440], [0.156, 3.75650175503, 12323.42309600880], [0.143, 3.75708566606, 58864.54391814630], [0.143, 3.28248547724, 29.82143814880], [0.144, 1.07862546598, 1265.56747862640], [0.148, 0.23389236655, 10021.83728009940], [0.193, 5.92751083086, 40879.44050464380], [0.140, 4.97612440269, 158.94351778320], [0.148, 2.61640453469, 17157.06188047180], [0.141, 3.66871308723, 26084.02180621620], [0.147, 5.09968173403, 661.23292678100], [0.146, 4.96885605695, 57375.80190084620], [0.142, 0.78678347839, 12779.45079542080], [0.134, 4.79432636012, 111.18664228760], [0.140, 1.27748013377, 107.66352393860], [0.169, 2.74893543762, 26735.94526221320], [0.165, 3.95288000638, 6357.85744855870], [0.183, 5.43418358741, 369.69981594040], [0.134, 3.09132862833, 17.81252211800], [0.132, 3.05633896779, 22490.96212149340], [0.134, 4.09472795832, 6599.46771964800], [0.181, 4.22950689891, 966.97087743560], [0.152, 5.28885894415, 12669.24447420140], [0.150, 5.86819430908, 97238.62754448749], [0.142, 5.87266532526, 22476.73502749179], [0.145, 5.07330784304, 87.30820453981], [0.133, 5.65471067133, 31.97230581680], [0.124, 2.83326217072, 12566.21901028560], [0.135, 3.12861731644, 32217.20018108080], [0.137, 0.86487461904, 9924.81042151060], [0.172, 1.98369595114, 174242.46596404971], [0.170, 4.41115280254, 327574.51427678124], [0.151, 0.46542099527, 39609.65458316560], [0.148, 2.13439571118, 491.66329245880], [0.153, 3.78801830344, 17363.24742890899], [0.165, 5.31654110459, 16943.76278503380], [0.165, 4.06747587817, 58953.14544329400], [0.118, 0.63846333239, 6.06591562980], [0.159, 0.86086959274, 221995.02880149524], [0.119, 5.96432932413, 1385.89527633620], [0.114, 5.16516114595, 25685.87280280800], [0.112, 3.39403722178, 21393.54196985760], [0.112, 4.92889233335, 56.80326216980], [0.119, 2.40637635942, 18635.92845453620], [0.115, 0.23374479051, 418.92439890060], [0.122, 0.93575234049, 24492.40611365159], [0.115, 4.58880032176, 26709.64694241340], [0.130, 4.85539251000, 22345.26037610820], [0.140, 1.09413073202, 44809.65020086340], [0.112, 6.05401806281, 433.71173787680], [0.104, 1.54931540602, 127.95153303460], [0.105, 4.82620858888, 33794.54372352860], [0.102, 4.12448497391, 15664.03552270859], [0.107, 4.67919356465, 77690.75950573849], [0.118, 4.52320170120, 19004.64794940840], [0.107, 5.71774478555, 77736.78343050249], [0.143, 1.81201813018, 4214.06901508480], [0.125, 1.14419195615, 625.67019231240], [0.124, 3.27736514057, 12566.08438968000], [0.110, 1.08682570828, 2787.04302385740], [0.105, 1.78318141871, 18139.29450141590], [0.102, 4.75119578149, 12242.64628332540], [0.137, 1.43510636754, 86464.61331683119], [0.101, 4.91289409429, 401.67212175720], [0.129, 1.23567904485, 12029.34718788740], [0.138, 2.45654707999, 7576.56007357400], [0.103, 0.40004073416, 90279.92316810328], [0.108, 0.98989774940, 5636.06501667660], [0.117, 5.17362872063, 34520.30930938080], [0.100, 3.95534628189, 5547.19933645960], [0.098, 1.28118280598, 21548.96236929180], [0.097, 3.34717130592, 16310.97904572060], [0.098, 4.37041908717, 34513.26307268280], [0.125, 2.72164432960, 24065.80792277559], [0.102, 0.66938025772, 10239.58386601080], [0.119, 1.21689479331, 1478.86657406440], [0.094, 1.99595224256, 13362.44970679920], [0.094, 4.30965982872, 26880.31981303260], [0.095, 2.89807657534, 34911.41207609100], [0.106, 1.00156653590, 16522.65971600220], [0.097, 0.89642320201, 71980.63357473118], [0.116, 4.19967201116, 206.70073729660], [0.099, 1.37437847718, 1039.02661079040], [0.126, 3.21642544972, 305281.94307104882], [0.094, 0.68997876060, 7834.12107263940], [0.094, 5.58132218606, 3104.93005942380], [0.095, 3.03823741110, 8982.81066930900], [0.108, 0.52696637156, 276.74577186440], [0.124, 3.43899862683, 172146.97134054030], [0.102, 1.04031728553, 95143.13292097810], [0.104, 3.39218586218, 290.97286586600], [0.110, 3.68205877433, 22380.75580027400], [0.117, 0.78475956902, 83286.91426955358], [0.083, 0.18241793425, 15141.39079431200], [0.089, 4.45371820659, 792.77488846740], [0.082, 4.80703651241, 6819.88036208680], [0.087, 3.43122851097, 27707.54249429480], [0.101, 5.32081603011, 2301.58581590939], [0.082, 0.87060089842, 10241.20229116720], [0.086, 4.61919461931, 36147.40987730040], [0.095, 2.87032884659, 23020.65308658799], [0.088, 3.21133165690, 33326.57873317420], [0.080, 1.84900424847, 21424.46664430340], [0.101, 4.18796434479, 30666.15495843280], [0.107, 5.77864921649, 34115.11406927460], [0.104, 1.08739495962, 6288.59877429880], [0.110, 3.32898859416, 72140.62866668739], [0.087, 4.40657711727, 142.17862703620], [0.109, 1.94546030825, 24279.10701821359], [0.087, 4.32472045435, 742.99006053260], [0.107, 4.91580912547, 277.03499374140], [0.088, 2.10180220766, 26482.17080962440], [0.086, 4.01887374432, 12491.37010141550], [0.106, 5.49092372854, 62883.35513951360], [0.080, 6.19781316983, 6709.67404086740], [0.088, 2.09872810657, 238004.52415723630], [0.083, 4.90662164029, 51.28033786241], [0.095, 4.13387406591, 18216.44381066100], [0.078, 6.06949391680, 148434.53403769128], [0.079, 3.03048221644, 838.96928775040], [0.074, 5.49813051211, 29026.48522950779], [0.073, 3.05008665738, 567.71863773040], [0.084, 0.46604373274, 45.14121963660], [0.093, 2.52267536308, 48739.85989708300], [0.076, 1.76418124905, 41654.96311596780], [0.067, 5.77851227793, 6311.52503745920], [0.062, 3.32967880172, 15508.61512327440], [0.079, 5.59773841328, 71960.38658322369], [0.057, 3.90629505268, 5999.21653112620], [0.061, 0.05695043232, 7856.89627409019], [0.061, 5.63297958433, 7863.94251078820], [0.065, 3.72178394016, 12573.26524698360], [0.057, 4.18217219541, 26087.90314157420], [0.066, 3.92262333487, 69853.35207568129], [0.053, 5.51119362045, 77710.24834977149], [0.053, 4.88573986961, 77717.29458646949], [0.062, 2.88876342225, 9411.46461508720], [0.051, 1.12657183874, 82576.98122099529], [0.045, 2.95671076719, 24602.61243487099], [0.040, 5.55145719241, 12565.17137891460], [0.039, 1.20838190039, 18842.11400297339], [0.045, 3.18590558749, 45585.17281218740], [0.049, 2.44790934886, 13613.80427733600], ], # L1 [ [628331966747.491, 0.00000000000, 0.00000000000], [206058.863, 2.67823455584, 6283.07584999140], [4303.430, 2.63512650414, 12566.15169998280], [425.264, 1.59046980729, 3.52311834900], [108.977, 2.96618001993, 1577.34354244780], [93.478, 2.59212835365, 18849.22754997420], [119.261, 5.79557487799, 26.29831979980], [72.122, 1.13846158196, 529.69096509460], [67.768, 1.87472304791, 398.14900340820], [67.327, 4.40918235168, 5507.55323866740], [59.027, 2.88797038460, 5223.69391980220], [55.976, 2.17471680261, 155.42039943420], [45.407, 0.39803079805, 796.29800681640], [36.369, 0.46624739835, 775.52261132400], [28.958, 2.64707383882, 7.11354700080], [19.097, 1.84628332577, 5486.77784317500], [20.844, 5.34138275149, 0.98032106820], [18.508, 4.96855124577, 213.29909543800], [16.233, 0.03216483047, 2544.31441988340], [17.293, 2.99116864949, 6275.96230299060], [15.832, 1.43049285325, 2146.16541647520], [14.615, 1.20532366323, 10977.07880469900], [11.877, 3.25804815607, 5088.62883976680], [11.514, 2.07502418155, 4694.00295470760], [9.721, 4.23925472239, 1349.86740965880], [9.969, 1.30262991097, 6286.59896834040], [9.452, 2.69957062864, 242.72860397400], [12.461, 2.83432285512, 1748.01641306700], [11.808, 5.27379790480, 1194.44701022460], [8.577, 5.64475868067, 951.71840625060], [10.641, 0.76614199202, 553.56940284240], [7.576, 5.30062664886, 2352.86615377180], [5.834, 1.76649917904, 1059.38193018920], [6.385, 2.65033984967, 9437.76293488700], [5.223, 5.66135767624, 71430.69561812909], [5.305, 0.90857521574, 3154.68708489560], [6.101, 4.66632584188, 4690.47983635860], [4.330, 0.24102555403, 6812.76681508600], [5.041, 1.42490103709, 6438.49624942560], [4.259, 0.77355900599, 10447.38783960440], [5.198, 1.85353197345, 801.82093112380], [3.744, 2.00119516488, 8031.09226305840], [3.558, 2.42901552681, 14143.49524243060], [3.372, 3.86210700128, 1592.59601363280], [3.374, 0.88776219727, 12036.46073488820], [3.175, 3.18785710594, 4705.73230754360], [3.221, 0.61599835472, 8429.24126646660], [4.132, 5.23992859705, 7084.89678111520], [2.970, 6.07026318493, 4292.33083295040], [2.900, 2.32464208411, 20.35531939880], [3.504, 4.79975694359, 6279.55273164240], [2.950, 1.43108874817, 5746.27133789600], [2.697, 4.80368225199, 7234.79425624200], [2.531, 6.22290682655, 6836.64525283380], [2.745, 0.93466065396, 5760.49843189760], [3.250, 3.39954640038, 7632.94325965020], [2.277, 5.00277837672, 17789.84561978500], [2.075, 3.95534978634, 10213.28554621100], [2.061, 2.22411683077, 5856.47765911540], [2.252, 5.67166499885, 11499.65622279280], [2.148, 5.20184578235, 11513.88331679440], [1.886, 0.53198320577, 3340.61242669980], [1.875, 4.73511970207, 83996.84731811189], [2.060, 2.54987293999, 25132.30339996560], [1.794, 1.47435409831, 4164.31198961300], [1.778, 3.02473091781, 5.52292430740], [2.029, 0.90960209983, 6256.77753019160], [2.075, 2.26767270157, 522.57741809380], [1.772, 3.02622802353, 5753.38488489680], [1.569, 6.12410242782, 5216.58037280140], [1.590, 4.63713748247, 3.28635741780], [1.542, 4.20004448567, 13367.97263110660], [1.427, 1.19088061711, 3894.18182954220], [1.375, 3.09301252193, 135.06508003540], [1.359, 4.24532506641, 426.59819087600], [1.340, 5.76511818622, 6040.34724601740], [1.284, 3.08524663344, 5643.17856367740], [1.250, 3.07748157144, 11926.25441366880], [1.551, 3.07665451458, 6681.22485339960], [1.268, 2.09196018331, 6290.18939699220], [1.144, 3.24444699514, 12168.00269657460], [1.248, 3.44504937285, 536.80451209540], [1.118, 2.31829670425, 16730.46368959580], [1.105, 5.31966001019, 23.87843774780], [1.051, 3.75015946014, 7860.41939243920], [1.025, 2.44688534235, 1990.74501704100], [0.962, 0.81771017882, 3.88133535800], [0.910, 0.41727865299, 7079.37385680780], [0.883, 5.16833917651, 11790.62908865880], [0.957, 4.07673573735, 6127.65545055720], [1.110, 3.90096793825, 11506.76976979360], [0.802, 3.88778875582, 10973.55568635000], [0.780, 2.39934293755, 1589.07289528380], [0.758, 1.30034364248, 103.09277421860], [0.749, 4.96275803300, 6496.37494542940], [0.765, 3.36312388424, 36.02786667740], [0.915, 5.41543742089, 206.18554843720], [0.776, 2.57589093871, 11371.70468975820], [0.772, 3.98369209464, 955.59974160860], [0.749, 5.17890001805, 10969.96525769820], [0.806, 0.34218864254, 9917.69687450980], [0.728, 5.20962563787, 38.02767263580], [0.685, 2.77592961854, 20.77539549240], [0.636, 4.28242193632, 28.44918746780], [0.608, 5.63278508906, 10984.19235169980], [0.704, 5.60738823665, 3738.76143010800], [0.685, 0.38876148682, 15.25247118500], [0.601, 0.73489602442, 419.48464387520], [0.716, 2.65279791438, 6309.37416979120], [0.584, 5.54502568227, 17298.18232732620], [0.650, 1.13379656406, 7058.59846131540], [0.688, 2.59683891779, 3496.03282613400], [0.485, 0.44467180946, 12352.85260454480], [0.528, 2.74936967681, 3930.20969621960], [0.597, 5.27668281777, 10575.40668294180], [0.583, 3.18929067810, 4732.03062734340], [0.526, 5.01697321546, 5884.92684658320], [0.540, 1.29175137075, 640.87760738220], [0.473, 5.49953306970, 5230.80746680300], [0.406, 5.21248452189, 220.41264243880], [0.395, 1.87474483222, 16200.77272450120], [0.370, 3.84921354713, 18073.70493865020], [0.367, 0.88533542778, 6283.14316029419], [0.379, 0.37983009325, 10177.25767953360], [0.356, 3.84145204913, 11712.95531823080], [0.374, 5.01577520608, 7.04623669800], [0.381, 4.30250406634, 6062.66320755260], [0.471, 0.86381834647, 6069.77675455340], [0.367, 1.32943839763, 6283.00853968860], [0.460, 5.19667219575, 6284.05617105960], [0.333, 5.54256205741, 4686.88940770680], [0.341, 4.36522989934, 7238.67559160000], [0.336, 4.00205876835, 3097.88382272579], [0.359, 6.22679790284, 245.83164622940], [0.307, 2.35299010924, 170.67287061920], [0.343, 3.77164927143, 6076.89030155420], [0.296, 5.44152227481, 17260.15465469040], [0.328, 0.13837875384, 11015.10647733480], [0.268, 1.13904550630, 12569.67481833180], [0.263, 0.00538633678, 4136.91043351620], [0.282, 5.04399837480, 7477.52286021600], [0.288, 3.13401177517, 12559.03815298200], [0.259, 0.93882269387, 5642.19824260920], [0.292, 1.98420020514, 12132.43996210600], [0.247, 3.84244798532, 5429.87946823940], [0.245, 5.70467521726, 65147.61976813770], [0.241, 0.99480969552, 3634.62102451840], [0.246, 3.06168069935, 110.20632121940], [0.239, 6.11855909114, 11856.21865142450], [0.263, 0.66348415419, 21228.39202354580], [0.262, 1.51070507866, 12146.66705610760], [0.230, 1.75927314884, 9779.10867612540], [0.223, 2.00967043606, 6172.86952877200], [0.246, 1.10411690865, 6282.09552892320], [0.221, 3.03945240854, 8635.94200376320], [0.214, 4.03840869663, 14314.16811304980], [0.236, 5.46915070580, 13916.01910964160], [0.224, 4.68408089456, 24072.92146977640], [0.212, 2.13695625494, 5849.36411211460], [0.207, 3.07724246401, 11.72935283600], [0.207, 6.10306282747, 23543.23050468179], [0.266, 1.00709566823, 2388.89402044920], [0.217, 6.27837036335, 17267.26820169119], [0.204, 2.34615348695, 266.60704172180], [0.195, 5.55015549753, 6133.51265285680], [0.188, 2.52667166175, 6525.80445396540], [0.185, 0.90960768344, 18319.53658487960], [0.177, 1.73429218289, 154717.60988768269], [0.187, 4.76483647432, 4535.05943692440], [0.186, 4.63080493407, 10440.27429260360], [0.215, 2.81255454560, 7342.45778018060], [0.172, 1.45551888559, 9225.53927328300], [0.162, 3.30661909388, 639.89728631400], [0.168, 2.17671416605, 27.40155609680], [0.160, 1.68164180475, 15110.46611986620], [0.158, 0.13519771874, 13095.84266507740], [0.183, 0.56281322071, 13517.87010623340], [0.179, 3.58450811616, 87.30820453981], [0.152, 2.84070476818, 5650.29211067820], [0.182, 0.44065530624, 17253.04110768959], [0.160, 5.95767264171, 4701.11650170840], [0.142, 1.46290137520, 11087.28512591840], [0.142, 2.04464036087, 20426.57109242200], [0.131, 5.40912137746, 2699.73481931760], [0.144, 2.07312090485, 25158.60171976540], [0.147, 6.15106982168, 9623.68827669120], [0.141, 5.55739979498, 10454.50138660520], [0.135, 0.06098110407, 16723.35014259500], [0.124, 5.81218025669, 17256.63153634140], [0.124, 2.36293551623, 4933.20844033260], [0.126, 3.47435905118, 22483.84857449259], [0.159, 5.63954754618, 5729.50644714900], [0.123, 3.92815963256, 17996.03116822220], [0.148, 3.02509280598, 1551.04522264800], [0.120, 5.91904349732, 6206.80977871580], [0.134, 3.11122937825, 21954.15760939799], [0.119, 5.52141123450, 709.93304855830], [0.122, 3.00813429479, 19800.94595622480], [0.127, 1.37618620001, 14945.31617355440], [0.141, 2.56889468729, 1052.26838318840], [0.123, 2.83671175442, 11919.14086666800], [0.118, 0.81934438215, 5331.35744374080], [0.151, 2.68731829165, 11769.85369316640], [0.119, 5.08835797638, 5481.25491886760], [0.153, 2.46021790779, 11933.36796066960], [0.108, 1.04936452145, 11403.67699557500], [0.128, 0.99794735107, 8827.39026987480], [0.144, 2.54869747042, 227.47613278900], [0.150, 4.50631437136, 2379.16447357160], [0.107, 1.79272017026, 13119.72110282519], [0.107, 4.43556814486, 18422.62935909819], [0.109, 0.29269062317, 16737.57723659660], [0.141, 3.18979826258, 6262.30045449900], [0.122, 4.23040027813, 29.42950853600], [0.111, 5.16954029551, 17782.73207278420], [0.100, 3.52213872761, 18052.92954315780], [0.108, 1.08514212991, 16858.48253293320], [0.106, 1.96085248410, 74.78159856730], [0.110, 2.30582372873, 16460.33352952499], [0.097, 3.50918940210, 5333.90024102160], [0.099, 3.56417337974, 735.87651353180], [0.094, 5.01857894228, 3128.38876509580], [0.097, 1.65579893894, 533.21408344360], [0.092, 0.89217162285, 29296.61538957860], [0.123, 3.16062050433, 9380.95967271720], [0.102, 1.20493500565, 23020.65308658799], [0.088, 2.21296088224, 12721.57209941700], [0.089, 1.54264720310, 20199.09495963300], [0.113, 4.83320707870, 16496.36139620240], [0.121, 6.19860353182, 9388.00590941520], [0.089, 4.08082274765, 22805.73556599360], [0.098, 1.09181832830, 12043.57428188900], [0.086, 1.13655027605, 143571.32428481648], [0.088, 5.96980472191, 107.66352393860], [0.082, 5.01340404594, 22003.91463486980], [0.094, 1.69615700473, 23006.42599258639], [0.081, 3.00657814365, 2118.76386037840], [0.098, 1.39215287161, 8662.24032356300], [0.077, 3.33555190840, 15720.83878487840], [0.082, 5.86880116464, 2787.04302385740], [0.076, 5.67183650604, 14.22709400160], [0.081, 6.16619455699, 1039.02661079040], [0.076, 3.21449884756, 111.18664228760], [0.078, 1.37531518377, 21947.11137270000], [0.074, 3.58814195051, 11609.86254401220], [0.077, 4.84846488388, 22743.40937951640], [0.090, 1.48869013606, 15671.08175940660], [0.082, 3.48618399109, 29088.81141598500], [0.069, 3.55746476593, 4590.91018048900], [0.069, 1.93625656075, 135.62532501000], [0.070, 2.66548322237, 18875.52586977400], [0.069, 5.41478093731, 26735.94526221320], [0.079, 5.15154513662, 12323.42309600880], [0.094, 3.62899392448, 77713.77146812050], [0.078, 4.17011182047, 1066.49547719000], [0.071, 3.89435637865, 22779.43724619380], [0.063, 4.53968787714, 8982.81066930900], [0.069, 0.96028230548, 14919.01785375460], [0.076, 3.29092216589, 2942.46342329160], [0.063, 4.09167842893, 16062.18452611680], [0.065, 3.34580407184, 51.28033786241], [0.065, 5.75757544877, 52670.06959330260], [0.068, 5.75884067555, 21424.46664430340], [0.057, 5.45122399850, 12592.45001978260], [0.057, 5.25043362558, 20995.39296644940], [0.073, 0.53299090807, 2301.58581590939], [0.070, 4.31243357502, 19402.79695281660], [0.067, 2.53852336668, 377.37360791580], [0.056, 3.20816844695, 24889.57479599160], [0.053, 3.17816599142, 18451.07854656599], [0.053, 3.61529270216, 77.67377042800], [0.053, 0.45467549335, 30666.15495843280], [0.061, 0.14807288453, 23013.53953958720], [0.051, 3.32803972907, 56.89837493560], [0.052, 3.41177624177, 23141.55838292460], [0.058, 3.13638677202, 309.27832265580], [0.070, 2.50592323465, 31415.37924995700], [0.052, 5.10673376738, 17796.95916678580], [0.067, 6.27917920454, 22345.26037610820], [0.050, 0.42577644151, 25685.87280280800], [0.048, 0.70204553333, 1162.47470440780], [0.066, 3.64350022359, 15265.88651930040], [0.050, 5.74382917440, 19.66976089979], [0.050, 4.69825387775, 28237.23345938940], [0.047, 5.74015846442, 12139.55350910680], [0.054, 1.97301333704, 23581.25817731760], [0.049, 4.98223579027, 10021.83728009940], [0.046, 5.41431705539, 33019.02111220460], [0.051, 1.23882053879, 12539.85338018300], [0.046, 2.41369976086, 98068.53671630539], [0.044, 0.80750593746, 167283.76158766550], [0.045, 4.39613584445, 433.71173787680], [0.044, 2.57358208785, 12964.30070339100], [0.046, 0.26142733448, 11.04570026390], [0.045, 2.46230645202, 51868.24866217880], [0.048, 0.89551707131, 56600.27928952220], [0.057, 1.86416707010, 25287.72379939980], [0.042, 5.26377513431, 26084.02180621620], [0.049, 3.17757670611, 6303.85124548380], [0.052, 3.65266055509, 7872.14874527520], [0.040, 1.81891629936, 34596.36465465240], [0.043, 1.94164978061, 1903.43681250120], [0.041, 0.74461854136, 23937.85638974100], [0.048, 6.26034008181, 28286.99048486120], [0.045, 5.45575017530, 60530.48898574180], [0.040, 2.92105728682, 21548.96236929180], [0.040, 0.04502010161, 38526.57435087200], [0.053, 3.64791042082, 11925.27409260060], [0.041, 5.04048954693, 27832.03821928320], [0.042, 5.19292937193, 19004.64794940840], [0.040, 2.57120233428, 24356.78078864160], [0.038, 3.49190341464, 226858.23855437007], [0.039, 4.61184303844, 95.97922721780], [0.043, 2.20648228147, 13521.75144159140], [0.040, 5.83461945819, 16193.65917750039], [0.045, 3.73714372195, 7875.67186362420], [0.043, 1.14078465002, 49.75702547180], [0.037, 1.29390383811, 310.84079886840], [0.038, 0.95970925950, 664.75604513000], [0.037, 4.27532649462, 6709.67404086740], [0.038, 2.20108541046, 28628.33622609960], [0.039, 0.85957361635, 16522.65971600220], [0.040, 4.35214003837, 48739.85989708300], [0.036, 1.68167662194, 10344.29506538580], [0.040, 5.13217319067, 15664.03552270859], [0.036, 3.72187132496, 30774.50164257480], [0.036, 3.32158458257, 16207.88627150200], [0.045, 3.94202418608, 10988.80815753500], [0.039, 1.51948786199, 12029.34718788740], [0.026, 3.87685883180, 6262.72053059260], [0.024, 4.91804163466, 19651.04848109800], [0.023, 0.29300197709, 13362.44970679920], [0.021, 3.18605672363, 6277.55292568400], [0.021, 6.07546891132, 18139.29450141590], [0.022, 2.31199937177, 6303.43116939020], [0.021, 3.58418394393, 18209.33026366019], [0.026, 2.06801296900, 12573.26524698360], [0.021, 1.56857722317, 13341.67431130680], [0.024, 5.72605158675, 29864.33402730900], [0.024, 1.40237993205, 14712.31711645800], [0.025, 5.71466092822, 25934.12433108940], ], # L2 [ [52918.870, 0.00000000000, 0.00000000000], [8719.837, 1.07209665242, 6283.07584999140], [309.125, 0.86728818832, 12566.15169998280], [27.339, 0.05297871691, 3.52311834900], [16.334, 5.18826691036, 26.29831979980], [15.752, 3.68457889430, 155.42039943420], [9.541, 0.75742297675, 18849.22754997420], [8.937, 2.05705419118, 77713.77146812050], [6.952, 0.82673305410, 775.52261132400], [5.064, 4.66284525271, 1577.34354244780], [4.061, 1.03057162962, 7.11354700080], [3.463, 5.14074632811, 796.29800681640], [3.169, 6.05291851171, 5507.55323866740], [3.020, 1.19246506441, 242.72860397400], [2.886, 6.11652627155, 529.69096509460], [3.810, 3.44050803490, 5573.14280143310], [2.714, 0.30637881025, 398.14900340820], [2.371, 4.38118838167, 5223.69391980220], [2.538, 2.27992810679, 553.56940284240], [2.079, 3.75435330484, 0.98032106820], [1.675, 0.90216407959, 951.71840625060], [1.534, 5.75900462759, 1349.86740965880], [1.224, 2.97328088405, 2146.16541647520], [1.449, 4.36415913970, 1748.01641306700], [1.341, 3.72061130861, 1194.44701022460], [1.254, 2.94846826628, 6438.49624942560], [0.999, 5.98640014468, 6286.59896834040], [0.917, 4.79788687522, 5088.62883976680], [0.828, 3.31321076572, 213.29909543800], [1.103, 1.27104454479, 161000.68573767410], [0.762, 3.41582762988, 5486.77784317500], [1.044, 0.60409577691, 3154.68708489560], [0.887, 5.23465144638, 7084.89678111520], [0.645, 1.60096192515, 2544.31441988340], [0.681, 3.43155669169, 4694.00295470760], [0.605, 2.47806340546, 10977.07880469900], [0.706, 6.19393222575, 4690.47983635860], [0.643, 1.98042503148, 801.82093112380], [0.502, 1.44394375363, 6836.64525283380], [0.490, 2.34129524194, 1592.59601363280], [0.458, 1.30876448575, 4292.33083295040], [0.431, 0.03526421494, 7234.79425624200], [0.379, 3.17030522615, 6309.37416979120], [0.348, 0.99049550009, 6040.34724601740], [0.386, 1.57019797263, 71430.69561812909], [0.347, 0.67013291338, 1059.38193018920], [0.458, 3.81499443681, 149854.40013480789], [0.302, 1.91760044838, 10447.38783960440], [0.307, 3.55343347416, 8031.09226305840], [0.395, 4.93701776616, 7632.94325965020], [0.314, 3.18093696547, 2352.86615377180], [0.282, 4.41936437052, 9437.76293488700], [0.276, 2.71314254553, 3894.18182954220], [0.298, 2.52037474210, 6127.65545055720], [0.230, 1.37790215549, 4705.73230754360], [0.252, 0.55330133471, 6279.55273164240], [0.255, 5.26570187369, 6812.76681508600], [0.275, 0.67264264272, 25132.30339996560], [0.178, 0.92820785174, 1990.74501704100], [0.221, 0.63897368842, 6256.77753019160], [0.155, 0.77319790838, 14143.49524243060], [0.150, 2.40470465561, 426.59819087600], [0.196, 6.06877865012, 640.87760738220], [0.137, 2.21679460145, 8429.24126646660], [0.127, 3.26094223174, 17789.84561978500], [0.128, 5.47237279946, 12036.46073488820], [0.122, 2.16291082757, 10213.28554621100], [0.118, 0.45789822268, 7058.59846131540], [0.141, 2.34932647403, 11506.76976979360], [0.100, 0.85621569847, 6290.18939699220], [0.092, 5.10587476002, 7079.37385680780], [0.126, 2.65428307012, 88860.05707098669], [0.106, 5.85646710022, 7860.41939243920], [0.084, 3.57457554262, 16730.46368959580], [0.089, 4.21433259618, 83996.84731811189], [0.097, 5.57938280855, 13367.97263110660], [0.102, 2.05853060226, 87.30820453981], [0.080, 4.73792651816, 11926.25441366880], [0.080, 5.41418965044, 10973.55568635000], [0.106, 4.10978997399, 3496.03282613400], [0.102, 3.62650006043, 244287.60000722768], [0.075, 4.89483161769, 5643.17856367740], [0.087, 0.42863750683, 11015.10647733480], [0.069, 1.88908760720, 10177.25767953360], [0.089, 1.35567273119, 6681.22485339960], [0.066, 0.99455837265, 6525.80445396540], [0.067, 5.51240997070, 3097.88382272579], [0.076, 2.72016814799, 4164.31198961300], [0.063, 1.44349902540, 9917.69687450980], [0.078, 3.51469733747, 11856.21865142450], [0.085, 0.50956043858, 10575.40668294180], [0.067, 3.62043033405, 16496.36139620240], [0.055, 5.24637517308, 3340.61242669980], [0.048, 5.43966777314, 20426.57109242200], [0.064, 5.79535817813, 2388.89402044920], [0.046, 5.43499966519, 6275.96230299060], [0.050, 3.86263598617, 5729.50644714900], [0.044, 1.52269529228, 12168.00269657460], [0.057, 4.96352373486, 14945.31617355440], [0.045, 1.00861230160, 8635.94200376320], [0.043, 3.30685683359, 9779.10867612540], [0.042, 0.63481258930, 2699.73481931760], [0.041, 5.67996766641, 11712.95531823080], [0.056, 4.34024451468, 90955.55169449610], [0.041, 5.81722212845, 709.93304855830], [0.053, 6.17052087143, 233141.31440436150], [0.037, 3.12495025087, 16200.77272450120], [0.035, 5.76973458495, 12569.67481833180], [0.037, 0.31656444326, 24356.78078864160], [0.035, 0.96229051027, 17298.18232732620], [0.033, 5.23130355867, 5331.35744374080], [0.035, 0.62517020593, 25158.60171976540], [0.035, 0.80004512129, 13916.01910964160], [0.037, 2.89336088688, 12721.57209941700], [0.030, 4.50198402401, 23543.23050468179], [0.030, 5.31355708693, 18319.53658487960], [0.029, 3.47275229977, 13119.72110282519], [0.029, 3.11002782516, 4136.91043351620], [0.032, 5.52273255667, 5753.38488489680], [0.035, 3.79699996680, 143571.32428481648], [0.026, 1.50634201907, 154717.60988768269], [0.030, 3.53519084118, 6284.05617105960], [0.023, 4.41808025967, 5884.92684658320], [0.025, 1.38477355808, 65147.61976813770], [0.023, 3.49782549797, 7477.52286021600], [0.019, 3.14329413716, 6496.37494542940], [0.019, 2.20135125199, 18073.70493865020], [0.019, 4.95020255309, 3930.20969621960], [0.019, 0.57998702747, 31415.37924995700], [0.021, 1.75474323399, 12139.55350910680], [0.019, 3.92233070499, 19651.04848109800], [0.014, 0.98131213224, 12559.03815298200], [0.019, 4.93309333729, 2942.46342329160], [0.016, 5.55997534558, 8827.39026987480], [0.013, 1.68808165516, 4535.05943692440], [0.013, 0.33982116161, 4933.20844033260], [0.012, 1.85426309994, 5856.47765911540], [0.010, 4.82763996845, 13095.84266507740], [0.011, 5.38005490571, 11790.62908865880], [0.010, 1.40815507226, 10988.80815753500], [0.011, 3.05005267431, 17260.15465469040], [0.010, 4.93364992366, 12352.85260454480], ], # L3 [ [289.226, 5.84384198723, 6283.07584999140], [34.955, 0.00000000000, 0.00000000000], [16.819, 5.48766912348, 12566.15169998280], [2.962, 5.19577265202, 155.42039943420], [1.288, 4.72200252235, 3.52311834900], [0.635, 5.96925937141, 242.72860397400], [0.714, 5.30045809128, 18849.22754997420], [0.402, 3.78682982419, 553.56940284240], [0.072, 4.29768126180, 6286.59896834040], [0.067, 0.90721687647, 6127.65545055720], [0.036, 5.24029648014, 6438.49624942560], [0.024, 5.16003960716, 25132.30339996560], [0.023, 3.01921570335, 6309.37416979120], [0.017, 5.82863573502, 6525.80445396540], [0.017, 3.67772863930, 71430.69561812909], [0.009, 4.58467294499, 1577.34354244780], [0.008, 1.40626662824, 11856.21865142450], [0.008, 5.07561257196, 6256.77753019160], [0.007, 2.82473374405, 83996.84731811189], [0.005, 2.71488713339, 10977.07880469900], [0.005, 3.76879847273, 12036.46073488820], [0.005, 4.28412873331, 6275.96230299060], ], # L4 [ [114.084, 3.14159265359, 0.00000000000], [7.717, 4.13446589358, 6283.07584999140], [0.765, 3.83803776214, 12566.15169998280], [0.420, 0.41925861858, 155.42039943420], [0.040, 3.59847585840, 18849.22754997420], [0.041, 3.14398414077, 3.52311834900], [0.035, 5.00298940826, 5573.14280143310], [0.013, 0.48794833701, 77713.77146812050], [0.010, 5.64801766350, 6127.65545055720], [0.008, 2.84160570605, 161000.68573767410], [0.002, 0.54912904658, 6438.49624942560], ], # L5 [ [0.878, 3.14159265359, 0.00000000000], [0.172, 2.76579069510, 6283.07584999140], [0.050, 2.01353298182, 155.42039943420], [0.028, 2.21496423926, 12566.15169998280], [0.005, 1.75600058765, 18849.22754997420], ], ] """This table contains Earth's periodic terms (all of them) from the planetary theory VSOP87 for the heliocentric longitude at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in pages 418-420.""" VSOP87_B = [ # B0 [ [279.620, 3.19870156017, 84334.66158130829], [101.643, 5.42248619256, 5507.55323866740], [80.445, 3.88013204458, 5223.69391980220], [43.806, 3.70444689758, 2352.86615377180], [31.933, 4.00026369781, 1577.34354244780], [22.724, 3.98473831560, 1047.74731175470], [16.392, 3.56456119782, 5856.47765911540], [18.141, 4.98367470263, 6283.07584999140], [14.443, 3.70275614914, 9437.76293488700], [14.304, 3.41117857525, 10213.28554621100], [11.246, 4.82820690530, 14143.49524243060], [10.900, 2.08574562327, 6812.76681508600], [9.714, 3.47303947752, 4694.00295470760], [10.367, 4.05663927946, 71092.88135493269], [8.775, 4.44016515669, 5753.38488489680], [8.366, 4.99251512180, 7084.89678111520], [6.921, 4.32559054073, 6275.96230299060], [9.145, 1.14182646613, 6620.89011318780], [7.194, 3.60193205752, 529.69096509460], [7.698, 5.55425745881, 167621.57585086190], [5.285, 2.48446991566, 4705.73230754360], [5.208, 6.24992674537, 18073.70493865020], [4.529, 2.33827747356, 6309.37416979120], [5.579, 4.41023653738, 7860.41939243920], [4.743, 0.70995680136, 5884.92684658320], [4.301, 1.10255777773, 6681.22485339960], [3.849, 1.82229412531, 5486.77784317500], [4.093, 5.11700141207, 13367.97263110660], [3.681, 0.43793170356, 3154.68708489560], [3.420, 5.42034800952, 6069.77675455340], [3.617, 6.04641937526, 3930.20969621960], [3.670, 4.58210192227, 12194.03291462090], [2.918, 1.95463881126, 10977.07880469900], [2.797, 5.61259275048, 11790.62908865880], [2.502, 0.60499729367, 6496.37494542940], [2.319, 5.01648216014, 1059.38193018920], [2.684, 1.39470396488, 22003.91463486980], [2.428, 3.24183056052, 78051.58573131690], [2.120, 4.30691000285, 5643.17856367740], [2.257, 3.15557225618, 90617.73743129970], [1.813, 3.75574218285, 3340.61242669980], [2.226, 2.79699346659, 12036.46073488820], [1.888, 0.86991545823, 8635.94200376320], [1.517, 1.95852055701, 398.14900340820], [1.581, 3.19976230948, 5088.62883976680], [1.421, 6.25530883827, 2544.31441988340], [1.595, 0.25619915135, 17298.18232732620], [1.391, 4.69964175561, 7058.59846131540], [1.478, 2.81808207569, 25934.12433108940], [1.481, 3.65823554806, 11506.76976979360], [1.693, 4.95689385293, 156475.29024799570], [1.183, 1.29343061246, 775.52261132400], [1.114, 2.37889311846, 3738.76143010800], [0.994, 4.30088900425, 9225.53927328300], [0.924, 3.06451026812, 4164.31198961300], [0.867, 0.55606931068, 8429.24126646660], [0.988, 5.97286104208, 7079.37385680780], [0.824, 1.50984806173, 10447.38783960440], [0.915, 0.12635654592, 11015.10647733480], [0.742, 1.99159139281, 26087.90314157420], [1.039, 3.14159265359, 0.00000000000], [0.850, 4.24120016095, 29864.33402730900], [0.755, 2.89631873320, 4732.03062734340], [0.714, 1.37548118603, 2146.16541647520], [0.708, 1.91406542362, 8031.09226305840], [0.746, 0.57893808616, 796.29800681640], [0.802, 5.12339137230, 2942.46342329160], [0.751, 1.67479850166, 21228.39202354580], [0.602, 4.09976538826, 64809.80550494129], [0.594, 3.49580704962, 16496.36139620240], [0.592, 4.59481504319, 4690.47983635860], [0.530, 5.73979295200, 8827.39026987480], [0.503, 5.66433137112, 33794.54372352860], [0.483, 1.57106522411, 801.82093112380], [0.438, 0.06707733767, 3128.38876509580], [0.423, 2.86944595927, 12566.15169998280], [0.504, 3.26207669160, 7632.94325965020], [0.552, 1.02926440457, 239762.20451754928], [0.427, 3.67434378210, 213.29909543800], [0.404, 1.46193297142, 15720.83878487840], [0.503, 4.85802444134, 6290.18939699220], [0.417, 0.81920713533, 5216.58037280140], [0.365, 0.01002966162, 12168.00269657460], [0.363, 1.28376436579, 6206.80977871580], [0.353, 4.70059133110, 7234.79425624200], [0.415, 0.96862624175, 4136.91043351620], [0.387, 3.09145061418, 25158.60171976540], [0.373, 2.65119262792, 7342.45778018060], [0.361, 2.97762937739, 9623.68827669120], [0.418, 3.75759994446, 5230.80746680300], [0.396, 1.22507712354, 6438.49624942560], [0.322, 1.21162178805, 8662.24032356300], [0.284, 5.64170320068, 1589.07289528380], [0.379, 1.72248432748, 14945.31617355440], [0.320, 3.94161159962, 7330.82316174610], [0.313, 5.47602376446, 1194.44701022460], [0.292, 1.38971327603, 11769.85369316640], [0.305, 0.80429352049, 37724.75341974820], [0.257, 5.81382809757, 426.59819087600], [0.265, 6.10358507671, 6836.64525283380], [0.250, 4.56452895547, 7477.52286021600], [0.266, 2.62926282354, 7238.67559160000], [0.263, 6.22089501237, 6133.51265285680], [0.306, 2.79682380531, 1748.01641306700], [0.236, 2.46093023714, 11371.70468975820], [0.316, 1.62662805006, 250908.49012041549], [0.216, 3.68721275185, 5849.36411211460], [0.230, 0.36165162947, 5863.59120611620], [0.233, 5.03509933858, 20426.57109242200], [0.200, 5.86073159059, 4535.05943692440], [0.277, 4.65400292395, 82239.16695779889], [0.209, 3.72323200804, 10973.55568635000], [0.199, 5.05186622555, 5429.87946823940], [0.256, 2.40923279770, 19651.04848109800], [0.210, 4.50691909144, 29088.81141598500], [0.181, 6.00294783127, 4292.33083295040], [0.249, 0.12900984422, 154379.79562448629], [0.209, 3.87759458598, 17789.84561978500], [0.225, 3.18339652605, 18875.52586977400], [0.191, 4.53897489299, 18477.10876461230], [0.172, 2.09694183014, 13095.84266507740], [0.182, 3.16107943500, 16730.46368959580], [0.188, 2.22746128596, 41654.96311596780], [0.164, 5.18686275017, 5481.25491886760], [0.160, 2.49298855159, 12592.45001978260], [0.155, 1.59595438230, 10021.83728009940], [0.135, 0.21349051064, 10988.80815753500], [0.178, 3.80375177970, 23581.25817731760], [0.123, 1.66800739151, 15110.46611986620], [0.122, 2.72678272244, 18849.22754997420], [0.126, 1.17675512910, 14919.01785375460], [0.142, 3.95053441332, 337.81426319640], [0.116, 6.06340906229, 6709.67404086740], [0.137, 3.52143246757, 12139.55350910680], [0.136, 2.92179113542, 32217.20018108080], [0.110, 3.51203379263, 18052.92954315780], [0.147, 4.63371971408, 22805.73556599360], [0.108, 5.45280814878, 7.11354700080], [0.148, 0.65447253687, 95480.94718417450], [0.119, 5.92110458985, 33019.02111220460], [0.110, 5.34824206306, 639.89728631400], [0.106, 3.71081682629, 14314.16811304980], [0.139, 6.17607198418, 24356.78078864160], [0.118, 5.59738712670, 161338.50000087050], [0.117, 3.65065271640, 45585.17281218740], [0.127, 4.74596574209, 49515.38250840700], [0.120, 1.04211499785, 6915.85958930460], [0.120, 5.60638811846, 5650.29211067820], [0.115, 3.10668213289, 14712.31711645800], [0.099, 0.69018940049, 12779.45079542080], [0.097, 1.07908724794, 9917.69687450980], [0.093, 2.62295197319, 17260.15465469040], [0.099, 4.45774681732, 4933.20844033260], [0.123, 1.37488922089, 28286.99048486120], [0.121, 5.19767249813, 27511.46787353720], [0.105, 0.87192267806, 77375.95720492408], [0.087, 3.93637812950, 17654.78053974960], [0.122, 2.23956068680, 83997.09113559539], [0.087, 4.18201600952, 22779.43724619380], [0.104, 4.59580877295, 1349.86740965880], [0.102, 2.83545248411, 12352.85260454480], [0.102, 3.97386522171, 10818.13528691580], [0.101, 4.32892825857, 36147.40987730040], [0.094, 5.00001709261, 150192.21439800429], [0.077, 3.97199369296, 1592.59601363280], [0.100, 6.07733097102, 26735.94526221320], [0.086, 5.26029638250, 28313.28880466100], [0.093, 4.31900620254, 44809.65020086340], [0.076, 6.22743405935, 13521.75144159140], [0.072, 1.55820597747, 6256.77753019160], [0.082, 4.95202664555, 10575.40668294180], [0.082, 1.69647647075, 1990.74501704100], [0.075, 2.29836095644, 3634.62102451840], [0.075, 2.66367876557, 16200.77272450120], [0.087, 0.26630214764, 31441.67756975680], [0.077, 2.25530954137, 5235.32853823670], [0.076, 1.09869730846, 12903.96596317920], [0.058, 4.28246138307, 12559.03815298200], [0.064, 5.51112830114, 173904.65170085328], [0.056, 2.60133794851, 73188.37597844210], [0.055, 5.81483150022, 143233.51002162008], [0.054, 3.38482031504, 323049.11878710287], [0.039, 3.28500401343, 71768.50988132549], [0.039, 3.11239910690, 96900.81328129109], ], # B1 [ [9.030, 3.89729061890, 5507.55323866740], [6.177, 1.73038850355, 5223.69391980220], [3.800, 5.24404145734, 2352.86615377180], [2.834, 2.47345037450, 1577.34354244780], [1.817, 0.41874743765, 6283.07584999140], [1.499, 1.83320979291, 5856.47765911540], [1.466, 5.69401926017, 5753.38488489680], [1.301, 2.18890066314, 9437.76293488700], [1.233, 4.95222451476, 10213.28554621100], [1.021, 0.12866660208, 7860.41939243920], [0.982, 0.09005453285, 14143.49524243060], [0.865, 1.73949953555, 3930.20969621960], [0.581, 2.26949174067, 5884.92684658320], [0.524, 5.65662503159, 529.69096509460], [0.473, 6.22750969242, 6309.37416979120], [0.451, 1.53288619213, 18073.70493865020], [0.364, 3.61614477374, 13367.97263110660], [0.372, 3.22470721320, 6275.96230299060], [0.268, 2.34341267879, 11790.62908865880], [0.322, 0.94084045832, 6069.77675455340], [0.232, 0.26781182579, 7058.59846131540], [0.216, 6.05952221329, 10977.07880469900], [0.232, 2.93325646109, 22003.91463486980], [0.204, 3.86264841382, 6496.37494542940], [0.202, 2.81892511133, 15720.83878487840], [0.185, 4.93512381859, 12036.46073488820], [0.220, 3.99305643742, 6812.76681508600], [0.166, 1.74970002999, 11506.76976979360], [0.212, 1.57166285369, 4694.00295470760], [0.157, 1.08259734788, 5643.17856367740], [0.154, 5.99434678412, 5486.77784317500], [0.144, 5.23285656085, 78051.58573131690], [0.144, 1.16454655948, 90617.73743129970], [0.137, 2.67760436027, 6290.18939699220], [0.180, 2.06509026215, 7084.89678111520], [0.121, 5.90212574947, 9225.53927328300], [0.150, 2.00175038718, 5230.80746680300], [0.149, 5.06157254516, 17298.18232732620], [0.118, 5.39979058038, 3340.61242669980], [0.161, 3.32421999691, 6283.31966747490], [0.121, 4.36722193162, 19651.04848109800], [0.116, 5.83462858507, 4705.73230754360], [0.128, 4.35489873365, 25934.12433108940], [0.143, 0.00000000000, 0.00000000000], [0.109, 2.52157834166, 6438.49624942560], [0.099, 2.70727488041, 5216.58037280140], [0.103, 0.93782340879, 8827.39026987480], [0.082, 4.29214680390, 8635.94200376320], [0.079, 2.24085737326, 1059.38193018920], [0.097, 5.50959692365, 29864.33402730900], [0.072, 0.21891639822, 21228.39202354580], [0.071, 2.86755026812, 6681.22485339960], [0.074, 2.20184828895, 37724.75341974820], [0.063, 4.45586625948, 7079.37385680780], [0.061, 0.63918772258, 33794.54372352860], [0.047, 2.09070235724, 3128.38876509580], [0.047, 3.32543843300, 26087.90314157420], [0.049, 1.60680905005, 6702.56049386660], [0.057, 0.11215813438, 29088.81141598500], [0.056, 5.47982934911, 775.52261132400], [0.050, 1.89396788463, 12139.55350910680], [0.047, 2.97214907240, 20426.57109242200], [0.041, 5.55329394890, 11015.10647733480], [0.041, 5.91861144924, 23581.25817731760], [0.045, 4.95273290181, 5863.59120611620], [0.050, 3.62740835096, 41654.96311596780], [0.037, 6.09033460601, 64809.80550494129], [0.037, 5.86153655431, 12566.15169998280], [0.046, 1.65798680284, 25158.60171976540], [0.038, 2.00673650251, 426.59819087600], [0.036, 6.24373396652, 6283.14316029419], [0.036, 0.40465162918, 6283.00853968860], [0.032, 6.03707103538, 2942.46342329160], [0.041, 4.86809570283, 1592.59601363280], [0.028, 4.38359423735, 7632.94325965020], [0.028, 6.03334294232, 17789.84561978500], [0.026, 3.88971333608, 5331.35744374080], [0.026, 5.94932724051, 16496.36139620240], [0.031, 1.44666331503, 16730.46368959580], [0.026, 6.26376705837, 23543.23050468179], [0.033, 0.93797239147, 213.29909543800], [0.026, 3.71858432944, 13095.84266507740], [0.027, 0.60565274405, 10988.80815753500], [0.023, 4.44388985550, 18849.22754997420], [0.028, 1.53862289477, 6279.48542133960], [0.028, 1.96831814872, 6286.66627864320], [0.028, 5.78094918529, 15110.46611986620], [0.026, 2.48165809843, 5729.50644714900], [0.020, 3.85655029499, 9623.68827669120], [0.021, 5.83006047147, 7234.79425624200], [0.021, 0.69628570421, 398.14900340820], [0.022, 5.02222806555, 6127.65545055720], [0.020, 3.47611265290, 6148.01076995600], [0.020, 0.90769829044, 5481.25491886760], [0.020, 0.03081589303, 6418.14093002680], [0.020, 3.74220084927, 1589.07289528380], [0.021, 4.00149269576, 3154.68708489560], [0.018, 1.58348238359, 2118.76386037840], [0.019, 0.85407021371, 14712.31711645800], ], # B2 [ [1.662, 1.62703209173, 84334.66158130829], [0.492, 2.41382223971, 1047.74731175470], [0.344, 2.24353004539, 5507.55323866740], [0.258, 6.00906896311, 5223.69391980220], [0.131, 0.95447345240, 6283.07584999140], [0.086, 1.67530247303, 7860.41939243920], [0.090, 0.97606804452, 1577.34354244780], [0.090, 0.37899871725, 2352.86615377180], [0.089, 6.25807507963, 10213.28554621100], [0.075, 0.84213523741, 167621.57585086190], [0.052, 1.70501566089, 14143.49524243060], [0.057, 6.15295833679, 12194.03291462090], [0.051, 1.27616016740, 5753.38488489680], [0.051, 5.37229738682, 6812.76681508600], [0.034, 1.73672994279, 7058.59846131540], [0.038, 2.77761031485, 10988.80815753500], [0.046, 3.38617099014, 156475.29024799570], [0.021, 1.95248349228, 8827.39026987480], [0.018, 3.33419222028, 8429.24126646660], [0.019, 4.32945160287, 17789.84561978500], [0.017, 0.66191210656, 6283.00853968860], [0.018, 3.74885333072, 11769.85369316640], [0.017, 4.23058370776, 10977.07880469900], [0.017, 1.78116162721, 5486.77784317500], [0.021, 1.36972913918, 12036.46073488820], [0.017, 2.79601092529, 796.29800681640], [0.015, 0.43087848850, 11790.62908865880], [0.017, 1.35132152761, 78051.58573131690], [0.015, 1.17032155085, 213.29909543800], [0.018, 2.85221514199, 5088.62883976680], [0.017, 0.21780913672, 6283.14316029419], [0.013, 1.21201504386, 25132.30339996560], [0.012, 1.12953712197, 90617.73743129970], [0.012, 5.13714452592, 7079.37385680780], [0.013, 3.79842135217, 4933.20844033260], [0.012, 4.89407978213, 3738.76143010800], [0.015, 6.05682328852, 398.14900340820], [0.014, 4.81029291856, 4694.00295470760], [0.011, 0.61684523405, 3128.38876509580], [0.011, 5.32876538500, 6040.34724601740], [0.014, 5.27227350286, 4535.05943692440], [0.011, 2.39292099451, 5331.35744374080], [0.010, 4.45296532710, 6525.80445396540], [0.014, 4.66400985037, 8031.09226305840], [0.010, 3.22472385926, 9437.76293488700], [0.011, 3.80913404437, 801.82093112380], [0.010, 5.15032130575, 11371.70468975820], [0.013, 0.98720797401, 5729.50644714900], [0.009, 5.94191743597, 7632.94325965020], ], # B3 [ [0.011, 0.23877262399, 7860.41939243920], [0.009, 1.16069982609, 5507.55323866740], [0.008, 1.65357552925, 5884.92684658320], [0.008, 2.86720038197, 7058.59846131540], [0.007, 3.04818741666, 5486.77784317500], [0.007, 2.59437103785, 529.69096509460], [0.008, 4.02863090524, 6256.77753019160], [0.008, 2.42003508927, 5753.38488489680], [0.006, 0.84181087594, 6275.96230299060], [0.006, 5.40160929468, 1577.34354244780], [0.007, 2.73399865247, 6309.37416979120], ], # B4 [ [0.004, 0.79662198849, 6438.49624942560], [0.005, 0.84308705203, 1047.74731175470], [0.005, 0.05711572303, 84334.66158130829], [0.003, 3.46779895686, 6279.55273164240], [0.003, 2.89822201212, 6127.65545055720], ], ] """This table contains Earth's periodic terms (all of them) from the planetary theory VSOP87 for the heliocentric latitude at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in page 420.""" VSOP87_R = [ # R0 [ [100013988.799, 0.00000000000, 0.00000000000], [1670699.626, 3.09846350771, 6283.07584999140], [13956.023, 3.05524609620, 12566.15169998280], [3083.720, 5.19846674381, 77713.77146812050], [1628.461, 1.17387749012, 5753.38488489680], [1575.568, 2.84685245825, 7860.41939243920], [924.799, 5.45292234084, 11506.76976979360], [542.444, 4.56409149777, 3930.20969621960], [472.110, 3.66100022149, 5884.92684658320], [328.780, 5.89983646482, 5223.69391980220], [345.983, 0.96368617687, 5507.55323866740], [306.784, 0.29867139512, 5573.14280143310], [174.844, 3.01193636534, 18849.22754997420], [243.189, 4.27349536153, 11790.62908865880], [211.829, 5.84714540314, 1577.34354244780], [185.752, 5.02194447178, 10977.07880469900], [109.835, 5.05510636285, 5486.77784317500], [98.316, 0.88681311277, 6069.77675455340], [86.499, 5.68959778254, 15720.83878487840], [85.825, 1.27083733351, 161000.68573767410], [62.916, 0.92177108832, 529.69096509460], [57.056, 2.01374292014, 83996.84731811189], [64.903, 0.27250613787, 17260.15465469040], [49.384, 3.24501240359, 2544.31441988340], [55.736, 5.24159798933, 71430.69561812909], [42.515, 6.01110242003, 6275.96230299060], [46.963, 2.57805070386, 775.52261132400], [38.968, 5.36071738169, 4694.00295470760], [44.661, 5.53715807302, 9437.76293488700], [35.660, 1.67468058995, 12036.46073488820], [31.921, 0.18368229781, 5088.62883976680], [31.846, 1.77775642085, 398.14900340820], [33.193, 0.24370300098, 7084.89678111520], [38.245, 2.39255343974, 8827.39026987480], [28.464, 1.21344868176, 6286.59896834040], [37.490, 0.82952922332, 19651.04848109800], [36.957, 4.90107591914, 12139.55350910680], [34.537, 1.84270693282, 2942.46342329160], [26.275, 4.58896850401, 10447.38783960440], [24.596, 3.78660875483, 8429.24126646660], [23.587, 0.26866117066, 796.29800681640], [27.793, 1.89934330904, 6279.55273164240], [23.927, 4.99598548138, 5856.47765911540], [20.349, 4.65267995431, 2146.16541647520], [23.287, 2.80783650928, 14143.49524243060], [22.103, 1.95004702988, 3154.68708489560], [19.506, 5.38227371393, 2352.86615377180], [17.958, 0.19871379385, 6812.76681508600], [17.174, 4.43315560735, 10213.28554621100], [16.190, 5.23160507859, 17789.84561978500], [17.314, 6.15200787916, 16730.46368959580], [13.814, 5.18962074032, 8031.09226305840], [18.833, 0.67306674027, 149854.40013480789], [18.331, 2.25348733734, 23581.25817731760], [13.641, 3.68516118804, 4705.73230754360], [13.139, 0.65289581324, 13367.97263110660], [10.414, 4.33285688538, 11769.85369316640], [9.978, 4.20126336355, 6309.37416979120], [10.169, 1.59390681369, 4690.47983635860], [7.564, 2.62560597390, 6256.77753019160], [9.661, 3.67586791220, 27511.46787353720], [6.743, 0.56270332741, 3340.61242669980], [8.743, 6.06359123461, 1748.01641306700], [7.786, 3.67371235637, 12168.00269657460], [6.633, 5.66149277792, 11371.70468975820], [7.712, 0.31242577789, 7632.94325965020], [6.592, 3.13576266188, 801.82093112380], [7.460, 5.64757188143, 11926.25441366880], [6.933, 2.92384586400, 6681.22485339960], [6.802, 1.42329806420, 23013.53953958720], [6.115, 5.13393615454, 1194.44701022460], [6.477, 2.64986648492, 19804.82729158280], [5.233, 4.62434053374, 6438.49624942560], [6.147, 3.02863936662, 233141.31440436150], [4.608, 1.72194702724, 7234.79425624200], [4.221, 1.55697533729, 7238.67559160000], [5.314, 2.40716580847, 11499.65622279280], [5.128, 5.32398965690, 11513.88331679440], [4.770, 0.25554312006, 11856.21865142450], [5.519, 2.09089154502, 17298.18232732620], [5.625, 4.34052903053, 90955.55169449610], [4.578, 4.46569641570, 5746.27133789600], [3.788, 4.90729383510, 4164.31198961300], [5.337, 5.09957905104, 31441.67756975680], [3.967, 1.20054555174, 1349.86740965880], [4.008, 3.03007204392, 1059.38193018920], [3.476, 0.76080277030, 10973.55568635000], [4.232, 1.05485713117, 5760.49843189760], [4.582, 3.76570026763, 6386.16862421000], [3.335, 3.13829943354, 6836.64525283380], [3.418, 3.00072390334, 4292.33083295040], [3.598, 5.70718084323, 5643.17856367740], [3.237, 4.16448773994, 9917.69687450980], [4.154, 2.59941292162, 7058.59846131540], [3.362, 4.54577697964, 4732.03062734340], [2.978, 1.30561268820, 6283.14316029419], [2.765, 0.51311975679, 26.29831979980], [2.802, 5.66263240521, 8635.94200376320], [2.927, 5.73787481548, 16200.77272450120], [3.164, 1.69140262657, 11015.10647733480], [2.598, 2.96244118586, 25132.30339996560], [3.519, 3.62639325753, 244287.60000722768], [2.676, 4.20725700850, 18073.70493865020], [2.978, 1.74971565805, 6283.00853968860], [2.287, 1.06975704977, 14314.16811304980], [2.863, 5.92838131397, 14712.31711645800], [3.071, 0.23793217002, 35371.88726597640], [2.656, 0.89959301780, 12352.85260454480], [2.415, 2.79975176257, 709.93304855830], [2.814, 3.51488206882, 21228.39202354580], [1.977, 2.61358297550, 951.71840625060], [2.548, 2.47684686575, 6208.29425142410], [1.999, 0.56090388160, 7079.37385680780], [2.305, 1.05376461628, 22483.84857449259], [1.855, 2.86090681163, 5216.58037280140], [2.157, 1.31396741861, 154717.60988768269], [1.970, 4.36929875289, 167283.76158766550], [1.635, 5.85571606764, 10984.19235169980], [1.754, 2.14452408833, 6290.18939699220], [2.154, 6.03828341543, 10873.98603048040], [1.714, 3.70157691113, 1592.59601363280], [1.541, 6.21598380732, 23543.23050468179], [1.611, 1.99824499377, 10969.96525769820], [1.712, 1.34295663542, 3128.38876509580], [1.642, 5.55026665339, 6496.37494542940], [1.502, 5.43948825854, 155.42039943420], [1.827, 5.91227480261, 3738.76143010800], [1.726, 2.16764983583, 10575.40668294180], [1.532, 5.35683107070, 13521.75144159140], [1.829, 1.66006148731, 39302.09696219600], [1.605, 1.90928637633, 6133.51265285680], [1.282, 2.46014880418, 13916.01910964160], [1.211, 4.41360631550, 3894.18182954220], [1.394, 1.77801929354, 9225.53927328300], [1.571, 4.95512957592, 25158.60171976540], [1.205, 1.19212540615, 3.52311834900], [1.132, 2.69830084955, 6040.34724601740], [1.504, 5.77002730341, 18209.33026366019], [1.393, 1.62621805428, 5120.60114558360], [1.077, 2.93931554233, 17256.63153634140], [1.232, 0.71655165307, 143571.32428481648], [1.087, 0.99769687939, 955.59974160860], [1.068, 5.28472576231, 65147.61976813770], [0.980, 5.10949204607, 6172.86952877200], [1.169, 3.11664290862, 14945.31617355440], [1.202, 4.02992510402, 553.56940284240], [0.979, 2.00000879212, 15110.46611986620], [0.962, 4.02380771400, 6282.09552892320], [0.999, 3.62643002790, 6262.30045449900], [1.030, 5.84989900289, 213.29909543800], [1.014, 2.84221578218, 8662.24032356300], [1.185, 1.51330541132, 17654.78053974960], [0.967, 2.67081017562, 5650.29211067820], [1.222, 2.65423784904, 88860.05707098669], [0.981, 2.36370360283, 6206.80977871580], [1.033, 0.13874927606, 11712.95531823080], [1.103, 3.08477302937, 43232.30665841560], [0.781, 2.53372735932, 16496.36139620240], [1.019, 3.04569392376, 6037.24420376200], [0.795, 5.80662989111, 5230.80746680300], [0.813, 3.57710279439, 10177.25767953360], [0.962, 5.31470594766, 6284.05617105960], [0.721, 5.96264301567, 12559.03815298200], [0.966, 2.74714939953, 6244.94281435360], [0.921, 0.10155275926, 29088.81141598500], [0.692, 3.89764447548, 1589.07289528380], [0.719, 5.91791450402, 4136.91043351620], [0.772, 4.05505682353, 6127.65545055720], [0.712, 5.49291532439, 22003.91463486980], [0.672, 1.60700490811, 11087.28512591840], [0.690, 4.50539825563, 426.59819087600], [0.854, 3.26104981596, 20426.57109242200], [0.656, 4.32410182940, 16858.48253293320], [0.840, 2.59572585222, 28766.92442448400], [0.692, 0.61650089011, 11403.67699557500], [0.700, 3.40901167143, 7.11354700080], [0.726, 0.04243053594, 5481.25491886760], [0.557, 4.78317696534, 20199.09495963300], [0.649, 1.04027912958, 6062.66320755260], [0.633, 5.70229959167, 45892.73043315699], [0.592, 6.11836729658, 9623.68827669120], [0.523, 3.62840021266, 5333.90024102160], [0.604, 5.57734696185, 10344.29506538580], [0.496, 2.21023499449, 1990.74501704100], [0.691, 1.96071732602, 12416.58850284820], [0.640, 1.59074172032, 18319.53658487960], [0.625, 3.82362791378, 13517.87010623340], [0.663, 5.08444996779, 283.85931886520], [0.475, 1.17025894287, 12569.67481833180], [0.664, 4.50029469969, 47162.51635463520], [0.569, 0.16310365162, 17267.26820169119], [0.568, 3.86100969474, 6076.89030155420], [0.539, 4.83282276086, 18422.62935909819], [0.466, 0.75872342878, 7342.45778018060], [0.541, 3.07212190507, 226858.23855437007], [0.458, 0.26774483096, 4590.91018048900], [0.610, 1.53597051291, 33019.02111220460], [0.617, 2.62356328726, 11190.37790013700], [0.548, 4.55798855791, 18875.52586977400], [0.633, 4.60110281228, 66567.48586525429], [0.596, 5.78202396722, 632.78373931320], [0.533, 5.01786882904, 12132.43996210600], [0.603, 5.38458554802, 316428.22867391503], [0.469, 0.59168241917, 21954.15760939799], [0.548, 3.50613163558, 17253.04110768959], [0.502, 0.98804327589, 11609.86254401220], [0.568, 1.98497313089, 7668.63742494250], [0.482, 1.62141803864, 12146.66705610760], [0.391, 3.68718382989, 18052.92954315780], [0.457, 3.77205737340, 156137.47598479927], [0.401, 5.28260651958, 15671.08175940660], [0.469, 1.80963184268, 12562.62858163380], [0.508, 3.36399024699, 20597.24396304120], [0.450, 5.66054299250, 10454.50138660520], [0.375, 4.98534633105, 9779.10867612540], [0.523, 0.97215560834, 155427.54293624099], [0.403, 5.13939866506, 1551.04522264800], [0.372, 3.69883738807, 9388.00590941520], [0.367, 4.43875659716, 4535.05943692440], [0.406, 4.20863156600, 12592.45001978260], [0.360, 2.53924644657, 242.72860397400], [0.471, 4.61907324819, 5436.99301524020], [0.441, 5.83872966262, 3496.03282613400], [0.385, 4.94496680973, 24356.78078864160], [0.349, 6.15018231784, 19800.94595622480], [0.355, 0.21895678106, 5429.87946823940], [0.344, 5.62993724928, 2379.16447357160], [0.380, 2.72105213143, 11933.36796066960], [0.432, 0.24221790536, 17996.03116822220], [0.378, 5.22517556974, 7477.52286021600], [0.337, 5.10888041439, 5849.36411211460], [0.315, 0.57827745123, 10557.59416082380], [0.318, 4.49953141399, 3634.62102451840], [0.323, 1.54274281393, 10440.27429260360], [0.309, 5.76839284397, 20.77539549240], [0.301, 2.34727604008, 4686.88940770680], [0.414, 5.93237602310, 51092.72605085480], [0.361, 2.16398609550, 28237.23345938940], [0.288, 0.18376252189, 13095.84266507740], [0.277, 5.12952205045, 13119.72110282519], [0.327, 6.19222146204, 6268.84875598980], [0.273, 0.30522428863, 23141.55838292460], [0.267, 5.76152585786, 5966.68398033480], [0.308, 5.99280509979, 22805.73556599360], [0.345, 2.92489919444, 36949.23080842420], [0.253, 5.20995219509, 24072.92146977640], [0.342, 5.72702586209, 16460.33352952499], [0.261, 2.00304796059, 6148.01076995600], [0.238, 5.08264392839, 6915.85958930460], [0.249, 2.94762789744, 135.06508003540], [0.306, 3.89764686987, 10988.80815753500], [0.305, 0.05827812117, 4701.11650170840], [0.319, 2.95712862064, 163096.18036118348], [0.209, 4.43768461442, 6546.15977336420], [0.270, 2.06643178717, 4804.20927592700], [0.217, 0.73691592312, 6303.85124548380], [0.206, 0.32075959415, 25934.12433108940], [0.218, 0.18428135264, 28286.99048486120], [0.205, 5.21312087405, 20995.39296644940], [0.199, 0.44384292491, 16737.57723659660], [0.230, 6.06567392849, 6287.00800325450], [0.219, 1.29194216300, 5326.78669402080], [0.201, 1.74700937253, 22743.40937951640], [0.207, 4.45440927276, 6279.48542133960], [0.269, 6.05640445030, 64471.99124174489], [0.190, 0.99256176518, 29296.61538957860], [0.238, 5.42471431221, 39609.65458316560], [0.262, 5.26961924198, 522.57741809380], [0.210, 4.68618183158, 6254.62666252360], [0.197, 2.80624554080, 4933.20844033260], [0.252, 4.36220154608, 40879.44050464380], [0.261, 1.07241516738, 55022.93574707440], [0.189, 3.82966734476, 419.48464387520], [0.185, 4.14324541379, 5642.19824260920], [0.247, 3.44855612987, 6702.56049386660], [0.205, 4.04424043223, 536.80451209540], [0.191, 3.14082686083, 16723.35014259500], [0.222, 5.16263907319, 23539.70738633280], [0.180, 4.56214752149, 6489.26139842860], [0.219, 0.80382553358, 16627.37091537720], [0.227, 0.60156339452, 5905.70224207560], [0.168, 0.88753528161, 16062.18452611680], [0.158, 0.92127725775, 23937.85638974100], [0.157, 4.69607868164, 6805.65326808520], [0.207, 4.88410451334, 6286.66627864320], [0.160, 4.95943826846, 10021.83728009940], [0.166, 0.97126433565, 3097.88382272579], [0.209, 5.75663411805, 3646.35037735440], [0.175, 6.12762824412, 239424.39025435288], [0.173, 3.13887234973, 6179.98307577280], [0.157, 3.62822058179, 18451.07854656599], [0.157, 4.67695912235, 6709.67404086740], [0.146, 3.09506069735, 4907.30205014560], [0.165, 2.27139128760, 10660.68693504240], [0.201, 1.67701267433, 2107.03450754240], [0.144, 3.96947747592, 6019.99192661860], [0.171, 5.91302216729, 6058.73105428950], [0.144, 2.13155655120, 26084.02180621620], [0.151, 0.67417383554, 2388.89402044920], [0.189, 5.07122281033, 263.08392337280], [0.146, 5.10373877968, 10770.89325626180], [0.187, 1.23915444627, 19402.79695281660], [0.174, 0.08407293391, 9380.95967271720], [0.137, 1.26247412309, 12566.21901028560], [0.137, 3.52826010842, 639.89728631400], [0.148, 1.76124372592, 5888.44996493220], [0.164, 2.39195095081, 6357.85744855870], [0.146, 2.43675816553, 5881.40372823420], [0.161, 1.15721259372, 26735.94526221320], [0.131, 2.51859277344, 6599.46771964800], [0.153, 5.85203687779, 6281.59137728310], [0.151, 3.72338532649, 12669.24447420140], [0.132, 2.38417741883, 6525.80445396540], [0.129, 0.75556744143, 5017.50837136500], [0.127, 0.00254936441, 10027.90319572920], [0.148, 2.85102145528, 6418.14093002680], [0.143, 5.74460279367, 26087.90314157420], [0.172, 0.41289962240, 174242.46596404971], [0.136, 4.15497742275, 6311.52503745920], [0.170, 5.98194913129, 327574.51427678124], [0.124, 1.65497607604, 32217.20018108080], [0.136, 2.48430783417, 13341.67431130680], [0.165, 2.49667924600, 58953.14544329400], [0.123, 3.45660563754, 6277.55292568400], [0.117, 0.86065134175, 6245.04817735560], [0.149, 5.61358280963, 5729.50644714900], [0.153, 0.26860029950, 245.83164622940], [0.128, 0.71204006588, 103.09277421860], [0.159, 2.43166592149, 221995.02880149524], [0.130, 2.80707316718, 6016.46880826960], [0.137, 1.70657709294, 12566.08438968000], [0.111, 1.56305648432, 17782.73207278420], [0.113, 3.58302904101, 25685.87280280800], [0.109, 3.26403795962, 6819.88036208680], [0.122, 0.34120688217, 1162.47470440780], [0.119, 5.84644718278, 12721.57209941700], [0.144, 2.28899679126, 12489.88562870720], [0.137, 5.82029768354, 44809.65020086340], [0.107, 2.42818544140, 5547.19933645960], [0.134, 1.26539982939, 5331.35744374080], [0.103, 5.96518130595, 6321.10352262720], [0.109, 0.33808549034, 11300.58422135640], [0.129, 5.89187277327, 12029.34718788740], [0.122, 5.77325634636, 11919.14086666800], [0.107, 6.24998989350, 77690.75950573849], [0.107, 1.00535580713, 77736.78343050249], [0.143, 0.24122178432, 4214.06901508480], [0.143, 0.88529649733, 7576.56007357400], [0.107, 2.92124030496, 31415.37924995700], [0.099, 5.70862227072, 5540.08578945880], [0.110, 0.37528037383, 5863.59120611620], [0.104, 4.44107178366, 2118.76386037840], [0.098, 5.95877916706, 4061.21921539440], [0.113, 1.24206857385, 84672.47584450469], [0.124, 2.55619029867, 12539.85338018300], [0.110, 3.66952094329, 238004.52415723630], [0.112, 4.32512422943, 97238.62754448749], [0.097, 3.70151541181, 11720.06886523160], [0.120, 1.26895630252, 12043.57428188900], [0.094, 2.56461130309, 19004.64794940840], [0.117, 3.65425622684, 34520.30930938080], [0.098, 0.13589994287, 11080.17157891760], [0.097, 5.38330115253, 7834.12107263940], [0.097, 2.46722096722, 71980.63357473118], [0.095, 5.36958330451, 6288.59877429880], [0.111, 5.01961920313, 11823.16163945020], [0.090, 2.72299804525, 26880.31981303260], [0.099, 0.90164266377, 18635.92845453620], [0.126, 4.78722177847, 305281.94307104882], [0.093, 0.21240380046, 18139.29450141590], [0.124, 5.00979495566, 172146.97134054030], [0.099, 5.67090026475, 16522.65971600220], [0.092, 2.28180963676, 12491.37010141550], [0.090, 4.50544881196, 40077.61957352000], [0.100, 2.00639461612, 12323.42309600880], [0.095, 5.68801979087, 14919.01785375460], [0.087, 1.86043406047, 27707.54249429480], [0.105, 3.02903468417, 22345.26037610820], [0.087, 5.43970168638, 6272.03014972750], [0.089, 1.63389387182, 33326.57873317420], [0.082, 5.58298993353, 10241.20229116720], [0.094, 5.47749711149, 9924.81042151060], [0.082, 4.71988314145, 15141.39079431200], [0.097, 5.61458778738, 2787.04302385740], [0.096, 3.89073946348, 6379.05507720920], [0.081, 3.13038482444, 36147.40987730040], [0.110, 4.89978492291, 72140.62866668739], [0.097, 5.20764563059, 6303.43116939020], [0.082, 5.26342716139, 9814.60410029120], [0.109, 2.35555589770, 83286.91426955358], [0.097, 2.58492958057, 30666.15495843280], [0.093, 1.32651591333, 23020.65308658799], [0.078, 3.99588630754, 11293.47067435560], [0.090, 0.57771932738, 26482.17080962440], [0.106, 3.92012705073, 62883.35513951360], [0.098, 2.94397773524, 316.39186965660], [0.076, 3.96310417608, 29026.48522950779], [0.078, 1.97068529306, 90279.92316810328], [0.076, 0.23027966596, 21424.46664430340], [0.080, 2.23099742212, 266.60704172180], [0.079, 1.46227790922, 8982.81066930900], [0.102, 4.92129953565, 5621.84292321040], [0.100, 0.39243148321, 24279.10701821359], [0.071, 1.52014858474, 33794.54372352860], [0.076, 0.22880641443, 57375.80190084620], [0.091, 0.96515913904, 48739.85989708300], [0.075, 2.77638585157, 12964.30070339100], [0.077, 5.18846946344, 11520.99686379520], [0.068, 0.50006599129, 4274.51831083240], [0.075, 2.07323762803, 15664.03552270859], [0.074, 1.01884134928, 6393.28217121080], [0.077, 0.46665178780, 16207.88627150200], [0.081, 4.10452219483, 161710.61878623240], [0.067, 3.83840630887, 6262.72053059260], [0.071, 3.91415523291, 7875.67186362420], [0.081, 0.91938383237, 74.78159856730], [0.083, 4.69916218791, 23006.42599258639], [0.063, 2.32556465878, 6279.19451463340], [0.065, 5.41938745446, 28628.33622609960], [0.065, 3.02336771694, 5959.57043333400], [0.064, 3.31033198370, 2636.72547263700], [0.064, 0.18375587519, 1066.49547719000], [0.080, 5.81239171612, 12341.80690428090], [0.066, 2.15105504851, 38.02767263580], [0.062, 2.43313614978, 10138.10951694860], [0.060, 3.16153906470, 5490.30096152400], [0.069, 0.30764736334, 7018.95236352320], [0.068, 2.24442548639, 24383.07910844140], [0.078, 1.39649386463, 9411.46461508720], [0.063, 0.72976362625, 6286.95718534940], [0.073, 4.95125917731, 6453.74872061060], [0.078, 0.32736023459, 6528.90749622080], [0.059, 4.95362151577, 35707.71008290740], [0.070, 2.37962727525, 15508.61512327440], [0.073, 1.35229143111, 5327.47610838280], [0.072, 5.91833527334, 10881.09957748120], [0.059, 5.36231868425, 10239.58386601080], [0.059, 1.63156134967, 61306.01159706580], [0.054, 4.29491690425, 21947.11137270000], [0.057, 5.89190132575, 34513.26307268280], [0.074, 1.38235845304, 9967.45389998160], [0.053, 3.86543309344, 32370.97899156560], [0.055, 4.51794544854, 34911.41207609100], [0.063, 5.41479412056, 11502.83761653050], [0.063, 2.34416220742, 11510.70192305670], [0.068, 0.77493931112, 29864.33402730900], [0.060, 5.57024703495, 5756.90800324580], [0.072, 2.80863088166, 10866.87248347960], [0.061, 2.69736991384, 82576.98122099529], [0.063, 5.32068807257, 3116.65941225980], [0.052, 1.02278758099, 6272.43918464160], [0.069, 5.00698550308, 25287.72379939980], [0.066, 6.12047940728, 12074.48840752400], [0.051, 2.59519527563, 11396.56344857420], [0.056, 2.57995973521, 17892.93839400359], [0.059, 0.44167237620, 250570.67585721909], [0.059, 3.84070143543, 5483.25472482600], [0.049, 0.54704693048, 22594.05489571199], [0.065, 2.38423614501, 52670.06959330260], [0.069, 5.34363738671, 66813.56483573320], [0.057, 5.42770501007, 310145.15282392362], [0.053, 1.17760296075, 149.56319713460], [0.061, 4.02090887211, 34596.36465465240], [0.049, 4.18361320516, 18606.49894600020], [0.055, 0.83886167974, 20452.86941222180], [0.050, 1.46327331958, 37455.72649597440], [0.048, 4.53854727167, 29822.78323632420], [0.058, 3.34847975377, 33990.61834428620], [0.065, 1.45522693982, 76251.32777062019], [0.056, 2.35650663692, 37724.75341974820], [0.052, 2.61551081496, 5999.21653112620], [0.053, 0.17334326094, 77717.29458646949], [0.053, 0.79879700631, 77710.24834977149], [0.047, 0.43240779709, 735.87651353180], [0.053, 4.58763261686, 11616.97609101300], [0.048, 6.20230111054, 4171.42553661380], [0.052, 1.09723616404, 640.87760738220], [0.057, 3.42008310383, 50317.20343953080], [0.053, 1.01528448581, 149144.46708624958], [0.047, 3.00924906195, 52175.80628314840], [0.052, 2.03254070404, 6293.71251534120], [0.048, 0.12356889734, 13362.44970679920], [0.045, 3.37963782356, 10763.77970926100], [0.047, 5.50981287869, 12779.45079542080], [0.062, 5.45209070099, 949.17560896980], [0.061, 2.93237974631, 5791.41255753260], [0.044, 2.87440620802, 8584.66166590080], [0.046, 4.03141796560, 10667.80048204320], [0.047, 3.89902931422, 3903.91137641980], [0.046, 2.75700467329, 6993.00889854970], [0.045, 1.93386293300, 206.18554843720], [0.047, 2.57670800912, 11492.54267579200], [0.044, 3.62570223167, 63658.87775083760], [0.051, 0.84536826273, 12345.73905754400], [0.043, 0.01524970172, 37853.87549938260], [0.041, 3.27146326065, 8858.31494432060], [0.045, 3.03765521215, 65236.22129328540], [0.047, 1.44447548944, 21393.54196985760], [0.058, 5.45843180927, 1975.49254585600], [0.050, 2.13285524146, 12573.26524698360], [0.041, 1.32190847146, 2547.83753823240], [0.047, 3.67579608544, 28313.28880466100], [0.041, 2.24013475126, 8273.82086703240], [0.047, 6.21438985953, 10991.30589870060], [0.042, 3.01631817350, 853.19638175200], [0.056, 1.09773690181, 77376.20102240759], [0.040, 2.35698541041, 2699.73481931760], [0.043, 5.28030898459, 17796.95916678580], [0.054, 2.59175932091, 22910.44676536859], [0.054, 0.88027764102, 71960.38658322369], [0.055, 0.07988899477, 83467.15635301729], [0.039, 1.12867321442, 9910.58332750900], [0.040, 1.35670430524, 27177.85152920020], [0.039, 4.39624220245, 5618.31980486140], [0.042, 4.78798367468, 7856.89627409019], [0.047, 2.75482175292, 18202.21671665939], [0.039, 1.97008298629, 24491.42579258340], [0.042, 4.04346599946, 7863.94251078820], [0.038, 0.49178679251, 38650.17350619900], [0.036, 4.86047906533, 4157.19844261220], [0.043, 5.64354880978, 1062.90504853820], [0.036, 3.98066313627, 12565.17137891460], [0.042, 2.30753932657, 6549.68289171320], [0.040, 5.39694918320, 9498.21223063460], [0.040, 3.30603243754, 23536.11695768099], [0.050, 6.15760345261, 78051.34191383338], ], # R1 [ [103018.608, 1.10748969588, 6283.07584999140], [1721.238, 1.06442301418, 12566.15169998280], [702.215, 3.14159265359, 0.00000000000], [32.346, 1.02169059149, 18849.22754997420], [30.799, 2.84353804832, 5507.55323866740], [24.971, 1.31906709482, 5223.69391980220], [18.485, 1.42429748614, 1577.34354244780], [10.078, 5.91378194648, 10977.07880469900], [8.634, 0.27146150602, 5486.77784317500], [8.654, 1.42046854427, 6275.96230299060], [5.069, 1.68613426734, 5088.62883976680], [4.985, 6.01401770704, 6286.59896834040], [4.669, 5.98724494073, 529.69096509460], [4.395, 0.51800238019, 4694.00295470760], [3.872, 4.74969833437, 2544.31441988340], [3.750, 5.07097685568, 796.29800681640], [4.100, 1.08424786092, 9437.76293488700], [3.518, 0.02290216272, 83996.84731811189], [3.436, 0.94937019624, 71430.69561812909], [3.221, 6.15628775313, 2146.16541647520], [3.414, 5.41218322538, 775.52261132400], [2.863, 5.48432847146, 10447.38783960440], [2.520, 0.24276941146, 398.14900340820], [2.201, 4.95216196651, 6812.76681508600], [2.186, 0.41991743105, 8031.09226305840], [2.838, 3.42034351366, 2352.86615377180], [2.554, 6.13241878525, 6438.49624942560], [1.932, 5.31374608366, 8429.24126646660], [2.429, 3.09164528262, 4690.47983635860], [1.730, 1.53686208550, 4705.73230754360], [2.250, 3.68863633842, 7084.89678111520], [2.093, 1.28191783032, 1748.01641306700], [1.441, 0.81656250862, 14143.49524243060], [1.483, 3.22225357771, 7234.79425624200], [1.754, 3.22883705112, 6279.55273164240], [1.583, 4.09702349428, 11499.65622279280], [1.575, 5.53890170575, 3154.68708489560], [1.847, 1.82040335363, 7632.94325965020], [1.504, 3.63293385726, 11513.88331679440], [1.337, 4.64440864339, 6836.64525283380], [1.275, 2.69341415363, 1349.86740965880], [1.352, 6.15101580257, 5746.27133789600], [1.125, 3.35673439497, 17789.84561978500], [1.470, 3.65282991755, 1194.44701022460], [1.177, 2.57676109092, 13367.97263110660], [1.101, 4.49748696552, 4292.33083295040], [1.234, 5.65036509521, 5760.49843189760], [0.984, 0.65517395136, 5856.47765911540], [0.928, 2.32420318751, 10213.28554621100], [1.077, 5.82812169132, 12036.46073488820], [0.916, 0.76613009583, 16730.46368959580], [0.877, 1.50137505051, 11926.25441366880], [1.023, 5.62076589825, 6256.77753019160], [0.851, 0.65709335533, 155.42039943420], [0.802, 4.10519132088, 951.71840625060], [0.857, 1.41661697538, 5753.38488489680], [0.994, 1.14418521187, 1059.38193018920], [0.813, 1.63948433322, 6681.22485339960], [0.662, 4.55200452260, 5216.58037280140], [0.644, 4.19478168733, 6040.34724601740], [0.626, 1.50767713598, 5643.17856367740], [0.590, 6.18277145205, 4164.31198961300], [0.635, 0.52413263542, 6290.18939699220], [0.650, 0.97935690350, 25132.30339996560], [0.568, 2.30125315873, 10973.55568635000], [0.547, 5.27256412213, 3340.61242669980], [0.547, 2.20144422886, 1592.59601363280], [0.526, 0.92464258226, 11371.70468975820], [0.490, 5.90951388655, 3894.18182954220], [0.478, 1.66857963179, 12168.00269657460], [0.516, 3.59803483887, 10969.96525769820], [0.518, 3.97914412373, 17298.18232732620], [0.534, 5.03740926442, 9917.69687450980], [0.487, 2.50545369269, 6127.65545055720], [0.416, 4.04828175503, 10984.19235169980], [0.538, 5.54081539805, 553.56940284240], [0.402, 2.16544019233, 7860.41939243920], [0.553, 2.32177369366, 11506.76976979360], [0.367, 3.39152532250, 6496.37494542940], [0.360, 5.34379853282, 7079.37385680780], [0.337, 3.61563704045, 11790.62908865880], [0.456, 0.30754294809, 801.82093112380], [0.417, 3.70009308674, 10575.40668294180], [0.381, 5.82033971802, 7058.59846131540], [0.321, 0.31988767355, 16200.77272450120], [0.364, 1.08414306177, 6309.37416979120], [0.294, 4.54798604957, 11856.21865142450], [0.290, 1.26473978562, 8635.94200376320], [0.399, 4.16998866302, 26.29831979980], [0.262, 5.08316906342, 10177.25767953360], [0.243, 2.25746091190, 11712.95531823080], [0.237, 1.05070575346, 242.72860397400], [0.275, 3.45319481756, 5884.92684658320], [0.255, 5.38496831087, 21228.39202354580], [0.307, 4.24313526604, 3738.76143010800], [0.216, 3.46037894728, 213.29909543800], [0.196, 0.69029243914, 1990.74501704100], [0.198, 5.16301829964, 12352.85260454480], [0.214, 3.91876200279, 13916.01910964160], [0.212, 4.00861198517, 5230.80746680300], [0.184, 5.59805976614, 6283.14316029419], [0.184, 2.85275392124, 7238.67559160000], [0.179, 2.54259058334, 14314.16811304980], [0.225, 1.64458698399, 4732.03062734340], [0.236, 5.58826125715, 6069.77675455340], [0.187, 2.72805985443, 6062.66320755260], [0.184, 6.04216273598, 6283.00853968860], [0.230, 3.62591335086, 6284.05617105960], [0.163, 2.19117396803, 18073.70493865020], [0.172, 0.97612950740, 3930.20969621960], [0.215, 1.04672844028, 3496.03282613400], [0.169, 4.75084479006, 17267.26820169119], [0.152, 0.19390712179, 9779.10867612540], [0.182, 5.16288118255, 17253.04110768959], [0.149, 0.80944184260, 709.93304855830], [0.163, 2.19209570390, 6076.89030155420], [0.186, 5.01159497089, 11015.10647733480], [0.134, 0.97765485759, 65147.61976813770], [0.141, 4.38421981312, 4136.91043351620], [0.158, 4.60974280627, 9623.68827669120], [0.133, 3.30508592837, 154717.60988768269], [0.163, 6.11782626245, 3.52311834900], [0.174, 1.58078542187, 7.11354700080], [0.141, 0.49976927274, 25158.60171976540], [0.124, 6.03440460031, 9225.53927328300], [0.150, 5.30166336812, 13517.87010623340], [0.127, 1.92389511438, 22483.84857449259], [0.121, 2.37813129011, 167283.76158766550], [0.120, 3.98423684853, 4686.88940770680], [0.117, 5.81072642211, 12569.67481833180], [0.122, 5.60973054224, 5642.19824260920], [0.157, 3.40236426002, 16496.36139620240], [0.129, 2.10705116371, 1589.07289528380], [0.116, 0.55839966736, 5849.36411211460], [0.123, 1.52961392771, 12559.03815298200], [0.111, 0.44848279675, 6172.86952877200], [0.123, 5.81645568991, 6282.09552892320], [0.150, 4.26278409223, 3128.38876509580], [0.106, 2.27437761356, 5429.87946823940], [0.104, 4.42743707728, 23543.23050468179], [0.121, 0.39459045915, 12132.43996210600], [0.104, 2.41842602527, 426.59819087600], [0.110, 5.80381480447, 16858.48253293320], [0.100, 2.93805577485, 4535.05943692440], [0.097, 3.97935904984, 6133.51265285680], [0.110, 6.22339014386, 12146.66705610760], [0.098, 0.87576563709, 6525.80445396540], [0.098, 3.15248421301, 10440.27429260360], [0.095, 2.46168411100, 3097.88382272579], [0.088, 0.23371480284, 13119.72110282519], [0.098, 5.77016493489, 7342.45778018060], [0.092, 6.03915555063, 20426.57109242200], [0.096, 5.56909292561, 2388.89402044920], [0.081, 1.32131147691, 5650.29211067820], [0.086, 3.94529200528, 10454.50138660520], [0.076, 2.70729716925, 143571.32428481648], [0.091, 5.64100034152, 8827.39026987480], [0.076, 1.80783856698, 28286.99048486120], [0.081, 1.90858992196, 29088.81141598500], [0.075, 3.40955892978, 5481.25491886760], [0.069, 4.49936170873, 17256.63153634140], [0.088, 1.10098454357, 11769.85369316640], [0.066, 2.78285801977, 536.80451209540], [0.068, 3.88179770758, 17260.15465469040], [0.084, 1.59303306354, 9380.95967271720], [0.088, 3.88076636762, 7477.52286021600], [0.061, 6.17558202197, 11087.28512591840], [0.060, 4.34824715818, 6206.80977871580], [0.082, 4.59843208943, 9388.00590941520], [0.079, 1.63131230601, 4933.20844033260], [0.078, 4.20905757484, 5729.50644714900], [0.057, 5.48157926651, 18319.53658487960], [0.060, 1.01261781084, 12721.57209941700], [0.056, 1.63031935692, 15720.83878487840], [0.055, 0.24926735018, 15110.46611986620], [0.061, 5.93059279661, 12539.85338018300], [0.055, 4.84298966314, 13095.84266507740], [0.067, 6.11690589247, 8662.24032356300], [0.054, 5.73750638571, 3634.62102451840], [0.074, 1.05466745829, 16460.33352952499], [0.053, 2.29084335688, 16062.18452611680], [0.064, 2.13513767927, 7875.67186362420], [0.067, 0.07096807518, 14945.31617355440], [0.051, 2.31511194429, 6262.72053059260], [0.057, 5.77055471237, 12043.57428188900], [0.056, 4.41980790431, 4701.11650170840], [0.059, 5.87963500073, 5331.35744374080], [0.058, 2.30546168628, 955.59974160860], [0.049, 1.93839278478, 5333.90024102160], [0.048, 2.69973662261, 6709.67404086740], [0.064, 1.64379897981, 6262.30045449900], [0.046, 3.98449608961, 98068.53671630539], [0.050, 3.68875893005, 12323.42309600880], [0.045, 3.30068569697, 22003.91463486980], [0.047, 1.26317154881, 11919.14086666800], [0.045, 0.89150445122, 51868.24866217880], [0.043, 1.61526242998, 6277.55292568400], [0.043, 5.74295325645, 11403.67699557500], [0.044, 3.43070646822, 10021.83728009940], [0.056, 0.02481833774, 15671.08175940660], [0.055, 3.14274403422, 33019.02111220460], [0.045, 3.00877289177, 8982.81066930900], [0.046, 0.73303568429, 6303.43116939020], [0.049, 1.60455690285, 6303.85124548380], [0.045, 0.40210030323, 6805.65326808520], [0.053, 0.94869680175, 10988.80815753500], [0.041, 1.61122384329, 6819.88036208680], [0.055, 0.89439119424, 11933.36796066960], [0.045, 3.88495384656, 60530.48898574180], [0.040, 4.75740908001, 38526.57435087200], [0.040, 1.49921251887, 18451.07854656599], [0.040, 3.77498297228, 26087.90314157420], [0.051, 1.70258603562, 1551.04522264800], [0.039, 2.97100699926, 2118.76386037840], [0.053, 5.19854123078, 77713.77146812050], [0.047, 4.26356628717, 21424.46664430340], [0.037, 0.62902722802, 24356.78078864160], [0.036, 0.11087914947, 10344.29506538580], [0.036, 0.77037556319, 12029.34718788740], [0.035, 3.30933994515, 24072.92146977640], [0.035, 5.93650887012, 31570.79964939120], [0.036, 2.15108874765, 30774.50164257480], [0.036, 1.75078825382, 16207.88627150200], [0.033, 5.06264177921, 226858.23855437007], [0.034, 6.16891378800, 24491.42579258340], [0.035, 3.19120695549, 32217.20018108080], [0.034, 2.31528650443, 55798.45835839840], [0.032, 4.21446357042, 15664.03552270859], [0.039, 1.24979117796, 6418.14093002680], [0.037, 4.11943655770, 2787.04302385740], [0.032, 1.62887710890, 639.89728631400], [0.038, 5.89832942685, 640.87760738220], [0.032, 1.72442327688, 27433.88921587499], [0.031, 2.78828943753, 12139.55350910680], [0.035, 4.44608896525, 18202.21671665939], [0.034, 3.96287980676, 18216.44381066100], [0.033, 4.73611335874, 16723.35014259500], [0.034, 1.43910280005, 49515.38250840700], [0.031, 0.23302920161, 23581.25817731760], [0.029, 2.02633840220, 11609.86254401220], [0.030, 2.54923230240, 9924.81042151060], [0.032, 4.91793198558, 11300.58422135640], [0.028, 0.26187189577, 13521.75144159140], [0.028, 3.84568936822, 2699.73481931760], [0.029, 1.83149729794, 29822.78323632420], [0.033, 4.60320094415, 19004.64794940840], [0.027, 4.46183450287, 6702.56049386660], [0.030, 4.46494072240, 36147.40987730040], [0.027, 0.03211931363, 6279.78949257360], [0.026, 5.46497324333, 6245.04817735560], [0.035, 4.52695674113, 36949.23080842420], [0.027, 3.52528177609, 10770.89325626180], [0.026, 1.48499438453, 11080.17157891760], [0.035, 2.82154380962, 19402.79695281660], [0.025, 2.46339998836, 6279.48542133960], [0.026, 4.97688894643, 16737.57723659660], [0.026, 2.36136541526, 17996.03116822220], [0.029, 4.15148654061, 45892.73043315699], [0.026, 4.50714272714, 17796.95916678580], [0.027, 4.72625223674, 1066.49547719000], [0.025, 2.89309528854, 6286.66627864320], [0.027, 0.37462444357, 12964.30070339100], [0.029, 4.94860010533, 5863.59120611620], [0.031, 3.93096113577, 29864.33402730900], [0.024, 6.14987193584, 18606.49894600020], [0.024, 3.74225964547, 29026.48522950779], [0.025, 5.70460621565, 27707.54249429480], [0.025, 5.33928840652, 15141.39079431200], [0.027, 3.02320897140, 6286.36220740920], [0.023, 0.28364955406, 5327.47610838280], [0.026, 1.34240461687, 18875.52586977400], [0.024, 1.33998410121, 19800.94595622480], [0.025, 6.00172494004, 6489.26139842860], [0.022, 1.81777974484, 6288.59877429880], [0.022, 3.58603606640, 6915.85958930460], [0.029, 2.09564449439, 15265.88651930040], [0.022, 1.02173599251, 11925.27409260060], [0.022, 4.74660932338, 28230.18722269139], [0.021, 2.30688751432, 5999.21653112620], [0.021, 3.22654944430, 25934.12433108940], [0.021, 3.04956726238, 6566.93516885660], [0.027, 5.35653084499, 33794.54372352860], [0.028, 3.91168324815, 18208.34994259200], [0.020, 1.52296293311, 135.06508003540], [0.022, 4.66462839521, 13362.44970679920], [0.019, 1.78121167862, 156137.47598479927], [0.019, 2.99969102221, 19651.04848109800], [0.019, 2.86664273362, 18422.62935909819], [0.025, 0.94995632141, 31415.37924995700], [0.019, 4.71432851499, 77690.75950573849], [0.019, 2.54227398241, 77736.78343050249], [0.020, 5.91915117116, 48739.85989708300], ], # R2 [ [4359.385, 5.78455133738, 6283.07584999140], [123.633, 5.57934722157, 12566.15169998280], [12.341, 3.14159265359, 0.00000000000], [8.792, 3.62777733395, 77713.77146812050], [5.689, 1.86958905084, 5573.14280143310], [3.301, 5.47027913302, 18849.22754997420], [1.471, 4.48028885617, 5507.55323866740], [1.013, 2.81456417694, 5223.69391980220], [0.854, 3.10878241236, 1577.34354244780], [1.102, 2.84173992403, 161000.68573767410], [0.648, 5.47349498544, 775.52261132400], [0.609, 1.37969434104, 6438.49624942560], [0.499, 4.41649242250, 6286.59896834040], [0.417, 0.90242451175, 10977.07880469900], [0.402, 3.20376585290, 5088.62883976680], [0.351, 1.81079227770, 5486.77784317500], [0.467, 3.65753702738, 7084.89678111520], [0.458, 5.38585314743, 149854.40013480789], [0.304, 3.51701098693, 796.29800681640], [0.266, 6.17413982699, 6836.64525283380], [0.279, 1.84120501086, 4694.00295470760], [0.260, 1.41629543251, 2146.16541647520], [0.266, 3.13832905677, 71430.69561812909], [0.321, 5.35313367048, 3154.68708489560], [0.238, 2.17720020018, 155.42039943420], [0.293, 4.61501268144, 4690.47983635860], [0.229, 4.75969588070, 7234.79425624200], [0.211, 0.21868065485, 4705.73230754360], [0.201, 4.21905743357, 1349.86740965880], [0.195, 4.57808285364, 529.69096509460], [0.253, 2.81496293039, 1748.01641306700], [0.182, 5.70454011389, 6040.34724601740], [0.179, 6.02897097053, 4292.33083295040], [0.186, 1.58690991244, 6309.37416979120], [0.170, 2.90220009715, 9437.76293488700], [0.166, 1.99984925026, 8031.09226305840], [0.158, 0.04783713552, 2544.31441988340], [0.197, 2.01083639502, 1194.44701022460], [0.165, 5.78372596778, 83996.84731811189], [0.214, 3.38285934319, 7632.94325965020], [0.140, 0.36401486094, 10447.38783960440], [0.151, 0.95153163031, 6127.65545055720], [0.136, 1.48426306582, 2352.86615377180], [0.127, 5.48475435134, 951.71840625060], [0.126, 5.26866506592, 6279.55273164240], [0.125, 3.75754889288, 6812.76681508600], [0.101, 4.95015746147, 398.14900340820], [0.102, 0.68468295277, 1592.59601363280], [0.100, 1.14568935785, 3894.18182954220], [0.129, 0.76540016965, 553.56940284240], [0.109, 5.41063597567, 6256.77753019160], [0.075, 5.84804322893, 242.72860397400], [0.095, 1.94452244083, 11856.21865142450], [0.077, 0.69373708195, 8429.24126646660], [0.100, 5.19725292131, 244287.60000722768], [0.080, 6.18440483705, 1059.38193018920], [0.069, 5.25699888595, 14143.49524243060], [0.085, 5.39484725499, 25132.30339996560], [0.066, 0.51779993906, 801.82093112380], [0.055, 5.16878202461, 7058.59846131540], [0.051, 3.88759155247, 12036.46073488820], [0.050, 5.57636570536, 6290.18939699220], [0.061, 2.24359003264, 8635.94200376320], [0.050, 5.54441900966, 1990.74501704100], [0.056, 4.00301078040, 13367.97263110660], [0.052, 4.13138898038, 7860.41939243920], [0.052, 3.90943054011, 26.29831979980], [0.041, 3.57128482780, 7079.37385680780], [0.056, 2.76959005761, 90955.55169449610], [0.042, 1.91461189199, 7477.52286021600], [0.042, 0.42728171713, 10213.28554621100], [0.042, 1.09413724455, 709.93304855830], [0.039, 3.93298068961, 10973.55568635000], [0.038, 6.17935925345, 9917.69687450980], [0.049, 0.83021145241, 11506.76976979360], [0.053, 1.45828359397, 233141.31440436150], [0.047, 6.21568666789, 6681.22485339960], [0.037, 0.36359309980, 10177.25767953360], [0.035, 3.33024911524, 5643.17856367740], [0.034, 5.63446915337, 6525.80445396540], [0.035, 5.36033855038, 25158.60171976540], [0.034, 5.36319798321, 4933.20844033260], [0.033, 4.24722336872, 12569.67481833180], [0.043, 5.26370903404, 10575.40668294180], [0.042, 5.08837645072, 11015.10647733480], [0.040, 1.98334703186, 6284.05617105960], [0.042, 4.22496037505, 88860.05707098669], [0.029, 3.19088628170, 11926.25441366880], [0.029, 0.15217616684, 12168.00269657460], [0.030, 1.61904744136, 9779.10867612540], [0.027, 0.76388991416, 1589.07289528380], [0.036, 2.74712003443, 3738.76143010800], [0.033, 3.08807829566, 3930.20969621960], [0.031, 5.34906619513, 143571.32428481648], [0.025, 0.10240267494, 22483.84857449259], [0.030, 3.47110495524, 14945.31617355440], [0.024, 1.10425016019, 4535.05943692440], [0.024, 1.58037259780, 6496.37494542940], [0.023, 3.87710321433, 6275.96230299060], [0.025, 3.94529778970, 3128.38876509580], [0.023, 3.44685609601, 4136.91043351620], [0.023, 3.83156029849, 5753.38488489680], [0.022, 1.86956128067, 16730.46368959580], [0.025, 2.42188933855, 5729.50644714900], [0.020, 1.78208352927, 17789.84561978500], [0.021, 4.30363087400, 16858.48253293320], [0.021, 0.49258939822, 29088.81141598500], [0.025, 1.33030250444, 6282.09552892320], [0.027, 2.54785812264, 3496.03282613400], [0.022, 1.11232521950, 12721.57209941700], [0.021, 5.97759081637, 7.11354700080], [0.019, 0.80292033311, 16062.18452611680], [0.023, 4.12454848769, 2388.89402044920], [0.022, 4.92663152168, 18875.52586977400], [0.023, 5.68902059771, 16460.33352952499], [0.023, 4.97346265647, 17260.15465469040], [0.023, 3.03021283729, 66567.48586525429], [0.016, 3.89740925257, 5331.35744374080], [0.017, 3.08268671348, 154717.60988768269], [0.016, 3.95085099736, 3097.88382272579], [0.016, 3.99041783945, 6283.14316029419], [0.020, 6.10644140189, 167283.76158766550], [0.015, 4.09775914607, 11712.95531823080], [0.016, 5.71769940700, 17298.18232732620], [0.016, 3.28894009404, 5884.92684658320], [0.015, 5.64785377164, 12559.03815298200], [0.016, 4.43452080930, 6283.00853968860], [0.014, 2.31721603062, 5481.25491886760], [0.014, 4.43479032305, 13517.87010623340], [0.014, 4.73209312936, 7342.45778018060], [0.012, 0.64705975463, 18073.70493865020], [0.011, 1.51443332200, 16200.77272450120], [0.011, 0.88708889185, 21228.39202354580], [0.014, 4.50116508534, 640.87760738220], [0.011, 4.64339996198, 11790.62908865880], [0.011, 1.31064298246, 4164.31198961300], [0.009, 3.02238989305, 23543.23050468179], [0.009, 2.04999402381, 22003.91463486980], [0.009, 4.91488110218, 213.29909543800], ], # R3 [ [144.595, 4.27319435148, 6283.07584999140], [6.729, 3.91697608662, 12566.15169998280], [0.774, 0.00000000000, 0.00000000000], [0.247, 3.73019298781, 18849.22754997420], [0.036, 2.80081409050, 6286.59896834040], [0.033, 5.62216602775, 6127.65545055720], [0.019, 3.71292621802, 6438.49624942560], [0.016, 4.26011484232, 6525.80445396540], [0.016, 3.50416887054, 6256.77753019160], [0.014, 3.62127621114, 25132.30339996560], [0.011, 4.39200958819, 4705.73230754360], [0.011, 5.22327127059, 6040.34724601740], [0.010, 4.28045254647, 83996.84731811189], [0.009, 1.56864096494, 5507.55323866740], [0.011, 1.37795688024, 6309.37416979120], [0.010, 5.19937959068, 71430.69561812909], [0.009, 0.47275199930, 6279.55273164240], [0.009, 0.74642756529, 5729.50644714900], [0.007, 2.97374891560, 775.52261132400], [0.007, 3.28615691021, 7058.59846131540], [0.007, 2.19184402142, 6812.76681508600], [0.005, 3.15419034438, 529.69096509460], [0.006, 4.54725567047, 1059.38193018920], [0.005, 1.51104406936, 7079.37385680780], [0.007, 2.98052059053, 6681.22485339960], [0.005, 2.30961231391, 12036.46073488820], [0.005, 3.71102966917, 6290.18939699220], ], # R4 [ [3.858, 2.56384387339, 6283.07584999140], [0.306, 2.26769501230, 12566.15169998280], [0.053, 3.44031471924, 5573.14280143310], [0.015, 2.04794573436, 18849.22754997420], [0.013, 2.05688873673, 77713.77146812050], [0.007, 4.41218854480, 161000.68573767410], [0.005, 5.26154653107, 6438.49624942560], [0.005, 4.07695126049, 6127.65545055720], [0.006, 3.81514213664, 149854.40013480789], [0.003, 1.28175749811, 6286.59896834040], ], # R5 [ [0.086, 1.21579741687, 6283.07584999140], [0.012, 0.65617264033, 12566.15169998280], [0.001, 0.38068797142, 18849.22754997420], ], ] """This table contains Earth's periodic terms (all of them) from the planetary theory VSOP87 for the radius vector at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in pages 420-421.""" VSOP87_L_J2000 = [ # L0 [ [175347046.0, 0.0, 0.0], [3341656.0, 4.6692568, 6283.07585], [34894.0, 4.6261, 12556.1517], [3497.0, 2.7441, 5753.3849], [3418.0, 2.8289, 3.5231], [3136.0, 3.6277, 77713.7715], [2676.0, 4.4181, 7860.4194], [2343.0, 6.1352, 3930.2097], [1324.0, 0.7425, 11506.7698], [1273.0, 2.0371, 529.691], [1199.0, 1.1096, 1577.3435], [990.0, 5.233, 5884.927], [902.0, 2.045, 26.298], [857.0, 3.508, 398.149], [780.0, 1.179, 5223.694], [753.0, 2.533, 5507.553], [505.0, 4.583, 18849.228], [492.0, 4.205, 775.523], [357.0, 2.92, 0.067], [317.0, 5.849, 11790.629], [284.0, 1.899, 796.298], [271.0, 0.315, 10977.079], [243.0, 0.345, 5486.778], [206.0, 4.806, 2544.314], [205.0, 1.869, 5573.143], [202.0, 2.458, 6069.777], [156.0, 0.833, 213.299], [132.0, 3.411, 2942.463], [126.0, 1.083, 20.775], [115.0, 0.645, 0.98], [103.0, 0.636, 4694.003], [102.0, 0.976, 15720.839], [102.0, 4.267, 7.114], [99.0, 6.21, 2146.17], [98.0, 0.68, 155.42], [86.0, 5.98, 161000.69], [85.0, 1.3, 6275.96], [85.0, 3.67, 71430.7], [80.0, 1.81, 17260.15], [79.0, 3.04, 12036.46], [75.0, 1.76, 5088.63], [74.0, 3.5, 3154.69], [74.0, 4.68, 801.82], [70.0, 0.83, 9437.76], [62.0, 3.98, 8827.39], [61.0, 1.82, 7084.9], [57.0, 2.78, 6286.6], [56.0, 4.39, 14143.5], [56.0, 3.47, 6279.55], [52.0, 0.19, 12139.55], [52.0, 1.33, 1748.02], [51.0, 0.28, 5856.48], [49.0, 0.49, 1194.45], [41.0, 5.37, 8429.24], [41.0, 2.4, 19651.05], [39.0, 6.17, 10447.39], [37.0, 6.04, 10213.29], [37.0, 2.57, 1059.38], [36.0, 1.71, 2352.87], [36.0, 1.78, 6812.77], [33.0, 0.59, 17789.85], [30.0, 0.44, 83996.85], [30.0, 2.74, 1349.87], [25.0, 3.16, 4690.48], ], # L1 [ [628307584999.0, 0.0, 0.0], [206059.0, 2.678235, 6283.07585], [4303.0, 2.6351, 12566.1517], [425.0, 1.59, 3.523], [119.0, 5.796, 26.298], [109.0, 2.966, 1577.344], [93.0, 2.59, 18849.23], [72.0, 1.14, 529.69], [68.0, 1.87, 398.15], [67.0, 4.41, 5507.55], [59.0, 2.89, 5223.69], [56.0, 2.17, 155.42], [45.0, 0.4, 796.3], [36.0, 0.47, 775.52], [29.0, 2.65, 7.11], [21.0, 5.34, 0.98], [19.0, 1.85, 5486.78], [19.0, 4.97, 213.3], [17.0, 2.99, 6275.96], [16.0, 0.03, 2544.31], [16.0, 1.43, 2146.17], [15.0, 1.21, 10977.08], [12.0, 2.83, 1748.02], [12.0, 3.26, 5088.63], [12.0, 5.27, 1194.45], [12.0, 2.08, 4694.0], [11.0, 0.77, 553.57], [10.0, 1.3, 6286.6], [10.0, 4.24, 1349.87], [9.0, 2.7, 242.73], [9.0, 5.64, 951.72], [8.0, 5.3, 2352.87], [6.0, 2.65, 9437.76], [6.0, 4.67, 4690.48], ], # L2 [ [8722.0, 1.0725, 6283.0758], [991.0, 3.1416, 0.0], [295.0, 0.437, 12566.152], [27.0, 0.05, 3.52], [16.0, 5.19, 26.3], [16.0, 3.69, 155.42], [9.0, 0.3, 18849.23], [9.0, 2.06, 77713.77], [7.0, 0.83, 775.52], [5.0, 4.66, 1577.34], [4.0, 1.03, 7.11], [4.0, 3.44, 5573.14], [3.0, 5.14, 796.3], [3.0, 6.05, 5507.55], [3.0, 1.19, 242.73], [3.0, 6.12, 529.69], [3.0, 0.3, 398.15], [3.0, 2.28, 553.57], [2.0, 4.38, 5223.69], [2.0, 3.75, 0.98], ], # L3 [ [289.0, 5.842, 6283.076], [21.0, 6.05, 12556.15], [3.0, 5.2, 155.42], [3.0, 3.14, 0.0], [1.0, 4.72, 3.52], [1.0, 5.97, 242.73], [1.0, 5.54, 18849.23], ], # L4 [[8.0, 4.14, 6283.08], [1.0, 3.28, 12566.15]], ] """This table contains Earth's most important periodic terms from the planetary theory VSOP87 for the heliocentric longitude, referred to the equinox J2000.0. In Meeus' book these values can be found in pages 418-420 and page 173.""" VSOP87_B_J2000 = [ # B0 [ [280.0, 3.199, 84334.662], [102.0, 5.422, 5507.553], [80.0, 3.88, 5223.69], [44.0, 3.7, 2352.87], [32.0, 4.0, 1577.34], ], # B1 [ [227778.0, 3.413766, 6283.07585], [3806.0, 3.3706, 12566.1517], [3620.0, 0.0, 0.0], [72.0, 3.33, 18849.23], [8.0, 3.89, 5507.55], [8.0, 1.79, 5223.69], [6.0, 5.2, 2352.87], ], # B2 [ [9721.0, 5.1519, 6283.07585], [233.0, 3.1416, 0.0], [134.0, 0.644, 12566.152], [7.0, 1.07, 18849.23], ], # B3 [[276.0, 0.595, 6283.076], [17.0, 3.14, 0.0], [4.0, 0.12, 12566.15]], # B4 [[6.0, 2.27, 6283.08], [1.0, 0.0, 0.0]], ] """This table contains Earth's most important periodic terms from the planetary theory VSOP87 for the heliocentric latitude, referred to the equinox J2000.0. In Meeus' book these values can be found in page 420 and page 173.""" ORBITAL_ELEM = [ [100.466457, 36000.7698278, 0.00030322, 0.00000002], # L [1.000001018, 0.0, 0.0, 0.0], # a [0.01670863, -0.000042037, -0.0000001267, 0.00000000014], # e [0.0, 0.0, 0.0, 0.0], # i [174.873176, -0.2410908, 0.00004262, 0.000000001], # Omega [102.937348, 1.7195366, 0.00045688, -0.000000018] # pie ] """This table contains the parameters to compute Earth's orbital elements for the mean equinox of date. Based in Table 31.A, page 212""" ORBITAL_ELEM_J2000 = [ [100.466457, 35999.3728565, -0.00000568, -0.000000001], # L [0.0, 0.0130548, -0.00000931, -0.000000034], # i [174.873176, -0.2410908, 0.00004262, 0.000000001], # Omega [102.937348, 0.3225654, 0.00014799, -0.000000039] # pie ] """This table contains the parameters to compute Earth's orbital elements for the standard equinox J2000.0. Based on Table 31.B, page 214""" class Ellipsoid(object): """ Class Ellipsoid is useful to encapsulate the most important parameters of a given reference ellipsoid. """ def __init__(self, a, f, omega): """Ellipsoid constructor. :param a: Semi-major or equatorial radius, in meters :type a: float :param f: Flattening :type f: float :param omega: Angular velocity of the Earth, in rad/s :type omega: float """ self._a = a self._f = f self._omega = omega def __str__(self): """Method used when trying to print the object. :returns: Semi-major equatorial radius, flattening and angular velocity as a string. :rtype: string >>> a = Ellipsoid(6378140.0, 0.0033528132, 7.292e-5) >>> print(a) 6378140.0:0.0033528132:7.292e-05 """ return "{}:{}:{}".format(self._a, self._f, self._omega) def __repr__(self): """Method providing the 'official' string representation of the object. It provides a valid expression that could be used to recreate the object. :returns: As string with a valid expression to recreate the object :rtype: string >>> a = Ellipsoid(6378140.0, 0.0033528132, 7.292e-5) >>> repr(a) 'Ellipsoid(6378140.0, 0.0033528132, 7.292e-05)' """ return "{}({}, {}, {})".format( self.__class__.__name__, self._a, self._f, self._omega ) def b(self): """Method to return the semi-minor radius. :returns: Semi-minor radius, in meters :rtype: float >>> a = Ellipsoid(6378140.0, 0.0033528132, 7.292e-5) >>> round(a.b(), 3) 6356755.288 """ return self._a * (1.0 - self._f) def e(self): """Method to return the eccentricity of the Earth's meridian. :returns: Eccentricity of the Earth's meridian :rtype: float >>> a = Ellipsoid(6378140.0, 0.0033528132, 7.292e-5) >>> round(a.e(), 8) 0.08181922 """ f = self._f return sqrt(2.0 * f - f * f) IAU76 = Ellipsoid(6378140.0, (1.0 / 298.257), 7.292114992e-5) """Reference ellipsoid defined by the International Astronomic Union in 1976""" WGS84 = Ellipsoid(6378137.0, (1.0 / 298.257223563), 7292115e-11) """Reference ellipsoid World Geodetic System 1984, a modern ellipsoid used by the GPS system, and the standard in many applications""" class Earth(object): """ Class Earth models the figure of the Earth surface and, with the help of a configurable reference ellipsoid, provides a set of handy method to compute different parameters, like the distance between two points on the surface. Please note that here we depart a little bit from Meeus' book because the Earth class uses the **World Geodetic System 1984 (WGS84)** as the default reference ellipsoid, instead of the International Astronomical Union 1974, which Meeus uses. This change is done because WGS84 is regarded as more modern. """ def __init__(self, ellipsoid=WGS84): """Earth constructor. It takes a reference ellipsoid as input. If not provided, the ellipsoid used is the WGS84 by default. :param ellipsoid: Reference ellipsoid to be used. WGS84 by default. :type radians: :class:`Ellipsoid` :returns: Earth object. :rtype: :py:class:`Earth` :raises: TypeError if input value is of wrong type. """ # Set an invalid ellipsoid by default self._ellip = Ellipsoid(0.0, 0.0, 0.0) self.set(ellipsoid) # Let's use 'set()' method def set(self, ellipsoid): """Method used to define an Earth object. It takes a reference ellipsoid as input. If not provided, the ellipsoid used is the WGS84 by default. :param ellipsoid: Reference ellipsoid to be used. WGS84 by default. :type radians: :class:`Ellipsoid` :returns: None :rtype: None :raises: TypeError if input value is of wrong type. """ if isinstance(ellipsoid, Ellipsoid): self._ellip = ellipsoid else: raise TypeError("Invalid input value") return def __str__(self): """Method used when trying to print the Earth object. It essentially returns the corresponting '__str__()' method from the reference ellipsoid being used. :returns: Semi-major equatorial radius, flattening and angular velocity of the current reference ellipsoid, as a string. :rtype: string >>> e = Earth() >>> s = str(e) >>> v = s.split(':') >>> print(v[0] + '|' + str(round(float(v[1]), 14)) + '|' + v[2] ) 6378137.0|0.00335281066475|7.292115e-05 """ return str(self._ellip) def __repr__(self): """Method providing the 'official' string representation of the object. It provides a valid expression that could be used to recreate the object. :returns: As string with a valid expression to recreate the object :rtype: string """ return "{}(ellipsoid=Ellipsoid({}, {}, {}))".format( self.__class__.__name__, self._ellip._a, self._ellip._f, self._ellip._omega ) def rho(self, latitude): """Method to compute the rho term, which is the observer distance to the center of the Earth, when the observer is at sea level. In this case, the Earth's equatorial radius is taken as unity. :param latitude: Geodetical or geographical latitude of the observer, in degrees :type latitude: int, float, :class:`Angle` :returns: Rho: Distance to the center of the Earth from sea level. It is a ratio with respect to Earth equatorial radius. :rtype: float :raises: TypeError if input value is of wrong type. >>> e = Earth(ellipsoid=IAU76) >>> round(e.rho(0.0), 1) 1.0 """ if not isinstance(latitude, (int, float, Angle)): raise TypeError("Invalid input value") if isinstance(latitude, (int, float)): phi = radians(latitude) # Convert to radians else: phi = latitude.rad() # It is an Angle. Call method rad() return (0.9983271 + 0.0016764 * cos(2.0 * phi) - 0.0000035 * cos(4.0 * phi)) def rho_sinphi(self, latitude, height): """Method to compute the rho*sin(phi') term, needed in the calculation of diurnal parallaxes, eclipses and occulatitions. :param latitude: Geodetical or geographical latitude of the observer, in degrees :type latitude: int, float, :class:`Angle` :param height: Height of the observer above the sea level, in meters :type height: int, float :returns: rho*sin(phi') term :rtype: float :raises: TypeError if input value is of wrong type. >>> lat = Angle(33, 21, 22.0) >>> e = Earth(ellipsoid=IAU76) >>> round(e.rho_sinphi(lat, 1706), 6) 0.546861 """ if not ( isinstance(latitude, (int, float, Angle)) and isinstance(height, (int, float)) ): raise TypeError("Invalid input value") if isinstance(latitude, (int, float)): phi = radians(latitude) # Convert to radians else: phi = latitude.rad() # It is an Angle. Call method rad() b_a = self._ellip.b() / self._ellip._a u = atan(b_a * tan(phi)) return b_a * sin(u) + height / self._ellip._a * sin(phi) def rho_cosphi(self, latitude, height): """Method to compute the rho*cos(phi') term, needed in the calculation of diurnal parallaxes, eclipses and occulatitions. :param latitude: Geodetical or geographical latitude of the observer, in degrees :type latitude: int, float, :class:`Angle` :param height: Height of the observer above the sea level, in meters :type height: int, float :returns: rho*cos(phi') term :rtype: float :raises: TypeError if input value is of wrong type. >>> lat = Angle(33, 21, 22.0) >>> e = Earth(ellipsoid=IAU76) >>> round(e.rho_cosphi(lat, 1706), 6) 0.836339 """ if not ( isinstance(latitude, (int, float, Angle)) and isinstance(height, (int, float)) ): raise TypeError("Invalid input value") if isinstance(latitude, (int, float)): phi = radians(latitude) # Convert to radians else: phi = latitude.rad() # It is an Angle. Call method rad() b_a = self._ellip.b() / self._ellip._a u = atan(b_a * tan(phi)) return cos(u) + height / self._ellip._a * cos(phi) def rp(self, latitude): """Method to compute the radius of the parallel circle at the given latitude. :param latitude: Geodetical or geographical latitude of the observer, in degrees :type latitude: int, float, :class:`Angle` :returns: Radius of the parallel circle at given latitude, in meters :rtype: float :raises: TypeError if input value is of wrong type. >>> e = Earth(ellipsoid=IAU76) >>> round(e.rp(42.0), 1) 4747001.2 """ if not isinstance(latitude, (int, float, Angle)): raise TypeError("Invalid input value") if isinstance(latitude, (int, float)): phi = radians(latitude) # Convert to radians else: phi = latitude.rad() # It is an Angle. Call method rad() a = self._ellip._a e = self._ellip.e() return (a * cos(phi)) / sqrt(1.0 - e * e * sin(phi) * sin(phi)) def linear_velocity(self, latitude): """Method to compute the linear velocity of a point at latitude, due to the rotation of the Earth. :param latitude: Geodetical or geographical latitude of the observer, in degrees :type latitude: int, float, :class:`Angle` :returns: Linear velocity of a point at latitude, in meters per second :rtype: float :raises: TypeError if input value is of wrong type. >>> e = Earth(ellipsoid=IAU76) >>> round(e.linear_velocity(42.0), 2) 346.16 """ if not isinstance(latitude, (int, float, Angle)): raise TypeError("Invalid input value") omega = self._ellip._omega return omega * self.rp(latitude) def rm(self, latitude): """Method to compute the radius of curvature of the Earth's meridian at the given latitude. :param latitude: Geodetical or geographical latitude of the observer, in degrees :type latitude: int, float, :class:`Angle` :returns: Radius of curvature of the Earth's meridian at the given latitude, in meters :rtype: float :raises: TypeError if input value is of wrong type. >>> e = Earth(ellipsoid=IAU76) >>> round(e.rm(42.0), 1) 6364033.3 """ if not isinstance(latitude, (int, float, Angle)): raise TypeError("Invalid input value") if isinstance(latitude, (int, float)): phi = radians(latitude) # Convert to radians else: phi = latitude.rad() # It is an Angle. Call method rad() a = self._ellip._a e = self._ellip.e() return (a * (1.0 - e * e)) / (1.0 - e * e * sin(phi) * sin(phi)) ** 1.5 def distance(self, lon1, lat1, lon2, lat2): """This method computes the distance between two points on the Earth's surface using the method from H. Andoyer. .. note:: We will consider that positions 'East' and 'South' are negative. :param lon1: Longitude of the first point, in degrees :type lon1: int, float, :class:`Angle` :param lat1: Geodetical or geographical latitude of the first point, in degrees :type lat1: int, float, :class:`Angle` :param lon2: Longitude of the second point, in degrees :type lon2: int, float, :class:`Angle` :param lat2: Geodetical or geographical latitude of the second point, in degrees :type lat2: int, float, :class:`Angle` :returns: Tuple with distance between the two points along Earth's surface, and approximate error, in meters :rtype: tuple :raises: TypeError if input values are of wrong type. >>> e = Earth(ellipsoid=IAU76) >>> lon1 = Angle(-2, 20, 14.0) >>> lat1 = Angle(48, 50, 11.0) >>> lon2 = Angle(77, 3, 56.0) >>> lat2 = Angle(38, 55, 17.0) >>> dist, error = e.distance(lon1, lat1, lon2, lat2) >>> round(dist, 0) 6181628.0 >>> error 69.0 >>> lon1 = Angle(-2.09) >>> lat1 = Angle(41.3) >>> lon2 = Angle(73.99) >>> lat2 = Angle(40.75) >>> dist, error = e.distance(lon1, lat1, lon2, lat2) >>> round(dist, 0) 6176760.0 >>> error 69.0 """ if not ( isinstance(lon1, (int, float, Angle)) and isinstance(lat1, (int, float, Angle)) and isinstance(lon2, (int, float, Angle)) and isinstance(lat2, (int, float, Angle)) ): raise TypeError("Invalid input value") if isinstance(lon1, (int, float)): l1 = radians(lon1) # Convert to radians else: l1 = lon1.rad() # It is an Angle. Call method rad() if isinstance(lat1, (int, float)): phi1 = radians(lat1) # Convert to radians else: phi1 = lat1.rad() # It is an Angle. Call method rad() if isinstance(lon2, (int, float)): l2 = radians(lon2) # Convert to radians else: l2 = lon2.rad() # It is an Angle. Call method rad() if isinstance(lat2, (int, float)): phi2 = radians(lat2) # Convert to radians else: phi2 = lat2.rad() # It is an Angle. Call method rad() f = (phi1 + phi2) / 2.0 g = (phi1 - phi2) / 2.0 lam = (l1 - l2) / 2.0 sin2g = sin(g) ** 2 cos2g = cos(g) ** 2 cos2f = cos(f) ** 2 sin2f = sin(f) ** 2 sin2lam = sin(lam) ** 2 cos2lam = cos(lam) ** 2 s = sin2g * cos2lam + cos2f * sin2lam c = cos2g * cos2lam + sin2f * sin2lam omega = atan(sqrt(s / c)) r = sqrt(s * c) / omega d = 2.0 * omega * self._ellip._a h1 = (3.0 * r - 1.0) / (2.0 * c) h2 = (3.0 * r + 1.0) / (2.0 * s) fe = self._ellip._f dist = d * (1.0 + fe * (h1 * sin2f * cos2g - h2 * cos2f * sin2g)) error = round(dist * fe * fe, 0) return dist, error @staticmethod def geometric_heliocentric_position(epoch, tofk5=True): """This method computes the geometric heliocentric position of the Earth for a given epoch, using the VSOP87 theory. :param epoch: Epoch to compute Earth position, as an Epoch object :type epoch: :py:class:`Epoch` :param tofk5: Whether or not the small correction to convert to the FK5 system will be applied or not :type tofk5: bool :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(1992, 10, 13.0) >>> l, b, r = Earth.geometric_heliocentric_position(epoch, tofk5=False) >>> print(round(l.to_positive(), 6)) 19.907297 >>> print(b.dms_str(n_dec=3)) -0.744'' >>> print(round(r, 8)) 0.99760852 """ # NOTE: In page 169, Meeus gives a different value for the LONGITUDE # (19.907372 degrees) as the one presented above (19.906016 degrees). # After many checks and tests, I came to the conclusion that the result # above is the right one, and Meeus' result is wrong return geometric_vsop_pos(epoch, VSOP87_L, VSOP87_B, VSOP87_R, tofk5) @staticmethod def apparent_heliocentric_position(epoch, nutation=True): """This method computes the apparent heliocentric position of the Earth for a given epoch, using the VSOP87 theory. :param epoch: Epoch to compute Earth position, as an Epoch object :type epoch: :py:class:`Epoch` :param nutation: Whether the nutation correction will be applied :type nutation: bool :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(1992, 10, 13.0) >>> lon, lat, r = Earth.apparent_heliocentric_position(epoch) >>> print(round(lon.to_positive(), 6)) 19.905986 >>> print(lat.dms_str(n_dec=3)) -0.721'' >>> print(round(r, 8)) 0.99760852 """ return apparent_vsop_pos(epoch, VSOP87_L, VSOP87_B, VSOP87_R, nutation) @staticmethod def geometric_heliocentric_position_j2000(epoch, tofk5=True): """This method computes the geometric heliocentric position of the Earth for a given epoch, using the VSOP87 theory, referred to the equinox J2000.0. :param epoch: Epoch to compute Earth position, as an Epoch object :type epoch: :py:class:`Epoch` :param tofk5: Whether or not the small correction to convert to the FK5 system will be applied or not :type tofk5: bool :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. """ return geometric_vsop_pos( epoch, VSOP87_L_J2000, VSOP87_B_J2000, VSOP87_R, tofk5 ) @staticmethod def orbital_elements_mean_equinox(epoch): """This method computes the orbital elements of Earth for the mean equinox of the date for a given epoch. :param epoch: Epoch to compute orbital elements, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the following six orbital elements: - Mean longitude of the planet (Angle) - Semimajor axis of the orbit (float, astronomical units) - eccentricity of the orbit (float) - inclination on the plane of the ecliptic (Angle) - longitude of the ascending node (Angle) - argument of the perihelion (Angle) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2065, 6, 24.0) >>> l, a, e, i, ome, arg = Earth.orbital_elements_mean_equinox(epoch) >>> print(round(l, 6)) 272.716028 >>> print(round(a, 8)) 1.00000102 >>> print(round(e, 7)) 0.0166811 >>> print(round(i, 6)) 0.0 >>> print(round(ome, 5)) 174.71534 >>> print(round(arg, 6)) -70.651889 """ return orbital_elements(epoch, ORBITAL_ELEM, ORBITAL_ELEM) @staticmethod def orbital_elements_j2000(epoch): """This method computes the orbital elements of Earth for the standard equinox J2000.0 for a given epoch. :param epoch: Epoch to compute orbital elements, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the following six orbital elements: - Mean longitude of the planet (Angle) - Semimajor axis of the orbit (float, astronomical units) - eccentricity of the orbit (float) - inclination on the plane of the ecliptic (Angle) - longitude of the ascending node (Angle) - argument of the perihelion (Angle) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2065, 6, 24.0) >>> l, a, e, i, ome, arg = Earth.orbital_elements_j2000(epoch) >>> print(round(l, 6)) 271.801199 >>> print(round(a, 8)) 1.00000102 >>> print(round(e, 7)) 0.0166811 >>> print(round(i, 6)) 0.008544 >>> print(round(ome, 5)) 174.71534 >>> print(round(arg, 6)) -71.566717 """ return orbital_elements(epoch, ORBITAL_ELEM, ORBITAL_ELEM_J2000) @staticmethod def perihelion_aphelion(epoch, perihelion=True): """This method computes the time of Perihelion (or Aphelion) closer to a given epoch. :param epoch: Epoch close to the desired Perihelion (or Aphelion) :type epoch: :py:class:`Epoch` :param peihelion: If True, the epoch of the closest Perihelion is computed, if False, the epoch of the closest Aphelion is found. :type bool: :returns: The epoch of the desired Perihelion (or Aphelion) :rtype: :py:class:`Epoch` :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(1989, 11, 20.0) >>> e = Earth.perihelion_aphelion(epoch) >>> y, m, d, h, mi, s = e.get_full_date() >>> print(y) 1990 >>> print(m) 1 >>> print(d) 4 >>> print(h) 17 >>> epoch = Epoch(2000, 4, 1.0) >>> e = Earth.perihelion_aphelion(epoch, perihelion=False) >>> y, m, d, h, mi, s = e.get_full_date() >>> print(y) 2000 >>> print(m) 7 >>> print(d) 3 >>> print(h) 23 >>> print(mi) 51 >>> epoch = Epoch(2003, 3, 10.0) >>> e = Earth.perihelion_aphelion(epoch) >>> y, m, d, h, mi, s = e.get_full_date() >>> print(y) 2003 >>> print(m) 1 >>> print(d) 4 >>> print(h) 5 >>> print(mi) 1 >>> epoch = Epoch(2009, 5, 1.0) >>> e = Earth.perihelion_aphelion(epoch, perihelion=False) >>> y, m, d, h, mi, s = e.get_full_date() >>> print(y) 2009 >>> print(m) 7 >>> print(d) 4 >>> print(h) 1 >>> print(mi) 41 """ if not isinstance(epoch, Epoch): raise TypeError("Invalid input value") # First approximation k = 0.99997 * (epoch.year() - 2000.01) if perihelion: k = round(k) else: k = round(k + 0.5) - 0.5 jde = 2451547.507 + k * (365.2596358 + k * 0.0000000156) # Compute correction to first approximation a1 = Angle(328.41 + 132.788585 * k) a2 = Angle(316.13 + 584.903153 * k) a3 = Angle(346.20 + 450.380738 * k) a4 = Angle(136.95 + 659.306737 * k) a5 = Angle(249.52 + 329.653368 * k) if perihelion: corr = (1.278 * sin(a1.rad()) - 0.055 * sin(a2.rad()) - 0.091 * sin(a3.rad()) - 0.056 * sin(a4.rad()) - 0.045 * sin(a5.rad())) else: corr = (-1.352 * sin(a1.rad()) + 0.061 * sin(a2.rad()) + 0.062 * sin(a3.rad()) + 0.029 * sin(a4.rad()) + 0.031 * sin(a5.rad())) jde += corr # Compute the epochs half a day before and after jde_before = jde - 0.5 jde_after = jde + 0.5 # Compute the Sun-Earth distance for each epoch l, b, r_b = Earth.geometric_heliocentric_position(Epoch(jde_before)) l, b, r = Earth.geometric_heliocentric_position(Epoch(jde)) l, b, r_a = Earth.geometric_heliocentric_position(Epoch(jde_after)) # Call an interpolation object m = Interpolation([jde_before, jde, jde_after], [r_b, r, r_a]) sol = m.minmax() return Epoch(sol) @staticmethod def passage_nodes(epoch, ascending=True): """This function computes the time of passage by the nodes (ascending or descending) of Earth, nearest to the given epoch. :param epoch: Epoch closest to the node passage :type epoch: :py:class:`Epoch` :param ascending: Whether the time of passage by the ascending (True) or descending (False) node will be computed :type ascending: bool :returns: Tuple containing: - Time of passage through the node (:py:class:`Epoch`) - Radius vector when passing through the node (in AU, float) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2019, 1, 1) >>> time, r = Earth.passage_nodes(epoch) >>> year, month, day = time.get_date() >>> print(year) 2019 >>> print(month) 3 >>> print(round(day, 1)) 15.0 >>> print(round(r, 4)) 0.9945 """ if not isinstance(epoch, Epoch): raise TypeError("Invalid input types") # Get the orbital parameters l, a, e, i, ome, arg = Earth.orbital_elements_mean_equinox(epoch) # Compute the time of passage through perihelion t = Earth.perihelion_aphelion(epoch) # Get the time of passage through the node time, r = passage_nodes_elliptic(arg, e, a, t, ascending) return time, r @staticmethod def parallax_correction(right_ascension, declination, latitude, distance, hour_angle, height=0.0): """This function computes the parallaxes in right ascension and declination in order to obtain the topocentric values. :param right_ascension: Geocentric right ascension, as an :py:class:`Angle` object :type right_ascension: :py:class:`Angle` :param declination: Geocentric declination, as an :py:class:`Angle` object :type declination: :py:class:`Angle` :param latitude: Latitude of the observation point :type latitude: :py:class:`Angle` :param distance: Distance from the celestial object to the Earth, in Astronomical Units :type distance: float :param hour_angle: Geocentric hour angle of the celestial object, as an :py:class:`Angle` :type hour_angle: :py:class:`Angle` :param heigth: Height of observation point above sea level, in meters :type height: float :returns: Tuple containing the topocentric right ascension and declination :rtype: tuple :raises: TypeError if input values are of wrong type. >>> right_ascension = Angle(22, 38, 7.25, ra=True) >>> declination = Angle(-15, 46, 15.9) >>> latitude = Angle(33, 21, 22) >>> distance = 0.37276 >>> hour_angle = Angle(288.7958) >>> topo_ra, topo_dec = Earth.parallax_correction(right_ascension, \ declination, \ latitude, distance, \ hour_angle) >>> print(topo_ra.ra_str(n_dec=2)) 22h 38' 8.54'' >>> print(topo_dec.dms_str(n_dec=1)) -15d 46' 30.0'' """ if not (isinstance(right_ascension, Angle) and isinstance(declination, Angle) and isinstance(latitude, Angle) and isinstance(distance, float) and isinstance(hour_angle, Angle) and isinstance(height, float)): raise TypeError("Invalid input types") # Let's start computing the equatorial horizontal parallax ang = Angle(0, 0, 8.794) sin_pi = sin(ang.rad()) / distance # Also, the values related to the latitude e = Earth() rho_sinphi = e.rho_sinphi(latitude, height) rho_cosphi = e.rho_cosphi(latitude, height) # Now, let's compute the correction for the right ascension delta_a = atan2(-rho_cosphi * sin_pi * sin(hour_angle.rad()), cos(declination.rad()) - rho_cosphi * sin_pi * cos(hour_angle.rad())) delta_a = Angle(delta_a, radians=True) # And finally, the declination already corrected dec = atan2((sin(declination.rad()) - rho_sinphi * sin_pi) * cos(delta_a.rad()), cos(declination.rad()) - rho_cosphi * sin_pi * cos(hour_angle.rad())) dec = Angle(dec, radians=True) return (right_ascension + delta_a), dec @staticmethod def parallax_ecliptical(longitude, latitude, semidiameter, obs_lat, obliquity, sidereal_time, distance, height=0.0): """This function computes the topocentric coordinates of a celestial body (Moon or planet) directly from its geocentric values in ecliptical coordinates. :param longitude: Geocentric ecliptical longitude as an :py:class:`Angle` :type longitude: :py:class:`Angle` :param latitude: Geocentric ecliptical latitude as an :py:class:`Angle` :type latitude: :py:class:`Angle` :param semidiameter: Geocentric semidiameter as an :py:class:`Angle` :type semidiameter: :py:class:`Angle` :param obs_lat: Latitude of the observation point :type obs_lat: :py:class:`Angle` :param obliquity: Obliquity of the eliptic, as an :py:class:`Angle` :type obliquity: :py:class:`Angle` :param sidereal_time: Local sidereal time, as an :py:class:`Angle` :type sidereal_time: :py:class:`Angle` :param distance: Distance from the celestial object to the Earth, in Astronomical Units :type distance: float :param heigth: Height of observation point above sea level, in meters :type height: float :returns: Tuple containing the topocentric longitude, latitude and semidiameter :rtype: tuple :raises: TypeError if input values are of wrong type. >>> longitude = Angle(181, 46, 22.5) >>> latitude = Angle(2, 17, 26.2) >>> semidiameter = Angle(0, 16, 15.5) >>> obs_lat = Angle(50, 5, 7.8) >>> obliquity = Angle(23, 28, 0.8) >>> sidereal_time = Angle(209, 46, 7.9) >>> distance = 0.0024650163 >>> topo_lon, topo_lat, topo_diam = \ Earth.parallax_ecliptical(longitude, latitude, semidiameter, \ obs_lat, obliquity, sidereal_time, \ distance) >>> print(topo_lon.dms_str(n_dec=1)) 181d 48' 5.0'' >>> print(topo_lat.dms_str(n_dec=1)) 1d 29' 7.1'' >>> print(topo_diam.dms_str(n_dec=1)) 16' 25.5'' """ if not (isinstance(longitude, Angle) and isinstance(latitude, Angle) and isinstance(semidiameter, Angle) and isinstance(obs_lat, Angle) and isinstance(obliquity, Angle) and isinstance(sidereal_time, Angle) and isinstance(distance, float) and isinstance(height, float)): raise TypeError("Invalid input types") # Let's start computing the equatorial horizontal parallax ang = Angle(0, 0, 8.794) sin_pi = sin(ang.rad()) / distance # Also, the values related to the latitude e = Earth() rho_sinphi = e.rho_sinphi(obs_lat, height) rho_cosphi = e.rho_cosphi(obs_lat, height) # Let's compute some auxiliary quantities lonr = longitude.rad() latr = latitude.rad() semir = semidiameter.rad() sidr = sidereal_time.rad() oblr = obliquity.rad() n = cos(lonr) * cos(latr) - rho_cosphi * sin_pi * cos(sidr) # Now, compute the topocentric longitude topo_lon = atan2(sin(lonr) * cos(latr) - sin_pi * (rho_sinphi * sin(oblr) + rho_cosphi * cos(oblr) * sin(sidr)), n) topo_lon = Angle(topo_lon, radians=True).to_positive() tlonr = topo_lon.rad() # Compute the topocentric latitude topo_lat = atan2(cos(tlonr) * (sin(latr) - sin_pi * (rho_sinphi * cos(oblr) - rho_cosphi * sin(oblr) * sin(sidr))), n) topo_lat = Angle(topo_lat, radians=True).to_positive() # Watch out: Latitude is only valid in the +/-90 deg range if abs(topo_lat) > 90.0: topo_lat = topo_lat - 180.0 tlatr = topo_lat.rad() # And finally, let's compute the topocentric semidiameter topo_semi = asin((cos(tlonr) * cos(tlatr) * sin(semir)) / n) topo_semi = Angle(topo_semi, radians=True) return topo_lon, topo_lat, topo_semi def main(): # Let's define a small helper function def print_me(msg, val): print("{}: {}".format(msg, val)) # Let's show some uses of Earth class print("\n" + 35 * "*") print("*** Use of Earth class") print(35 * "*" + "\n") # An important concept are the reference ellipsoids, comprising information # about the Earth global model we are going to use. # A very important reference ellipsoid is WGS84, predefined here print_me("WGS84", WGS84) # First field is equatorial radius, second field is the flattening, and the # third field is the angular rotation velocity, in radians per second # Let's print the semi-minor axis (polar radius) print_me("Polar radius, b", WGS84.b()) # And now, let's print the eccentricity of Earth's meridian print_me("Eccentricity, e", WGS84.e()) print("") # We create an Earth object with a given reference ellipsoid. By default, # it is WGS84, but we can use another e = Earth(IAU76) print("e = Earth(IAU76)") # Print the parameters of reference ellipsoid being used print_me("'e' Earth object parameters", e) print("") # Compute the distance to the center of the Earth from a given point at sea # level, and at a certain latitude. It is given as a fraction of equatorial # radius lat = Angle(65, 45, 30.0) # We can use an Angle for this print_me("Relative distance to Earth's center, from latitude 65d 45' 30''", e.rho(lat)) print("") # Parameters rho*sin(lat) and rho*cos(lat) are useful for different # astronomical applications height = 650.0 print_me("rho*sin(lat)", round(e.rho_sinphi(lat, height), 6)) print_me("rho*cos(lat)", round(e.rho_cosphi(lat, height), 6)) print("") # Compute the radius of the parallel circle at given latitude print_me( "Radius of parallel circle at latitude 65d 45' 30'' (meters)", round(e.rp(lat), 1), ) # Compute the radius of curvature of the Earth's meridian at given latitude print_me( "Radius of Earth's meridian at latitude 65d 45' 30'' (meters)", round(e.rm(lat), 1), ) print("") # It is easy to compute the linear velocity at different latitudes print_me( "Linear velocity at the Equator (meters/second)", round(e.linear_velocity(0.0), 3), ) print_me( "Linear velocity at latitude 65d 45' 30'' (meters/second)", round(e.linear_velocity(lat), 3), ) print("") # Now let's compute the distance between two points on the Earth: # Bangkok: 13d 14' 09'' North, 100d 29' 39'' East # Buenos Aires: 34d 36' 12'' South, 58d 22' 54'' West # NOTE: We will consider that positions 'East' and 'South' are negative # Here we will take advantage of facilities provided by Angle class lon_ban = Angle(-100, 29, 39.0) lat_ban = Angle(13, 14, 9.0) lon_bai = Angle(58, 22, 54.0) lat_bai = Angle(-34, 36, 12.0) dist, error = e.distance(lon_ban, lat_ban, lon_bai, lat_bai) print_me("The distance between Bangkok and Buenos Aires is (km)", round(dist / 1000.0, 2)) print_me("The approximate error of the estimation is (meters)", round(error, 0)) print("") # Let's now compute the geometric heliocentric position for a given epoch epoch = Epoch(1992, 10, 13.0) lon, lat, r = Earth.geometric_heliocentric_position(epoch) print_me("Geometric Heliocentric Longitude", lon.to_positive()) print_me("Geometric Heliocentric Latitude", lat.dms_str(n_dec=3)) print_me("Radius vector", r) print("") # And now, compute the apparent heliocentric position for the same epoch epoch = Epoch(1992, 10, 13.0) lon, lat, r = Earth.apparent_heliocentric_position(epoch) print_me("Apparent Heliocentric Longitude", lon.to_positive()) print_me("Apparent Heliocentric Latitude", lat.dms_str(n_dec=3)) print_me("Radius vector", r) print("") # Print mean orbital elements for Earth at 2065.6.24 epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Earth.orbital_elements_mean_equinox(epoch) print_me("Mean longitude of the planet", round(l, 6)) # 272.716028 print_me("Semimajor axis of the orbit (UA)", round(a, 8)) # 1.00000102 print_me("Eccentricity of the orbit", round(e, 7)) # 0.0166811 print_me("Inclination on plane of the ecliptic", round(i, 6)) # 0.0 print_me("Longitude of the ascending node", round(ome, 5)) # 174.71534 print_me("Argument of the perihelion", round(arg, 6)) # -70.651889 print("") # Find the epoch of the Perihelion closer to 2008/02/01 epoch = Epoch(2008, 2, 1.0) e = Earth.perihelion_aphelion(epoch) y, m, d, h, mi, s = e.get_full_date() peri = str(y) + '/' + str(m) + '/' + str(d) + ' ' + str(h) + ':' + str(mi) print_me("The Perihelion closest to 2008/2/1 happened on", peri) print("") # Compute the time of passage through an ascending node epoch = Epoch(2019, 1, 1) time, r = Earth.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) print("Time of passage through ascending node: {}/{}/{}".format(y, m, d)) # 2019/3/15.0 print("Radius vector at ascending node: {}".format(round(r, 4))) # 0.9945 print("") # Compute the parallax correction right_ascension = Angle(22, 38, 7.25, ra=True) declination = Angle(-15, 46, 15.9) latitude = Angle(33, 21, 22) distance = 0.37276 hour_angle = Angle(288.7958) top_ra, top_dec = Earth.parallax_correction(right_ascension, declination, latitude, distance, hour_angle) print_me("Corrected topocentric right ascension: ", top_ra.ra_str(n_dec=2)) # 22h 38' 8.54'' print_me("Corrected topocentric declination", top_dec.dms_str(n_dec=1)) # -15d 46' 30.0'' print("") # Compute the parallax correction in ecliptical coordinates longitude = Angle(181, 46, 22.5) latitude = Angle(2, 17, 26.2) semidiameter = Angle(0, 16, 15.5) obs_lat = Angle(50, 5, 7.8) obliquity = Angle(23, 28, 0.8) sidereal_time = Angle(209, 46, 7.9) distance = 0.0024650163 topo_lon, topo_lat, topo_diam = \ Earth.parallax_ecliptical(longitude, latitude, semidiameter, obs_lat, obliquity, sidereal_time, distance) print_me("Corrected topocentric longitude", topo_lon.dms_str(n_dec=1)) # 181d 48' 5.0'' print_me("Corrected topocentric latitude", topo_lat.dms_str(n_dec=1)) # 1d 29' 7.1'' print_me("Corrected topocentric semidiameter", topo_diam.dms_str(n_dec=1)) # 16' 25.5'' if __name__ == "__main__": main() pymeeus-0.3.6/pymeeus/Epoch.py000066400000000000000000002301031355545537700163300ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . import calendar import datetime from math import radians, cos, sin, asin, sqrt, acos, degrees from pymeeus.base import TOL, get_ordinal_suffix, iint from pymeeus.Angle import Angle """ .. module:: Epoch :synopsis: Class to handle time :license: GNU Lesser General Public License v3 (LGPLv3) .. moduleauthor:: Dagoberto Salazar """ DAY2SEC = 86400.0 """Number of seconds per day""" DAY2MIN = 1440.0 """Number of minutes per day""" DAY2HOURS = 24.0 """Number of hours per day""" LEAP_TABLE = { 1972.5: 1, 1973.0: 2, 1974.0: 3, 1975.0: 4, 1976.0: 5, 1977.0: 6, 1978.0: 7, 1979.0: 8, 1980.0: 9, 1981.5: 10, 1982.5: 11, 1983.5: 12, 1985.5: 13, 1988.0: 14, 1990.0: 15, 1991.0: 16, 1992.5: 17, 1993.5: 18, 1994.5: 19, 1996.0: 20, 1997.5: 21, 1999.0: 22, 2006.0: 23, 2009.0: 24, 2012.5: 25, 2015.5: 26, 2017.0: 27, } """This table represents the point in time FROM WHERE the given number of leap seconds is valid. Given that leap seconds are (so far) always added at June 30th or December 31st, a leap second added in 1997/06/30 is represented here as '1997.5', while a leap second added in 2005/12/31 appears here as '2006.0'.""" class Epoch(object): """ Class Epoch deals with the tasks related to time handling. The constructor takes either a single JDE value, another Epoch object, or a series of values representing year, month, day, hours, minutes, seconds. This series of values are by default supposed to be in **Terrestial Time** (TT). This is not necesarily the truth, though. For instance, the time of a current observation is tipically in UTC time (civil time), not in TT, and there is some offset between those two time references. When a UTC time is provided, the parameter **utc=True** must be given. Then, the input is converted to International Atomic Time (TAI) using an internal table of leap seconds, and from there, it is converted to (and stored as) Terrestrial Time (TT). Given that leap seconds are added or subtracted in a rather irregular basis, it is not possible to predict them in advance, and the internal leap seconds table will become outdated at some point in time. To counter this, you have two options: - Download an updated version of this Pymeeus package. - Use the argument **leap_seconds** in the constructor or :meth:`set` method to provide the correct number of leap seconds (w.r.t. TAI) to be applied. .. note:: Providing the **leap_seconds** argument will automatically set the argument **utc** to True. For instance, if at some time in the future the TAI-UTC difference is 43 seconds, you should set **leap_seconds=43** if you don't have an updated version of this class. In order to know which is the most updated leap second value stored in this class, you may use the :meth:`get_last_leap_second()` method. .. note:: The current version of UTC was implemented in January 1st, 1972. Therefore, for dates before the correction in **NOT** carried out, even if the **utc** argument is set to True, and it is supposed that the input data is already in TT scale. .. note:: For conversions between TT and Universal Time (UT), please use the method :meth:`tt2ut`. .. note:: Internally, time values are stored as a Julian Ephemeris Day (JDE), based on the uniform scale of Dynamical Time, or more specifically, Terrestial Time (TT) (itself the redefinition of Terrestrial Dynamical Time, TDT). .. note:: The UTC-TT conversion is composed of three corrections: a. TT-TAI, comprising 32.184 s, b. TAI-UTC(1972), 10 s, and c. UTC(1972)-UTC(target) item c. is the corresponding amount of leap seconds to the target Epoch. When you do, for instance, **leap_seconds=43**, you modify the c. part. .. note:: Given that this class stores the epoch as JDE, if the JDE value is in the order of millions of days then, for a computer with 15-digit accuracy, the final time resolution is about 10 milliseconds. That is considered enough for most applications of this class. """ def __init__(self, *args, **kwargs): """Epoch constructor. This constructor takes either a single JDE value, another Epoch object, or a series of values representing year, month, day, hours, minutes, seconds. This series of values are by default supposed to be in **Terrestial Time** (TT). It is also possible that the year, month, etc. arguments be provided in a tuple or list. Moreover, it is also possible provide :class:`date` or :class:`datetime` objects for initialization. The **month** value can be provided as an integer (1 = January, 2 = February, etc), or it can be provided with short (Jan, Feb,...) or long (January, February,...) names. Also, hours, minutes, seconds can be provided separately, or as decimals of the day value. When a UTC time is provided, the parameter **utc=True** must be given. Then, the input is converted to International Atomic Time (TAI) using an internal table of leap seconds, and from there, it is converted to (and stored as) Terrestrial Time (TT). If **utc** is not provided, it is supposed that the input data is already in TT scale. If a value is provided with the **leap_seconds** argument, then that value will be used for the UTC->TAI conversion, and the internal leap seconds table will be bypassed. :param args: Either JDE, Epoch, date, datetime or year, month, day, hours, minutes, seconds values, by themselves or inside a tuple or list :type args: int, float, :py:class:`Epoch`, tuple, list, date, datetime :param utc: Whether the provided epoch is a civil time (UTC) :type utc: bool :param leap_seconds: This is the value to be used in the UTC->TAI conversion, instead of taking it from internal leap seconds table. :type leap_seconds: int, float :returns: Epoch object. :rtype: :py:class:`Epoch` :raises: ValueError if input values are in the wrong range. :raises: TypeError if input values are of wrong type. >>> e = Epoch(1987, 6, 19.5) >>> print(e) 2446966.0 """ # Initialize field self._jde = 0.0 self.set(*args, **kwargs) # Use 'set()' method to handle the setup def set(self, *args, **kwargs): """Method used to set the value of this object. This method takes either a single JDE value, or a series of values representing year, month, day, hours, minutes, seconds. This series of values are by default supposed to be in **Terrestial Time** (TT). It is also possible to provide another Epoch object as input for the :meth:`set` method, or the year, month, etc arguments can be provided in a tuple or list. Moreover, it is also possible provide :class:`date` or :class:`datetime` objects for initialization. The **month** value can be provided as an integer (1 = January, 2 = February, etc), or it can be provided as short (Jan, Feb, ...) or long (January, February, ...) names. Also, hours, minutes, seconds can be provided separately, or as decimals of the day value. When a UTC time is provided, the parameter **utc=True** must be given. Then, the input is converted to International Atomic Time (TAI) using an internal table of leap seconds, and from there, it is converted to (and stored as) Terrestrial Time (TT). If **utc** is not provided, it is supposed that the input data is already in TT scale. If a value is provided with the **leap_seconds** argument, then that value will be used for the UTC->TAI conversion, and the internal leap seconds table will be bypassed. .. note:: The UTC to TT correction is only carried out for dates after January 1st, 1972. :param args: Either JDE, Epoch, date, datetime or year, month, day, hours, minutes, seconds values, by themselves or inside a tuple or list :type args: int, float, :py:class:`Epoch`, tuple, list, date, datetime :param utc: Whether the provided epoch is a civil time (UTC) :type utc: bool :param leap_seconds: This is the value to be used in the UTC->TAI conversion, instead of taking it from internal leap seconds table. :type leap_seconds: int, float :returns: None. :rtype: None :raises: ValueError if input values are in the wrong range. :raises: TypeError if input values are of wrong type. >>> e = Epoch() >>> e.set(1987, 6, 19.5) >>> print(e) 2446966.0 >>> e.set(1977, 'Apr', 26.4) >>> print(e) 2443259.9 >>> e.set(1957, 'October', 4.81) >>> print(e) 2436116.31 >>> e.set(333, 'Jan', 27, 12) >>> print(e) 1842713.0 >>> e.set(1900, 'Jan', 1) >>> print(e) 2415020.5 >>> e.set(-1001, 'august', 17.9) >>> print(e) 1355671.4 >>> e.set(-4712, 1, 1.5) >>> print(e) 0.0 >>> e.set((1600, 12, 31)) >>> print(e) 2305812.5 >>> e.set([1988, 'JUN', 19, 12]) >>> print(e) 2447332.0 >>> d = datetime.date(2000, 1, 1) >>> e.set(d) >>> print(e) 2451544.5 >>> e.set(837, 'Apr', 10, 7, 12) >>> print(e) 2026871.8 >>> d = datetime.datetime(837, 4, 10, 7, 12, 0, 0) >>> e.set(d) >>> print(e) 2026871.8 """ # Clean up the internal parameters self._jde = 0.0 # If no arguments are given, return. Internal values are 0.0 if len(args) == 0: return # If we have only one argument, it can be a JDE or another Epoch object elif len(args) == 1: if isinstance(args[0], Epoch): self._jde = args[0]._jde return elif isinstance(args[0], (int, float)): self._jde = args[0] return elif isinstance(args[0], (tuple, list)): year, month, day, hours, minutes, sec = \ self._check_values(*args[0]) elif isinstance(args[0], datetime.datetime): d = args[0] year, month, day, hours, minutes, sec = self._check_values( d.year, d.month, d.day, d.hour, d.minute, d.second + d.microsecond / 1e6, ) elif isinstance(args[0], datetime.date): d = args[0] year, month, day, hours, minutes, sec = self._check_values( d.year, d.month, d.day ) else: raise TypeError("Invalid input type") elif len(args) == 2: # Insuficient data to set the Epoch raise ValueError("Invalid number of input values") elif len(args) >= 3: # Year, month, day year, month, day, hours, minutes, sec = self._check_values(*args) day += hours / DAY2HOURS + minutes / DAY2MIN + sec / DAY2SEC # Handle the 'leap_seconds' argument, if pressent if "leap_seconds" in kwargs: # Compute JDE self._jde = self._compute_jde(year, month, day, utc2tt=False, leap_seconds=kwargs["leap_seconds"]) elif "utc" in kwargs: self._jde = self._compute_jde(year, month, day, utc2tt=kwargs["utc"]) else: self._jde = self._compute_jde(year, month, day, utc2tt=False) def _compute_jde(self, y, m, d, utc2tt=True, leap_seconds=0.0): """Method to compute the Julian Ephemeris Day (JDE). .. note:: The UTC to TT correction is only carried out for dates after January 1st, 1972. :param y: Year :type y: int :param m: Month :type m: int :param d: Day :type d: float :param utc2tt: Whether correction UTC to TT is done automatically. :type utc2tt: bool :param leap_seconds: Number of leap seconds to apply :type leap_seconds: float :returns: Julian Ephemeris Day (JDE) :rtype: float """ # The best approach here is first convert to JDE, and then adjust secs if m <= 2: y -= 1 m += 12 a = iint(y / 100.0) b = 0.0 if not Epoch.is_julian(y, m, iint(d)): b = 2.0 - a + iint(a / 4.0) jde = (iint(365.25 * (y + 4716.0)) + iint(30.6001 * (m + 1.0)) + d + b - 1524.5) # If enabled, let's convert from UTC to TT, adding the needed seconds deltasec = 0.0 # In this case, UTC to TT correction is applied automatically if utc2tt: if y >= 1972: deltasec = 32.184 # Difference between TT and TAI deltasec += 10.0 # Difference between UTC and TAI in 1972 deltasec += Epoch.leap_seconds(y, m) else: # Correction is NOT automatic if leap_seconds != 0.0: # We apply provided leap seconds if y >= 1972: deltasec = 32.184 # Difference between TT and TAI deltasec += 10.0 # Difference between UTC-TAI in 1972 deltasec += leap_seconds return jde + deltasec / DAY2SEC def _check_values(self, *args): """This method takes the input arguments to 'set()' method (year, month, day, etc) and carries out some sanity checks on them. It returns a tuple containing those values separately, assigning zeros to those arguments which were not provided. :param args: Year, month, day, hours, minutes, seconds values. :type args: int, float :returns: Tuple with year, month, day, hours, minutes, seconds values. :rtype: tuple :raises: ValueError if input values are in the wrong range, or too few arguments given as input. """ # This list holds the maximum amount of days a given month can have maxdays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] # Initialize some variables year = -9999 month = -9999 day = -9999 hours = 0.0 minutes = 0.0 sec = 0.0 # Carry out some basic checks if len(args) < 3: raise ValueError("Invalid number of input values") elif len(args) >= 3: # Year, month, day year = args[0] month = args[1] day = args[2] if len(args) >= 4: # Year, month, day, hour hours = args[3] if len(args) >= 5: # Year, month, day, hour, minutes minutes = args[4] if len(args) >= 6: # Year, month, day, hour, minutes, seconds sec = args[5] if year < -4712: # No negative JDE will be allowed raise ValueError("Invalid value for the input year") if day < 1 or day > 31: raise ValueError("Invalid value for the input day") if hours < 0 or hours > 23: raise ValueError("Invalid value for the input hours") if minutes < 0 or minutes > 59: raise ValueError("Invalid value for the input minutes") if sec < 0 or sec > 59: raise ValueError("Invalid value for the input seconds") # Test the days according to the month month = Epoch.get_month(month) limit_day = maxdays[month - 1] # We need extra tests if month is '2' (February) if month == 2: if Epoch.is_leap(year): limit_day = 29 if day > limit_day: raise ValueError("Invalid value for the input day") # We are ready to return the parameters return year, month, day, hours, minutes, sec @staticmethod def check_input_date(*args, **kwargs): """Method to check that the input is a proper date. This method returns an Epoch object, and the **leap_seconds** argument then controls the way the UTC->TT conversion is handled for that new object. If **leap_seconds** argument is set to a value different than zero, then that value will be used for the UTC->TAI conversion, and the internal leap seconds table will be bypassed. On the other hand, if it is set to zero, then the UTC to TT correction is disabled, and it is supposed that the input data is already in TT scale. :param args: Either Epoch, date, datetime or year, month, day values, by themselves or inside a tuple or list :type args: int, float, :py:class:`Epoch`, datetime, date, tuple, list :param leap_seconds: If different from zero, this is the value to be used in the UTC->TAI conversion. If equals to zero, conversion is disabled. If not given, UTC to TT conversion is carried out (default). :type leap_seconds: int, float :returns: Epoch object corresponding to the input date :rtype: :py:class:`Epoch` :raises: ValueError if input values are in the wrong range. :raises: TypeError if input values are of wrong type. """ t = Epoch() if len(args) == 0: raise ValueError("Invalid input: No date given") # If we have only one argument, it can be an Epoch, a date, a datetime # or a tuple/list elif len(args) == 1: if isinstance(args[0], Epoch): t = args[0] elif isinstance(args[0], (tuple, list)): if len(args[0]) >= 3: t = Epoch(args[0][0], args[0][1], args[0][2], **kwargs) else: raise ValueError("Invalid input") elif isinstance(args[0], datetime.datetime) or isinstance( args[0], datetime.date ): t = Epoch(args[0].year, args[0].month, args[0].day, **kwargs) else: raise TypeError("Invalid input type") elif len(args) == 2: raise ValueError("Invalid input: Date given is not valid") elif len(args) >= 3: # We will rely on Epoch capacity to handle improper input t = Epoch(args[0], args[1], args[2], **kwargs) return t @staticmethod def is_julian(year, month, day): """This method returns True if given date is in the Julian calendar. :param year: Year :type y: int :param month: Month :type m: int :param day: Day :type day: int :returns: Whether the provided date belongs to Julian calendar or not. :rtype: bool >>> Epoch.is_julian(1997, 5, 27.1) False >>> Epoch.is_julian(1397, 7, 7.0) True """ if ( (year < 1582) or (year == 1582 and month < 10) or (year == 1582 and month == 10 and day < 5.0) ): return True else: return False def julian(self): """This method returns True if this Epoch object holds a date in the Julian calendar. :returns: Whether this Epoch object holds a date belonging to Julian calendar or not. :rtype: bool >>> e = Epoch(1997, 5, 27.1) >>> e.julian() False >>> e = Epoch(1397, 7, 7.0) >>> e.julian() True """ y, m, d = self.get_date() return Epoch.is_julian(y, m, d) @staticmethod def get_month(month, as_string=False): """Method to get the month as a integer in the [1, 12] range, or as a full name. :param month: Month, in numeric, short name or long name format :type month: int, float, str :param as_string: Whether the output will be numeric, or a long name. :type as_string: bool :returns: Month as integer in the [1, 12] range, or as a long name. :rtype: int, str :raises: ValueError if input month value is invalid. >>> Epoch.get_month(4.0) 4 >>> Epoch.get_month('Oct') 10 >>> Epoch.get_month('FEB') 2 >>> Epoch.get_month('August') 8 >>> Epoch.get_month('august') 8 >>> Epoch.get_month('NOVEMBER') 11 >>> Epoch.get_month(9.0, as_string=True) 'September' >>> Epoch.get_month('Feb', as_string=True) 'February' >>> Epoch.get_month('March', as_string=True) 'March' """ months_mmm = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", ] months_full = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", ] if isinstance(month, (int, float)): month = int(month) # Truncate if it has decimals if month >= 1 and month <= 12: if not as_string: return month else: return months_full[month - 1] else: raise ValueError("Invalid value for the input month") elif isinstance(month, str): month = month.strip().capitalize() if len(month) == 3: if month in months_mmm: if not as_string: return months_mmm.index(month) + 1 else: return months_full[months_mmm.index(month)] else: raise ValueError("Invalid value for the input month") else: if month in months_full: if not as_string: return months_full.index(month) + 1 else: return month else: raise ValueError("Invalid value for the input month") @staticmethod def is_leap(year): """Method to check if a given year is a leap year. :param year: Year to be checked. :type year: int, float :returns: Whether or not year is a leap year. :rtype: bool :raises: ValueError if input year value is invalid. >>> Epoch.is_leap(2003) False >>> Epoch.is_leap(2012) True >>> Epoch.is_leap(1900) False >>> Epoch.is_leap(-1000) True >>> Epoch.is_leap(1000) True """ if isinstance(year, (int, float)): # Mind the difference between Julian and Gregorian calendars if year >= 1582: year = iint(year) return calendar.isleap(year) else: return (abs(year) % 4) == 0 else: raise ValueError("Invalid value for the input year") def leap(self): """This method checks if the current Epoch object holds a leap year. :returns: Whether or the year in this Epoch object is a leap year. :rtype: bool >>> e = Epoch(2003, 1, 1) >>> e.leap() False >>> e = Epoch(2012, 1, 1) >>> e.leap() True >>> e = Epoch(1900, 1, 1) >>> e.leap() False >>> e = Epoch(-1000, 1, 1) >>> e.leap() True >>> e = Epoch(1000, 1, 1) >>> e.leap() True """ y, m, d = self.get_date() return Epoch.is_leap(y) @staticmethod def get_doy(yyyy, mm, dd): """This method returns the Day Of Year (DOY) for the given date. :param yyyy: Year, in four digits format :type yyyy: int, float :param mm: Month, in numeric format (1 = January, 2 = February, etc) :type mm: int, float :param dd: Day, in numeric format :type dd: int, float :returns: Day Of Year (DOY). :rtype: float :raises: ValueError if input values correspond to a wrong date. >>> Epoch.get_doy(1999, 1, 29) 29.0 >>> Epoch.get_doy(1978, 11, 14) 318.0 >>> Epoch.get_doy(2017, 12, 31.7) 365.7 >>> Epoch.get_doy(2012, 3, 3.1) 63.1 >>> Epoch.get_doy(-400, 2, 29.9) 60.9 """ # Let's carry out first some basic checks if dd < 1 or dd >= 32 or mm < 1 or mm > 12: raise ValueError("Invalid input data") day = int(dd) frac = dd % 1 if yyyy >= 1: # datetime's minimum year is 1 try: d = datetime.date(yyyy, mm, day) except ValueError: raise ValueError("Invalid input date") doy = d.timetuple().tm_yday else: k = 2 if Epoch.is_leap(yyyy) else 1 doy = (iint((275.0 * mm) / 9.0) - k * iint((mm + 9.0) / 12.0) + day - 30.0) return float(doy + frac) @staticmethod def doy2date(year, doy): """This method takes a year and a Day Of Year values, and returns the corresponding date. :param year: Year, in four digits format :type year: int, float :param doy: Day of Year number :type doy: int, float :returns: Year, month, day. :rtype: tuple :raises: ValueError if either input year or doy values are invalid. >>> t = Epoch.doy2date(1999, 29) >>> print("{}/{}/{}".format(t[0], t[1], round(t[2], 1))) 1999/1/29.0 >>> t = Epoch.doy2date(2017, 365.7) >>> print("{}/{}/{}".format(t[0], t[1], round(t[2], 1))) 2017/12/31.7 >>> t = Epoch.doy2date(2012, 63.1) >>> print("{}/{}/{}".format(t[0], t[1], round(t[2], 1))) 2012/3/3.1 >>> t = Epoch.doy2date(-1004, 60) >>> print("{}/{}/{}".format(t[0], t[1], round(t[2], 1))) -1004/2/29.0 >>> t = Epoch.doy2date(0, 60) >>> print("{}/{}/{}".format(t[0], t[1], round(t[2], 1))) 0/2/29.0 >>> t = Epoch.doy2date(1, 60) >>> print("{}/{}/{}".format(t[0], t[1], round(t[2], 1))) 1/3/1.0 >>> t = Epoch.doy2date(-1, 60) >>> print("{}/{}/{}".format(t[0], t[1], round(t[2], 1))) -1/3/1.0 >>> t = Epoch.doy2date(-2, 60) >>> print("{}/{}/{}".format(t[0], t[1], round(t[2], 1))) -2/3/1.0 >>> t = Epoch.doy2date(-3, 60) >>> print("{}/{}/{}".format(t[0], t[1], round(t[2], 1))) -3/3/1.0 >>> t = Epoch.doy2date(-4, 60) >>> print("{}/{}/{}".format(t[0], t[1], round(t[2], 1))) -4/2/29.0 >>> t = Epoch.doy2date(-5, 60) >>> print("{}/{}/{}".format(t[0], t[1], round(t[2], 1))) -5/3/1.0 """ if isinstance(year, (int, float)) and isinstance(doy, (int, float)): frac = float(doy % 1) doy = int(doy) if year >= 1: # datetime's minimum year is 1 ref = datetime.date(year, 1, 1) mydate = datetime.date.fromordinal(ref.toordinal() + doy - 1) return year, mydate.month, mydate.day + frac else: # The algorithm provided by Meeus doesn't work for years below # +1. This little hack solves that problem (the 'if' result is # inverted here). k = 1 if Epoch.is_leap(year) else 2 if doy < 32: m = 1 else: m = iint((9.0 * (k + doy)) / 275.0 + 0.98) d = (doy - iint((275.0 * m) / 9.0) + k * iint((m + 9.0) / 12.0) + 30) return year, int(m), d + frac else: raise ValueError("Invalid input values") @staticmethod def leap_seconds(year, month): """Returns the leap seconds accumulated for the given year and month. :param year: Year :type year: int :param month: Month, in numeric format ([1:12] range) :type month: int :returns: Leap seconds accumulated for given year and month. :rtype: int >>> Epoch.leap_seconds(1972, 4) 0 >>> Epoch.leap_seconds(1972, 6) 0 >>> Epoch.leap_seconds(1972, 7) 1 >>> Epoch.leap_seconds(1983, 6) 11 >>> Epoch.leap_seconds(1983, 7) 12 >>> Epoch.leap_seconds(1985, 8) 13 >>> Epoch.leap_seconds(2016, 11) 26 >>> Epoch.leap_seconds(2017, 1) 27 >>> Epoch.leap_seconds(2018, 7) 27 """ list_years = sorted(LEAP_TABLE.keys()) # First test the extremes of the table if (year + month / 12.0) <= list_years[0]: return 0 if (year + month / 12.0) >= list_years[-1]: return LEAP_TABLE[list_years[-1]] lyear = (year + 0.25) if month <= 6 else (year + 0.75) idx = 0 while lyear > list_years[idx]: idx += 1 return LEAP_TABLE[list_years[idx - 1]] @staticmethod def get_last_leap_second(): """Method to get the date and value of the last leap second added to the table :returns: Tuple with year, month, day, leap second value. :rtype: tuple """ list_years = sorted(LEAP_TABLE.keys()) lyear = list_years[-1] lseconds = LEAP_TABLE[lyear] year = iint(lyear) # So far, leap seconds are added either on June 30th or December 31th if lyear % 1 == 0.0: year -= 1 month = 12 day = 31.0 else: month = 6 day = 30.0 return year, month, day, lseconds @staticmethod def utc2local(): """Method to return the difference between UTC and local time. By default, dates in this Epoch class are handled in Coordinated Universal Time (UTC). This method provides you the seconds that you have to add or subtract to UTC time to convert to your local time. Please bear in mind that, in order for this method to work, you operative system must be correctly configured, with the right time and corresponding time zone. :returns: Difference in seconds between local and UTC time. :rtype: float """ localhour = datetime.datetime.now().hour utchour = datetime.datetime.utcnow().hour localminute = datetime.datetime.now().minute utcminute = datetime.datetime.utcnow().minute return ((localhour - utchour) * 3600.0 + (localminute - utcminute) * 60.0) @staticmethod def easter(year): """Method to return the Easter day for given year. .. note:: This method is valid for both Gregorian and Julian years. :param year: Year :type year: int :returns: Easter month and day, as a tuple :rtype: tuple :raises: TypeError if input values are of wrong type. >>> Epoch.easter(1991) (3, 31) >>> Epoch.easter(1818) (3, 22) >>> Epoch.easter(1943) (4, 25) >>> Epoch.easter(2000) (4, 23) >>> Epoch.easter(1954) (4, 18) >>> Epoch.easter(179) (4, 12) >>> Epoch.easter(1243) (4, 12) """ # This algorithm is describes in pages 67-69 of Meeus book if not isinstance(year, (int, float)): raise TypeError("Invalid input type") year = int(year) if year >= 1583: # In this case, we are using the Gregorian calendar a = year % 19 b = iint(year / 100.0) c = year % 100 d = iint(b / 4.0) e = b % 4 f = iint((b + 8.0) / 25.0) g = iint((b - f + 1.0) / 3.0) h = (19 * a + b - d - g + 15) % 30 i = iint(c / 4.0) k = c % 4 ll = (32 + 2 * (e + i) - h - k) % 7 m = iint((a + 11 * h + 22 * ll) / 451.0) n = iint((h + ll - 7 * m + 114) / 31.0) p = (h + ll - 7 * m + 114) % 31 return (n, p + 1) else: # The Julian calendar is used here a = year % 4 b = year % 7 c = year % 19 d = (19 * c + 15) % 30 e = (2 * a + 4 * b - d + 34) % 7 f = iint((d + e + 114) / 31.0) g = (d + e + 114) % 31 return (f, g + 1) @staticmethod def jewish_pesach(year): """Method to return the Jewish Easter (Pesach) day for given year. .. note:: This method is valid for both Gregorian and Julian years. :param year: Year :type year: int :returns: Jewish Easter (Pesach) month and day, as a tuple :rtype: tuple :raises: TypeError if input values are of wrong type. >>> Epoch.jewish_pesach(1990) (4, 10) """ # This algorithm is described in pages 71-73 of Meeus book if not isinstance(year, (int, float)): raise TypeError("Invalid input type") year = iint(year) c = iint(year / 100.0) s = 0 if year < 1583 else iint((3.0 * c - 5.0) / 4.0) a = (12 * (year + 1)) % 19 b = year % 4 q = (-1.904412361576 + 1.554241796621 * a + 0.25 * b - 0.003177794022 * year + s) j = (iint(q) + 3 * year + 5 * b + 2 + s) % 7 r = q - iint(q) if j == 2 or j == 4 or j == 6: d = iint(q) + 23 elif j == 1 and a > 6 and r > 0.632870370: d = iint(q) + 24 elif j == 0 and a > 11 and r > 0.897723765: d = iint(q) + 23 else: d = iint(q) + 22 if d > 31: return (4, d - 31) else: return (3, d) @staticmethod def moslem2gregorian(year, month, day): """Method to convert a date in the Moslen calendar to the Gregorian (or Julian) calendar. .. note:: This method is valid for both Gregorian and Julian years. :param year: Year :type year: int :param month: Month :type month: int :param day: Day :type day: int :returns: Date in Gregorian (Julian) calendar: year, month and day, as a tuple :rtype: tuple :raises: TypeError if input values are of wrong type. >>> Epoch.moslem2gregorian(1421, 1, 1) (2000, 4, 6) """ # First, check that input types are correct if ( not isinstance(year, (int, float)) or not isinstance(month, (int, float)) or not isinstance(day, (int, float)) ): raise TypeError("Invalid input type") if day < 1 or day > 30 or month < 1 or month > 12 or year < 1: raise ValueError("Invalid input data") # This algorithm is described in pages 73-75 of Meeus book # Note: Ramadan is month Nr. 9 h = iint(year) m = iint(month) d = iint(day) n = d + iint(29.5001 * (m - 1) + 0.99) q = iint(h / 30.0) r = h % 30 a = iint((11.0 * r + 3.0) / 30.0) w = 404 * q + 354 * r + 208 + a q1 = iint(w / 1461.0) q2 = w % 1461 g = 621 + 4 * iint(7.0 * q + q1) k = iint(q2 / 365.2422) e = iint(365.2422 * k) j = q2 - e + n - 1 x = g + k if j > 366 and x % 4 == 0: j -= 366 x += 1 elif j > 365 and x % 4 > 0: j -= 365 x += 1 # Check if date is in Gregorian calendar. '277' is DOY of October 4th if (x > 1583) or (x == 1582 and j > 277): jd = iint(365.25 * (x - 1.0)) + 1721423 + j alpha = iint((jd - 1867216.25) / 36524.25) beta = jd if jd < 2299161 else (jd + 1 + alpha - iint(alpha / 4.0)) b = beta + 1524 c = iint((b - 122.1) / 365.25) d = iint(365.25 * c) e = iint((b - d) / 30.6001) day = b - d - iint(30.6001 * e) month = (e - 1) if e < 14 else (e - 13) year = (c - 4716) if month > 2 else (c - 4715) return year, month, day else: # It is a Julian date. We have year and DOY return Epoch.doy2date(x, j) @staticmethod def gregorian2moslem(year, month, day): """Method to convert a date in the Gregorian (or Julian) calendar to the Moslen calendar. :param year: Year :type year: int :param month: Month :type month: int :param day: Day :type day: int :returns: Date in Moslem calendar: year, month and day, as a tuple :rtype: tuple :raises: TypeError if input values are of wrong type. >>> Epoch.gregorian2moslem(1991, 8, 13) (1412, 2, 2) """ # First, check that input types are correct if ( not isinstance(year, (int, float)) or not isinstance(month, (int, float)) or not isinstance(day, (int, float)) ): raise TypeError("Invalid input type") if day < 1 or day > 31 or month < 1 or month > 12 or year < -4712: raise ValueError("Invalid input data") # This algorithm is described in pages 75-76 of Meeus book x = iint(year) m = iint(month) d = iint(day) if m < 3: x -= 1 m += 12 alpha = iint(x / 100.0) beta = 2 - alpha + iint(alpha / 4.0) b = iint(365.25 * x) + iint(30.6001 * (m + 1.0)) + d + 1722519 + beta c = iint((b - 122.1) / 365.25) d = iint(365.25 * c) e = iint((b - d) / 30.6001) d = b - d - iint(30.6001 * e) m = (e - 1) if e < 14 else (e - 13) x = (c - 4716) if month > 2 else (c - 4715) w = 1 if x % 4 == 0 else 2 n = iint((275.0 * m) / 9.0) - w * iint((m + 9.0) / 12.0) + d - 30 a = x - 623 b = iint(a / 4.0) c = a % 4 c1 = 365.2501 * c c2 = iint(c1) if c1 - c2 > 0.5: c2 += 1 dp = 1461 * b + 170 + c2 q = iint(dp / 10631.0) r = dp % 10631 j = iint(r / 354.0) k = r % 354 o = iint((11.0 * j + 14.0) / 30.0) h = 30 * q + j + 1 jj = k - o + n - 1 # jj is the number of the day in the moslem year h. If jj > 354 we need # to know if h is a leap year if jj > 354: cl = h % 30 dl = (11 * cl + 3) % 30 if dl < 19: jj -= 354 h += 1 else: jj -= 355 h += 1 if jj == 0: jj = 355 h -= 1 # Now, let's convert DOY jj to month and day if jj == 355: m = 12 d = 30 else: s = iint((jj - 1.0) / 29.5) m = 1 + s d = iint(jj - 29.5 * s) return h, m, d def __str__(self): """Method used when trying to print the object. :returns: Internal JDE value as a string. :rtype: string >>> e = Epoch(1987, 6, 19.5) >>> print(e) 2446966.0 """ return str(self._jde) def __repr__(self): """Method providing the 'official' string representation of the object. It provides a valid expression that could be used to recreate the object. :returns: As string with a valid expression to recreate the object :rtype: string >>> e = Epoch(1987, 6, 19.5) >>> repr(e) 'Epoch(2446966.0)' """ return "{}({})".format(self.__class__.__name__, self._jde) def get_date(self, **kwargs): """This method converts the internal JDE value back to a date. Use **utc=True** to enable the TT to UTC conversion mechanism, or provide a non zero value to **leap_seconds** to apply a specific leap seconds value. :param utc: Whether the TT to UTC conversion mechanism will be enabled :type utc: bool :param leap_seconds: Optional value for leap seconds. :type leap_seconds: int, float :returns: Year, month, day in a tuple :rtype: tuple >>> e = Epoch(2436116.31) >>> y, m, d = e.get_date() >>> print("{}/{}/{}".format(y, m, round(d, 2))) 1957/10/4.81 >>> e = Epoch(1988, 1, 27) >>> y, m, d = e.get_date() >>> print("{}/{}/{}".format(y, m, round(d, 2))) 1988/1/27.0 >>> e = Epoch(1842713.0) >>> y, m, d = e.get_date() >>> print("{}/{}/{}".format(y, m, round(d, 2))) 333/1/27.5 >>> e = Epoch(1507900.13) >>> y, m, d = e.get_date() >>> print("{}/{}/{}".format(y, m, round(d, 2))) -584/5/28.63 """ jd = self._jde + 0.5 z = iint(jd) f = jd % 1 if z < 2299161: a = z else: alpha = iint((z - 1867216.25) / 36524.25) a = z + 1 + alpha - iint(alpha / 4.0) b = a + 1524 c = iint((b - 122.1) / 365.25) d = iint(365.25 * c) e = iint((b - d) / 30.6001) day = b - d - iint(30.6001 * e) + f if e < 14: month = e - 1 elif e == 14 or e == 15: month = e - 13 if month > 2: year = c - 4716 elif month == 1 or month == 2: year = c - 4715 year = int(year) month = int(month) tt2utc = False if "utc" in kwargs: tt2utc = kwargs["utc"] if "leap_seconds" in kwargs: tt2utc = False leap_seconds = kwargs["leap_seconds"] else: leap_seconds = 0.0 # If enabled, let's convert from TT to UTC, subtracting needed seconds deltasec = 0.0 # In this case, TT to UTC correction is applied automatically, but only # for dates after July 1st, 1972 if tt2utc: if year > 1972 or (year == 1972 and month >= 7): deltasec = 32.184 # Difference between TT and TAI deltasec += 10.0 # Difference between UTC and TAI in 1972 deltasec += Epoch.leap_seconds(year, month) else: # Correction is NOT automatic if leap_seconds != 0.0: # We apply provided leap seconds if year > 1972 or (year == 1972 and month >= 7): deltasec = 32.184 # Difference between TT and TAI deltasec += 10.0 # Difference between UTC-TAI in 1972 deltasec += leap_seconds if deltasec != 0.0: doy = Epoch.get_doy(year, month, day) doy -= deltasec / DAY2SEC # Check that we didn't change year if doy < 1.0: year -= 1 doy = 366.0 + doy if Epoch.is_leap(year) else 365.0 + doy year, month, day = Epoch.doy2date(year, doy) return year, month, day def get_full_date(self, **kwargs): """This method converts the internal JDE value back to a full date. Use **utc=True** to enable the TT to UTC conversion mechanism, or provide a non zero value to **leap_seconds** to apply a specific leap seconds value. :param utc: Whether the TT to UTC conversion mechanism will be enabled :type utc: bool :param leap_seconds: Optional value for leap seconds. :type leap_seconds: int, float :returns: Year, month, day, hours, minutes, seconds in a tuple :rtype: tuple >>> e = Epoch(2436116.31) >>> y, m, d, h, mi, s = e.get_full_date() >>> print("{}/{}/{} {}:{}:{}".format(y, m, d, h, mi, round(s, 1))) 1957/10/4 19:26:24.0 >>> e = Epoch(1988, 1, 27) >>> y, m, d, h, mi, s = e.get_full_date() >>> print("{}/{}/{} {}:{}:{}".format(y, m, d, h, mi, round(s, 1))) 1988/1/27 0:0:0.0 >>> e = Epoch(1842713.0) >>> y, m, d, h, mi, s = e.get_full_date() >>> print("{}/{}/{} {}:{}:{}".format(y, m, d, h, mi, round(s, 1))) 333/1/27 12:0:0.0 >>> e = Epoch(1507900.13) >>> y, m, d, h, mi, s = e.get_full_date() >>> print("{}/{}/{} {}:{}:{}".format(y, m, d, h, mi, round(s, 1))) -584/5/28 15:7:12.0 """ y, m, d = self.get_date(**kwargs) r = d % 1 d = int(d) h = int(r * 24.0) r = r * 24 - h mi = int(r * 60.0) s = 60.0 * (r * 60.0 - mi) return y, m, d, h, mi, s @staticmethod def tt2ut(year, month): """This method provides an approximation of the difference, in seconds, between Terrestrial Time and Universal Time, denoted **DeltaT**, where: DeltaT = TT - UT. Here we depart from Meeus book and use the polynomial expressions from: https://eclipse.gsfc.nasa.gov/LEcat5/deltatpoly.html Which are regarded as more elaborate and precise than Meeus'. Please note that, by definition, the UTC time used internally in this Epoch class by default is kept within 0.9 seconds from UT. Therefore, UTC is in itself a quite good approximation to UT, arguably better than some of the results provided by this method. :param year: Year we want to compute DeltaT for. :type year: int, float :param month: Month we want to compute DeltaT for. :type month: int, float :returns: DeltaT, in seconds :rtype: float >>> round(Epoch.tt2ut(1642, 1), 1) 62.1 >>> round(Epoch.tt2ut(1680, 1), 1) 15.3 >>> round(Epoch.tt2ut(1700, 1), 1) 8.8 >>> round(Epoch.tt2ut(1726, 1), 1) 10.9 >>> round(Epoch.tt2ut(1750, 1), 1) 13.4 >>> round(Epoch.tt2ut(1774, 1), 1) 16.7 >>> round(Epoch.tt2ut(1800, 1), 1) 13.7 >>> round(Epoch.tt2ut(1820, 1), 1) 11.9 >>> round(Epoch.tt2ut(1890, 1), 1) -6.1 >>> round(Epoch.tt2ut(1928, 2), 1) 24.2 >>> round(Epoch.tt2ut(1977, 2), 1) 47.7 >>> round(Epoch.tt2ut(1998, 1), 1) 63.0 >>> round(Epoch.tt2ut(2015, 7), 1) 69.3 """ y = year + (month - 0.5) / 12.0 if year < -500: u = (year - 1820.0) / 100.0 dt = -20.0 + 32.0 * u * u elif year >= -500 and year < 500: u = y / 100.0 dt = 10583.6 + u * ( -1014.41 + u * ( 33.78311 + u * ( -5.952053 + (u * (-0.1798452 + u * (0.022174192 + 0.0090316521 * u))) ) ) ) elif year >= 500 and year < 1600: dt = 1574.2 + u * ( -556.01 + u * ( 71.23472 + u * ( 0.319781 + (u * (-0.8503463 + u * (-0.005050998 + 0.0083572073 * u))) ) ) ) elif year >= 1600 and year < 1700: t = y - 1600.0 dt = 120.0 + t * (-0.9808 + t * (-0.01532 + t / 7129.0)) elif year >= 1700 and year < 1800: t = y - 1700.0 dt = 8.83 + t * ( 0.1603 + t * (-0.0059285 + t * (0.00013336 - t / 1174000.0)) ) elif year >= 1800 and year < 1860: t = y - 1800.0 dt = 13.72 + t * ( -0.332447 + t * ( 0.0068612 + t * ( 0.0041116 + t * ( -0.00037436 + t * (0.0000121272 + t * (-0.0000001699 + 0.000000000875 * t)) ) ) ) ) elif year >= 1860 and year < 1900: t = y - 1860.0 dt = 7.62 + t * ( 0.5737 + t * (-0.251754 + t * (0.01680668 + t * (-0.0004473624 + t / 233174.0))) ) elif year >= 1900 and year < 1920: t = y - 1900.0 dt = -2.79 + t * ( 1.494119 + t * (-0.0598939 + t * (0.0061966 - 0.000197 * t)) ) elif year >= 1920 and year < 1941: t = y - 1920.0 dt = 21.20 + t * (0.84493 + t * (-0.076100 + 0.0020936 * t)) elif year >= 1941 and year < 1961: t = y - 1950.0 dt = 29.07 + t * (0.407 + t * (-1.0 / 233.0 + t / 2547.0)) elif year >= 1961 and year < 1986: t = y - 1975.0 dt = 45.45 + t * (1.067 + t * (-1.0 / 260.0 - t / 718.0)) elif year >= 1986 and year < 2005: t = y - 2000.0 dt = 63.86 + t * ( 0.3345 + t * (-0.060374 + t * (0.0017275 + t * (0.000651814 + 0.00002373599 * t))) ) elif year >= 2005 and year < 2050: t = y - 2000.0 dt = 62.92 + t * (0.32217 + 0.005589 * t) elif year >= 2050 and year < 2150: dt = (-20.0 + 32.0 * ((y - 1820.0) / 100.0) ** 2 - 0.5628 * (2150.0 - y)) else: u = (year - 1820.0) / 100.0 dt = -20.0 + 32.0 * u * u return dt def dow(self, as_string=False): """Method to return the day of week corresponding to this Epoch. By default, this method returns an integer value: 0 for Sunday, 1 for Monday, etc. However, when **as_string=True** is passed, the names of the days are returned. :param as_string: Whether result will be given as a integer or as a string. False by default. :type as_string: bool :returns: Day of the week, as a integer or as a string. :rtype: int, str >>> e = Epoch(1954, 'June', 30) >>> e.dow() 3 >>> e = Epoch(2018, 'Feb', 14.9) >>> e.dow(as_string=True) 'Wednesday' >>> e = Epoch(2018, 'Feb', 15) >>> e.dow(as_string=True) 'Thursday' >>> e = Epoch(2018, 'Feb', 15.99) >>> e.dow(as_string=True) 'Thursday' >>> e.set(2018, 'Jul', 15.4) >>> e.dow(as_string=True) 'Sunday' >>> e.set(2018, 'Jul', 15.9) >>> e.dow(as_string=True) 'Sunday' """ jd = iint(self._jde - 0.5) + 2.0 doy = iint(jd % 7) if not as_string: return doy else: day_names = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", ] return day_names[doy] def mean_sidereal_time(self): """Method to compute the _mean_ sidereal time at Greenwich for the epoch stored in this object. It represents the Greenwich hour angle of the mean vernal equinox. .. note:: If you require the result as an angle, you should convert the result from this method to hours with decimals (with :const:`DAY2HOURS`), and then multiply by 15 deg/hr. Alternatively, you can convert the result to hours with decimals, and feed this value to an :class:`Angle` object, setting **ra=True**, and making use of :class:`Angle` facilities for further handling. :returns: Mean sidereal time, in days :rtype: float >>> e = Epoch(1987, 4, 10) >>> round(e.mean_sidereal_time(), 9) 0.549147764 >>> e = Epoch(1987, 4, 10, 19, 21, 0.0) >>> round(e.mean_sidereal_time(), 9) 0.357605204 """ jd0 = iint(self()) + 0.5 if self() % 1 >= 0.5 else iint(self()) - 0.5 t = (jd0 - 2451545.0) / 36525.0 theta0 = 6.0 / DAY2HOURS + 41.0 / DAY2MIN + 50.54841 / DAY2SEC s = t * (8640184.812866 + t * (0.093104 - 0.0000062 * t)) theta0 += (s % DAY2SEC) / DAY2SEC deltajd = self() - jd0 if abs(deltajd) < TOL: # In this case, we are done return theta0 % 1 else: deltajd *= 1.00273790935 return (theta0 + deltajd) % 1 def apparent_sidereal_time(self, true_obliquity, nutation_longitude): """Method to compute the _apparent_ sidereal time at Greenwich for the epoch stored in this object. It represents the Greenwich hour angle of the true vernal equinox. .. note:: If you require the result as an angle, you should convert the result from this method to hours with decimals (with :const:`DAY2HOURS`), and then multiply by 15 deg/hr. Alternatively, you can convert the result to hours with decimals, and feed this value to an :class:`Angle` object, setting **ra=True**, and making use of :class:`Angle` facilities for further handling. :param true_obliquity: The true obliquity of the ecliptic as an int, float or :class:`Angle`, in degrees. You can use the method `Earth.true_obliquity()` to find it. :type true_obliquity: int, float, :class:`Angle` :param nutation_longitude: The nutation in longitude as an int, float or :class:`Angle`, in degrees. You can use method `Earth.nutation_longitude()` to find it. :type nutation_longitude: int, float, :class:`Angle` :returns: Apparent sidereal time, in days :rtype: float :raises: TypeError if input value is of wrong type. >>> e = Epoch(1987, 4, 10) >>> round(e.apparent_sidereal_time(23.44357, (-3.788)/3600.0), 8) 0.54914508 """ if not ( isinstance(true_obliquity, (int, float, Angle)) and isinstance(nutation_longitude, (int, float, Angle)) ): raise TypeError("Invalid input value") if isinstance(true_obliquity, Angle): true_obliquity = float(true_obliquity) # Convert to a float if isinstance(nutation_longitude, Angle): nutation_longitude = float(nutation_longitude) mean_stime = self.mean_sidereal_time() epsilon = radians(true_obliquity) # Convert to radians delta_psi = nutation_longitude * 3600.0 # From degrees to seconds # Correction is in seconds of arc: It must be converted to seconds of # time, and then to days (sidereal time is given here in days) return mean_stime + ((delta_psi * cos(epsilon)) / 15.0) / DAY2SEC def mjd(self): """This method returns the Modified Julian Day (MJD). :returns: Modified Julian Day (MJD). :rtype: float >>> e = Epoch(1858, 'NOVEMBER', 17) >>> e.mjd() 0.0 """ return self._jde - 2400000.5 def jde(self): """Method to return the internal value of the Julian Ephemeris Day. :returns: The internal value of the Julian Ephemeris Day. :rtype: float >>> a = Epoch(-1000, 2, 29.0) >>> print(a.jde()) 1355866.5 """ return self._jde def year(self): """This method returns the contents of this object as a year with decimals. :returns: Year with decimals. :rtype: float >>> e = Epoch(1993, 'October', 1) >>> print(round(e.year(), 4)) 1993.7479 """ y, m, d = self.get_date() doy = Epoch.get_doy(y, m, d) # We must substract 1 from doy in order to compute correctly doy -= 1 days_of_year = 365.0 if self.leap(): days_of_year = 366.0 return y + doy / days_of_year def rise_set(self, latitude, longitude, altitude=0.0): """This method computes the times of rising and setting of the Sun. .. note:: The algorithm used is the one explained in the article "Sunrise equation" of the Wikipedia at: https://en.wikipedia.org/wiki/Sunrise_equation .. note:: This algorithm is only valid within the artic and antartic circles (+/- 66d 33'). Outside that range this method returns invalid values (JDE < 0) .. note:: The results are given in UTC time. :param latitude: Latitude of the observer, as an Angle object. Positive to the North :type latitude: :py:class:`Angle` :param longitude: Longitude of the observer, as an Angle object. Positive to the East :type longitude: :py:class:`Angle` :param altitude: Altitude of the observer, as meters above sea level :type altitude: int, float :returns: Two :py:class:`Epoch` objects representing rising time and setting time, in a tuple :rtype: tuple :raises: TypeError if input values are of wrong type. >>> e = Epoch(2019, 4, 2) >>> latitude = Angle(48, 8, 0) >>> longitude = Angle(11, 34, 0) >>> altitude = 520.0 >>> rising, setting = e.rise_set(latitude, longitude, altitude) >>> y, m, d, h, mi, s = rising.get_full_date() >>> print("{}:{}".format(h, mi)) 4:48 >>> y, m, d, h, mi, s = setting.get_full_date() >>> print("{}:{}".format(h, mi)) 17:48 """ if not (isinstance(latitude, Angle) and isinstance(longitude, Angle) and isinstance(altitude, (int, float))): raise TypeError("Invalid input types") # Check that latitude is within valid range limit = Angle(66, 33, 0) if latitude > limit or latitude < -limit: error = Epoch(-1) return error, error # Let's start computing the number of days since 2000/1/1 12:00 (cjd) # Compute fractional Julian Day for leap seconds and terrestrial time # We need current epoch without hours, minutes and seconds year, month, day = self.get_date() e = Epoch(year, month, day) frac = (10.0 + 32.184 + Epoch.leap_seconds(year, month)) / 86400.0 cjd = e.jde() - 2451545.0 + frac # Compute mean solar noon jstar = cjd - (float(longitude) / 360.0) # Solar mean anomaly m = (357.5291 + 0.98560028 * jstar) % 360 mr = radians(m) # Equation of the center c = 1.9148 * sin(mr) + 0.02 * sin(2.0 * mr) + 0.0003 * sin(3.0 * mr) # Ecliptic longitude lambd = (m + c + 180.0 + 102.9372) % 360 lr = radians(lambd) # Solar transit jtran = 2451545.5 + jstar + 0.0053 * sin(mr) - 0.0069 * sin(2.0 * lr) # NOTE: The original algorithm indicates a value of 2451545.0, but that # leads to transit times around midnight, which is an error # Declination of the Sun sin_delta = sin(lr) * sin(radians(23.44)) delta = asin(sin_delta) cos_delta = cos(delta) # Hour angle # First, correct by elevation corr = -0.83 - 2.076 * sqrt(altitude) / 60.0 cos_om = ((sin(radians(corr)) - sin(latitude.rad()) * sin_delta) / (cos(latitude.rad()) * cos_delta)) # Finally, compute rising and setting times omega = degrees(acos(cos_om)) jrise = Epoch(jtran - (omega / 360.0)) jsett = Epoch(jtran + (omega / 360.0)) return jrise, jsett def __call__(self): """Method used when Epoch is called only with parenthesis. :returns: The internal value of the Julian Ephemeris Day. :rtype: float >>> a = Epoch(-122, 1, 1.0) >>> print(a()) 1676497.5 """ return self._jde def __add__(self, b): """This method defines the addition between an Epoch and some days. :param b: Value to be added, in days. :type b: int, float :returns: A new Epoch object. :rtype: :py:class:`Epoch` :raises: TypeError if operand is of wrong type. >>> a = Epoch(1991, 7, 11) >>> b = a + 10000 >>> y, m, d = b.get_date() >>> print("{}/{}/{}".format(y, m, round(d, 2))) 2018/11/26.0 """ if isinstance(b, (int, float)): return Epoch(self._jde + float(b)) else: raise TypeError("Wrong operand type") def __sub__(self, b): """This method defines the subtraction between Epochs or between an Epoch and a given number of days. :param b: Value to be subtracted, either an Epoch or days. :type b: py:class:`Epoch`, int, float :returns: A new Epoch object if parameter 'b' is in days, or the difference between provided Epochs, in days. :rtype: :py:class:`Epoch`, float :raises: TypeError if operand is of wrong type. >>> a = Epoch(1986, 2, 9.0) >>> print(round(a(), 2)) 2446470.5 >>> b = Epoch(1910, 4, 20.0) >>> print(round(b(), 2)) 2418781.5 >>> c = a - b >>> print(round(c, 2)) 27689.0 >>> a = Epoch(2003, 12, 31.0) >>> b = a - 365.5 >>> y, m, d = b.get_date() >>> print("{}/{}/{}".format(y, m, round(d, 2))) 2002/12/30.5 """ if isinstance(b, (int, float)): return Epoch(self._jde - b) elif isinstance(b, Epoch): return float(self._jde - b._jde) else: raise TypeError("Invalid operand type") def __iadd__(self, b): """This method defines the accumulative addition to this Epoch. :param b: Value to be added, in days. :type b: int, float :returns: This Epoch. :rtype: :py:class:`Epoch` :raises: TypeError if operand is of wrong type. >>> a = Epoch(2003, 12, 31.0) >>> a += 32.5 >>> y, m, d = a.get_date() >>> print("{}/{}/{}".format(y, m, round(d, 2))) 2004/2/1.5 """ if isinstance(b, (int, float)): self = self + b return self else: raise TypeError("Wrong operand type") def __isub__(self, b): """This method defines the accumulative subtraction to this Epoch. :param b: Value to be subtracted, in days. :type b: int, float :returns: This Epoch. :rtype: :py:class:`Epoch` :raises: TypeError if operand is of wrong type. >>> a = Epoch(2001, 12, 31.0) >>> a -= 2*365 >>> y, m, d = a.get_date() >>> print("{}/{}/{}".format(y, m, round(d, 2))) 2000/1/1.0 """ if isinstance(b, (int, float)): self = self - b return self else: raise TypeError("Wrong operand type") def __radd__(self, b): """This method defines the addition to a Epoch by the right :param b: Value to be added, in days. :type b: int, float :returns: A new Epoch object. :rtype: :py:class:`Epoch` :raises: TypeError if operand is of wrong type. >>> a = Epoch(2004, 2, 27.8) >>> b = 2.2 + a >>> y, m, d = b.get_date() >>> print("{}/{}/{}".format(y, m, round(d, 2))) 2004/3/1.0 """ if isinstance(b, (int, float)): return self.__add__(b) # It is the same as by the left else: raise TypeError("Wrong operand type") def __int__(self): """This method returns the internal JDE value as an int. :returns: Internal JDE value as an int. :rtype: int >>> a = Epoch(2434923.85) >>> int(a) 2434923 """ return int(self._jde) def __float__(self): """This method returns the internal JDE value as a float. :returns: Internal JDE value as a float. :rtype: float >>> a = Epoch(2434923.85) >>> float(a) 2434923.85 """ return float(self._jde) def __eq__(self, b): """This method defines the 'is equal' operator between Epochs. .. note:: For the comparison, the **base.TOL** value is used. :returns: A boolean. :rtype: bool :raises: TypeError if input values are of wrong type. >>> a = Epoch(2007, 5, 20.0) >>> b = Epoch(2007, 5, 20.000001) >>> a == b False >>> a = Epoch(2004, 10, 15.7) >>> b = Epoch(a) >>> a == b True >>> a = Epoch(2434923.85) >>> a == 2434923.85 True """ if isinstance(b, (int, float)): return abs(self._jde - float(b)) < TOL elif isinstance(b, Epoch): return abs(self._jde - b._jde) < TOL else: raise TypeError("Wrong operand type") def __ne__(self, b): """This method defines the 'is not equal' operator between Epochs. .. note:: For the comparison, the **base.TOL** value is used. :returns: A boolean. :rtype: bool >>> a = Epoch(2007, 5, 20.0) >>> b = Epoch(2007, 5, 20.000001) >>> a != b True >>> a = Epoch(2004, 10, 15.7) >>> b = Epoch(a) >>> a != b False >>> a = Epoch(2434923.85) >>> a != 2434923.85 False """ return not self.__eq__(b) # '!=' == 'not(==)' def __lt__(self, b): """This method defines the 'is less than' operator between Epochs. :returns: A boolean. :rtype: bool :raises: TypeError if input values are of wrong type. >>> a = Epoch(2004, 10, 15.7) >>> b = Epoch(2004, 10, 15.7) >>> a < b False """ if isinstance(b, (int, float)): return self._jde < float(b) elif isinstance(b, Epoch): return self._jde < b._jde else: raise TypeError("Wrong operand type") def __ge__(self, b): """This method defines 'is equal or greater' operator between Epochs. :returns: A boolean. :rtype: bool :raises: TypeError if input values are of wrong type. >>> a = Epoch(2004, 10, 15.71) >>> b = Epoch(2004, 10, 15.7) >>> a >= b True """ return not self.__lt__(b) # '>=' == 'not(<)' def __gt__(self, b): """This method defines the 'is greater than' operator between Epochs. :returns: A boolean. :rtype: bool :raises: TypeError if input values are of wrong type. >>> a = Epoch(2004, 10, 15.71) >>> b = Epoch(2004, 10, 15.7) >>> a > b True >>> a = Epoch(-207, 11, 5.2) >>> b = Epoch(-207, 11, 5.2) >>> a > b False """ if isinstance(b, (int, float)): return self._jde > float(b) elif isinstance(b, Epoch): return self._jde > b._jde else: raise TypeError("Wrong operand type") def __le__(self, b): """This method defines 'is equal or less' operator between Epochs. :returns: A boolean. :rtype: bool :raises: TypeError if input values are of wrong type. >>> a = Epoch(2004, 10, 15.71) >>> b = Epoch(2004, 10, 15.7) >>> a <= b False >>> a = Epoch(-207, 11, 5.2) >>> b = Epoch(-207, 11, 5.2) >>> a <= b True """ return not self.__gt__(b) # '<=' == 'not(>)' JDE2000 = Epoch(2000, 1, 1.5) """Standard epoch for January 1st, 2000 at 12h corresponding to JDE2451545.0""" def main(): # Let's define a small helper function def print_me(msg, val): print("{}: {}".format(msg, val)) # Let's do some work with the Epoch class print("\n" + 35 * "*") print("*** Use of Epoch class") print(35 * "*" + "\n") e = Epoch(1987, 6, 19.5) print_me("JDE for 1987/6/19.5", e) # Redefine the Epoch object e.set(333, "Jan", 27, 12) print_me("JDE for 333/1/27.5", e) # We can create an Epoch from a 'date' or 'datetime' object d = datetime.datetime(837, 4, 10, 7, 12, 0, 0) f = Epoch(d) print_me("JDE for 837/4/10.3", f) print("") # Check if a given date belong to the Julian or Gregorian calendar print_me("Is 1590/4/21.4 a Julian date?", Epoch.is_julian(1590, 4, 21.4)) print("") # We can also check if a given year is leap or not print_me("Is -1000 a leap year?", Epoch.is_leap(-1000)) print_me("Is 1800 a leap year?", Epoch.is_leap(1800)) print_me("Is 2012 a leap year?", Epoch.is_leap(2012)) print("") # Get the Day Of Year corresponding to a given date print_me("Day Of Year (DOY) of 1978/11/14", Epoch.get_doy(1978, 11, 14)) print_me("Day Of Year (DOY) of -400/2/29.9", Epoch.get_doy(-400, 2, 29.9)) print("") # Now the opposite: Get a date from a DOY t = Epoch.doy2date(2017, 365.7) s = str(t[0]) + "/" + str(t[1]) + "/" + str(round(t[2], 2)) print_me("Date from DOY 2017:365.7", s) t = Epoch.doy2date(-4, 60) s = str(t[0]) + "/" + str(t[1]) + "/" + str(round(t[2], 2)) print_me("Date from DOY -4:60", s) print("") # There is an internal table which we can use to get the leap seconds print_me("Number of leap seconds applied up to July 1983", Epoch.leap_seconds(1983, 7)) print("") # We can convert the internal JDE value back to a date e = Epoch(2436116.31) y, m, d = e.get_date() s = str(y) + "/" + str(m) + "/" + str(round(d, 2)) print_me("Date from JDE 2436116.31", s) print("") # It is possible to get the day of the week corresponding to a given date e = Epoch(2018, "Feb", 15) print_me("The day of week of 2018/2/15 is", e.dow(as_string=True)) print("") # In some cases it is useful to get the Modified Julian Day (MJD) e = Epoch(1923, "August", 23) print_me("Modified Julian Day for 1923/8/23", round(e.mjd(), 2)) print("") # If your system is appropriately configured, you can get the difference in # seconds between your local time and UTC print_me( "To convert from local system time to UTC you must add/subtract" + " this amount of seconds", Epoch.utc2local(), ) print("") # Compute DeltaT = TT - UT differences for various dates print_me("DeltaT (TT - UT) for Feb/333", round(Epoch.tt2ut(333, 2), 1)) print_me("DeltaT (TT - UT) for Jan/1642", round(Epoch.tt2ut(1642, 1), 1)) print_me("DeltaT (TT - UT) for Feb/1928", round(Epoch.tt2ut(1928, 1), 1)) print_me("DeltaT (TT - UT) for Feb/1977", round(Epoch.tt2ut(1977, 2), 1)) print_me("DeltaT (TT - UT) for Jan/1998", round(Epoch.tt2ut(1998, 1), 1)) print("") # The difference between civil day and sidereal day is almost 4 minutes e = Epoch(1987, 4, 10) st1 = round(e.mean_sidereal_time(), 9) e = Epoch(1987, 4, 11) st2 = round(e.mean_sidereal_time(), 9) ds = (st2 - st1) * DAY2MIN msg = "{}m {}s".format(iint(ds), (ds % 1) * 60.0) print_me("Difference between sidereal time 1987/4/11 and 1987/4/10", msg) print("") print( "When correcting for nutation-related effects, we get the " + "'apparent' sidereal time:" ) e = Epoch(1987, 4, 10) print("e = Epoch(1987, 4, 10)") print_me( "e.apparent_sidereal_time(23.44357, (-3.788)/3600.0)", e.apparent_sidereal_time(23.44357, (-3.788) / 3600.0), ) # 0.549145082637 print("") # Epoch class can also provide the date of Easter for a given year # Let's spice up the output a little bit, calling dow() and get_month() month, day = Epoch.easter(2019) e = Epoch(2019, month, day) s = ( e.dow(as_string=True) + ", " + str(day) + get_ordinal_suffix(day) + " of " + Epoch.get_month(month, as_string=True) ) print_me("Easter day for 2019", s) # I know Easter is always on Sunday, by the way... ;-) print("") # Compute the date of the Jewish Easter (Pesach) for a given year month, day = Epoch.jewish_pesach(1990) s = ( str(day) + get_ordinal_suffix(day) + " of " + Epoch.get_month(month, as_string=True) ) print_me("Jewish Pesach day for 1990", s) print("") # Now, convert a date in the Moslem calendar to the Gregorian calendar y, m, d = Epoch.moslem2gregorian(1421, 1, 1) print_me("The date 1421/1/1 in the Moslem calendar is, in Gregorian " + "calendar", "{}/{}/{}".format(y, m, d)) y, m, d = Epoch.moslem2gregorian(1439, 9, 1) print_me( "The start of Ramadan month (9/1) for Gregorian year 2018 is", "{}/{}/{}".format(y, m, d), ) # We can go from the Gregorian calendar back to the Moslem calendar too print_me( "Date 1991/8/13 in Gregorian calendar is, in Moslem calendar", "{}/{}/{}".format(*Epoch.gregorian2moslem(1991, 8, 13)), ) # Note: The '*' before 'Epoch' will _unpack_ the tuple into components print("") # It is possible to carry out some algebraic operations with Epochs # Add 10000 days to a given date a = Epoch(1991, 7, 11) b = a + 10000 y, m, d = b.get_date() s = str(y) + "/" + str(m) + "/" + str(round(d, 2)) print_me("1991/7/11 plus 10000 days is", s) # Subtract two Epochs to find the number of days between them a = Epoch(1986, 2, 9.0) b = Epoch(1910, 4, 20.0) print_me("The number of days between 1986/2/9 and 1910/4/20 is", round(a - b, 2)) # We can also subtract a given amount of days from an Epoch a = Epoch(2003, 12, 31.0) b = a - 365.5 y, m, d = b.get_date() s = str(y) + "/" + str(m) + "/" + str(round(d, 2)) print_me("2003/12/31 minus 365.5 days is", s) # Accumulative addition and subtraction of days is also allowed a = Epoch(2003, 12, 31.0) a += 32.5 y, m, d = a.get_date() s = str(y) + "/" + str(m) + "/" + str(round(d, 2)) print_me("2003/12/31 plus 32.5 days is", s) a = Epoch(2001, 12, 31.0) a -= 2 * 365 y, m, d = a.get_date() s = str(y) + "/" + str(m) + "/" + str(round(d, 2)) print_me("2001/12/31 minus 2*365 days is", s) # It is also possible to add days from the right a = Epoch(2004, 2, 27.8) b = 2.2 + a y, m, d = b.get_date() s = str(y) + "/" + str(m) + "/" + str(round(d, 2)) print_me("2004/2/27.8 plus 2.2 days is", s) print("") # Comparison operadors between epochs are also defined a = Epoch(2007, 5, 20.0) b = Epoch(2007, 5, 20.000001) print_me("2007/5/20.0 == 2007/5/20.000001", a == b) print_me("2007/5/20.0 != 2007/5/20.000001", a != b) print_me("2007/5/20.0 > 2007/5/20.000001", a > b) print_me("2007/5/20.0 <= 2007/5/20.000001", a <= b) print("") # Compute the time of rise and setting of the Sun in a given day e = Epoch(2018, 5, 2) print("On May 2nd, 2018, Sun rising/setting times in Munich were (UTC):") latitude = Angle(48, 8, 0) longitude = Angle(11, 34, 0) altitude = 520.0 rising, setting = e.rise_set(latitude, longitude, altitude) y, m, d, h, mi, s = rising.get_full_date() print("Rising time: {}:{}".format(h, mi)) # 3:50 y, m, d, h, mi, s = setting.get_full_date() print("Setting time: {}:{}".format(h, mi)) # 18:33 if __name__ == "__main__": main() pymeeus-0.3.6/pymeeus/Interpolation.py000066400000000000000000000660661355545537700201400ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from math import sqrt, degrees from pymeeus.base import TOL from pymeeus.Angle import Angle """ .. module:: Interpolation :synopsis: Basic interpolation routines :license: GNU Lesser General Public License v3 (LGPLv3) .. moduleauthor:: Dagoberto Salazar """ class Interpolation(object): """ Class Interpolation deals with finding intermediate values to those given in a table. Besides the basic interpolation, this class also provides methods to find the extrema (maximum or minimum value) in a given interval (if present), and it also has methods to find roots (the values of the argument 'x' for which the function 'y' becomes zero). Please note that it seems that Meeus uses the Bessel interpolation method (Chapter 3). However, this class uses the Newton interpolation method because it is (arguably) more flexible regarding the number of entries provided in the interpolation table. The constructor takes pairs of (x, y) values from the table of interest. These pairs of values can be given as a sequence of int/floats, tuples, lists or Angles. It is also possible to provide an Interpolation object to the constructor in order to get a copy. .. note:: When using Angles, be careful with the 360-to-0 discontinuity. If a sequence of int, floats or Angles is given, the values in the odd positions are considered to belong to the 'x' set, while the values in the even positions belong to the 'y' set. If only one tuple or list is provided, it is assumed that it is the 'y' set, and the 'x' set is build from 0 onwards with steps of length 1. Please keep in mind that a minimum of two data pairs are needed in order to carry out any interpolation. If only one value pair is provided, a ValueError exception will be raised. """ def __init__(self, *args): """Interpolation constructor. This takes pairs of (x, y) values from the table of interest. These pairs of values can be given as a sequence of int/floats, tuples, lists or Angles. It is also possible to provide an Interpolation object to the constructor in order to get a copy. .. note:: When using Angles, be careful with the 360-to-0 discontinuity If a sequence of int, floats or Angles is given, the values in the odd positions are considered to belong to the 'x' set, while the values in the even positions belong to the 'y' set. If only one tuple or list is provided, it is assumed that it is the 'y' set, and the 'x' set is build from 0 onwards with steps of length 1. Please keep in mind that a minimum of two data pairs are needed in order to carry out any interpolation. If only one value pair is provided, a ValueError exception will be raised. :param args: Input tabular values, or another Interpolation object. :type args: int, float, list, tuple, :py:class:`Angle`, :py:class:`Interpolation` :returns: Interpolation object. :rtype: :py:class:`Interpolation` :raises: ValueError if not enough input data pairs are provided. :raises: TypeError if input values are of wrong type. >>> i = Interpolation([5, 3, 6, 1, 2, 4, 9], [10, 6, 12, 2, 4, 8]) >>> print(i._x) [1, 2, 3, 4, 5, 6] >>> print(i._y) [2, 4, 6, 8, 10, 12] >>> j = Interpolation([3, -8, 1, 12, 2, 5, 8]) >>> print(j._x) [0, 1, 2, 3, 4, 5, 6] >>> print(j._y) [3, -8, 1, 12, 2, 5, 8] >>> k = Interpolation(3, -8, 1, 12, 2, 5, 8) >>> print(k._x) [1, 2, 3] >>> print(k._y) [12, 5, -8] """ self._x = [] self._y = [] self._table = [] self._tol = TOL self.set(*args) # Let's use 'set()' method to handle the setup def _order_points(self): """Method to put the data points in ascending order w.r.t. 'x'.""" # Let's work with copies of the original lists x = list(self._x) y = list(self._y) xnew = [] ynew = [] xmax = max(x) + 1.0 for _ in range(len(x)): # Get the index of the minimum value imin = x.index(min(x)) # Append the current minimum value to the new 'x' list xnew.append(x[imin]) # Store the *position* of the current minimum value to new 'y' list ynew.append(imin) # The current minimum value will no longer be the minimum x[imin] = xmax # In the new 'y' list, substitute the positions by the real values for i in range(len(x)): ynew[i] = y[ynew[i]] # Store the results in the corresponding fields self._x = xnew self._y = ynew def set(self, *args): """Method used to define the value pairs of Interpolation object. This takes pairs of (x, y) values from the table of interest. These pairs of values can be given as a sequence of int/floats, tuples, lists, or Angles. It is also possible to provide an Interpolation object to this method in order to get a copy. .. note:: When using Angles, be careful with the 360-to-0 discontinuity If a sequence of int, floats or Angles is given, the values in the odd positions are considered to belong to the 'x' set, while the values in the even positions belong to the 'y' set. If only one tuple or list is provided, it is assumed that it is the 'y' set, and the 'x' set is build from 0 onwards with steps of length 1. Please keep in mind that a minimum of two data pairs are needed in order to carry out any interpolation. If only one value pair is provided, a ValueError exception will be raised. :param args: Input tabular values, or another Interpolation object. :type args: int, float, list, tuple, :py:class:`Angle` :returns: None. :rtype: None :raises: ValueError if not enough input data pairs are provided. :raises: TypeError if input values are of wrong type. >>> i = Interpolation() >>> i.set([5, 3, 6, 1, 2, 4, 9], [10, 6, 12, 2, 4, 8]) >>> print(i._x) [1, 2, 3, 4, 5, 6] >>> print(i._y) [2, 4, 6, 8, 10, 12] >>> j = Interpolation() >>> j.set([3, -8, 1, 12, 2, 5, 8]) >>> print(j._x) [0, 1, 2, 3, 4, 5, 6] >>> print(j._y) [3, -8, 1, 12, 2, 5, 8] >>> k = Interpolation(3, -8, 1, 12, 2, 5, 8) >>> print(k._x) [1, 2, 3] >>> print(k._y) [12, 5, -8] >>> m = Interpolation(k) >>> print(m._x) [1, 2, 3] >>> print(m._y) [12, 5, -8] """ # Clean up the internal data tables self._x = [] self._y = [] self._table = [] # If no arguments are given, return. Internal data tables are empty if len(args) == 0: return # If we have only one argument, it can be a single value or tuple/list elif len(args) == 1: if isinstance(args[0], Interpolation): # Copy constructor self._x = args[0]._x self._y = args[0]._y self._table = args[0]._table self._tol = args[0]._tol return elif isinstance(args[0], (int, float, Angle)): # Insuficient data to interpolate. Raise ValueError exception raise ValueError("Invalid number of input values") elif isinstance(args[0], (list, tuple)): seq = args[0] if len(seq) < 2: raise ValueError("Invalid number of input values") else: # Read input values into 'y', and create 'x' i = 0 for value in seq: self._x.append(i) self._y.append(value) i += 1 else: raise TypeError("Invalid input value") elif len(args) == 2: if isinstance(args[0], (int, float, Angle)) or isinstance( args[1], (int, float, Angle) ): # Insuficient data to interpolate. Raise ValueError exception raise ValueError("Invalid number of input values") elif isinstance(args[0], (list, tuple)) and isinstance( args[1], (list, tuple) ): x = args[0] y = args[1] # Check if they have the same length. If not, make them equal length_min = min(len(x), len(y)) x = x[:length_min] y = y[:length_min] if len(x) < 2 or len(y) < 2: raise ValueError("Invalid number of input values") else: # Read input values into 'x' and 'y' for xval, yval in zip(x, y): self._x.append(xval) self._y.append(yval) else: raise TypeError("Invalid input value") elif len(args) == 3: # In this case, no combination of input values is valid raise ValueError("Invalid number of input values") else: # If there is an odd number of arguments, drop the last one if len(args) % 2 != 0: args = args[:-1] # Check that all the arguments are ints, floats or Angles all_numbers = True for arg in args: all_numbers = (all_numbers and isinstance(arg, (int, float, Angle))) # If any of the values failed the test, raise an exception if not all_numbers: raise TypeError("Invalid input value") # Now, extract the data: Odds are x's, evens are y's for i in range(int(len(args) / 2.0)): self._x.append(args[2 * i]) self._y.append(args[2 * i + 1]) # After self._x is found, confirm that x's are different to each other for i in range(len(self._x) - 1): for k in range(i + 1, len(self._x)): if abs(self._x[i] - self._x[k]) < self._tol: raise ValueError("Invalid input: Values in 'x' are equal") # Order the data points if needed self._order_points() # Create table containing Newton coefficientes, only if values given if len(self._x) > 0: self._compute_table() def __str__(self): """Method used when trying to print the object. :returns: Internal tabular values as strings. :rtype: string >>> i = Interpolation([5, 3, 6, 1, 2, 4, 9], [10, 6, 12, 2, 4, 8]) >>> print(i) X: [1, 2, 3, 4, 5, 6] Y: [2, 4, 6, 8, 10, 12] """ xstr = "X: " + str(self._x) + "\n" ystr = "Y: " + str(self._y) return xstr + ystr def __repr__(self): """Method providing the 'official' string representation of the object. It provides a valid expression that could be used to recreate the object. :returns: As string with a valid expression to recreate the object :rtype: string >>> i = Interpolation([5, 3, 6, 1, 2, 4, 9], [10, 6, 12, 2, 4, 8]) >>> repr(i) 'Interpolation([1, 2, 3, 4, 5, 6], [2, 4, 6, 8, 10, 12])' """ return "{}({}, {})".format(self.__class__.__name__, self._x, self._y) def __len__(self): """This method returns the number of interpolation points (x, y, pairs) stored in this :class:`Interpolation` object. :returns: Number of interpolation points internally stored :rtype: int >>> i = Interpolation([5, 3, 6, 1, 2, 4, 9], [10, 6, 12, 2, 4, 8]) >>> len(i) 6 """ return len(self._x) def get_tolerance(self): """Gets the internal tolerance value used for comparisons. .. note:: The default tolerance value is TOL. :returns: Internal tolerance. :rtype: float """ return self._tol def set_tolerance(self, tol): """Changes the internal tolerance value used for comparisons. :param tol: New tolerance value. :type tol: int, float :returns: None :rtype: None """ self._tol = tol return def _compute_table(self): """Method to compute coefficients of Newton interpolation method.""" for i in range(len(self._x)): self._table.append(self._newton_diff(0, i)) def _newton_diff(self, start, end): """Auxiliary method to compute the elements of the Newton table. :param start: Starting index :type start: int :param end: Ending index :type end: int :returns: Resulting value of the element of the Newton table. :rtype: float """ if abs(end - start) < self._tol: val = self._y[start] else: x = list(self._x) # Let's make a copy, just in case val = (self._newton_diff(start, end - 1) - self._newton_diff(start + 1, end)) / (x[start] - x[end]) return val def __call__(self, x): """Method to interpolate the function at a given 'x'. :param x: Point where the interpolation will be carried out. :type x: int, float, :py:class:`Angle` :returns: Resulting value of the interpolation. :rtype: float :raises: ValueError if input value is outside of interpolation range. :raises: TypeError if input value is of wrong type. >>> i = Interpolation([7, 8, 9], [0.884226, 0.877366, 0.870531]) >>> y = round(i(8.18125), 6) >>> print(y) 0.876125 """ # Check if input value is of correct type if isinstance(x, (int, float, Angle)): # Check if 'x' already belongs to the data table for i in range(len(self._x)): if abs(x - self._x[i]) < self._tol: return self._y[i] # We don't need to look further # Check if Newton coefficients table is not empty if len(self._table) == 0: raise RuntimeError("Internal table is empty. Use set().") # Check that x is within interpolation table values if x < self._x[0] or x > self._x[-1]: raise ValueError("Input value outside of interpolation range.") # Horner's method is used to efficiently compute the result val = self._table[-1] for i in range(len(self._table) - 1, 0, -1): val = self._table[i - 1] + (x - self._x[i - 1]) * val return val else: raise TypeError("Invalid input value") def derivative(self, x): """Method to compute the derivative from interpolation polynomial. :param x: Point where the interpolation derivative will be carried out. :type x: int, float, :py:class:`Angle` :returns: Resulting value of the interpolation derivative. :rtype: float :raises: ValueError if input value is outside of interpolation range. :raises: TypeError if input value is of wrong type. >>> m = Interpolation([-1.0, 0.0, 1.0], [-2.0, 3.0, 2.0]) >>> m.derivative(-1.0) 8.0 >>> m.derivative(0.5) -1.0 """ # Check if input value is of correct type if isinstance(x, (int, float, Angle)): # Check that x is within interpolation table values if x < self._x[0] or x > self._x[-1]: raise ValueError("Input value outside of interpolation range.") # If we only have two interpolation points, derivative is simple if len(self._x) == 2: return (self._y[1] - self._y[0]) / (self._x[1] - self._x[0]) else: res = self._table[1] for k in range(len(self._table) - 1, 1, -1): val = 0.0 for j in range(k): s = 1.0 for i in range(k): if i != j: s *= x - self._x[i] val += s res += val * self._table[k] return res else: raise TypeError("Invalid input value") def root(self, xl=0, xh=0, max_iter=1000): """Method to find the root inside the [xl, xh] range. This method applies, in principle, the Newton method to find the root; however, if conditions are such that Newton method may not bei properly behaving or converging, then it switches to the linear Interpolation method. If values xl, xh are not given, the limits of the interpolation table values will be used. .. note:: This method returns a ValueError exception if the corresponding yl = f(xl) and yh = f(xh) values have the same sign. In that case, the method assumes there is no root in the [xl, xh] interval. .. note:: If any of the xl, xh values is beyond the limits given by the interpolation values, its value will be set to the corresponding limit. .. note:: If xl == xh (and not zero), a ValueError exception is raised. .. note:: If the method doesn't converge within max_iter ierations, then a ValueError exception is raised. :param xl: Lower limit of interval where the root will be looked for. :type xl: int, float, :py:class:`Angle` :param xh: Higher limit of interval where the root will be looked for. :type xh: int, float, :py:class:`Angle` :param max_iter: Maximum number of iterations allowed. :type max_iter: int :returns: Root of the interpolated function within [xl, xh] interval. :rtype: int, float, :py:class:`Angle` :raises: ValueError if yl = f(xl), yh = f(xh) have same sign. :raises: ValueError if xl == xh. :raises: ValueError if maximum number of iterations is exceeded. :raises: TypeError if input value is of wrong type. >>> m = Interpolation([-1.0, 0.0, 1.0], [-2.0, 3.0, 2.0]) >>> round(m.root(), 8) -0.72075922 """ # Get the limits of the interpolation table xmin = self._x[0] xmax = self._x[-1] # Check if input value is of correct type if (isinstance(xl, (int, float, Angle)) and isinstance(xh, (int, float, Angle))): # Check if BOTH values are zero if xl == 0 and xh == 0: xl = xmin xh = xmax # Check if limits are equal if abs(xl - xh) < self._tol: raise ValueError("Invalid limits: xl and xh values are equal") # Put limits in order. Swap them if necessary if xl > xh: xl, xh = xh, xl # Check limits against interpolation table. Reset if necessary if xl < self._x[0]: xl = xmin if xh < self._x[-1]: xh = xmax yl = self.__call__(xl) yh = self.__call__(xh) # Check for a couple special cases if abs(yl) < self._tol: return xl # xl is a root if abs(yh) < self._tol: return xh # xh is a root # Check if signs of ordinates are the same if (yl * yh) > 0.0: raise ValueError("Invalid interval: Probably no root exists") # We are good to go. First option: Newton's root-finding method x = (xl + xh) / 2.0 # Start in the middle of interval y = self.__call__(x) num_iter = 0 # Count the number of iterations while abs(y) > self._tol: if num_iter >= max_iter: raise ValueError( "Too many iterations: Probably no root\ exists" ) num_iter += 1 yp = self.derivative(x) # If derivative is too small, switch to linear interpolation if abs(yp) < 1e-3: x = (xl * yh - xh * yl) / (yh - yl) y = self.__call__(x) else: x = x - y / yp # Check if x is within limits if x < xmin or x > xmax: # Switch to linear interpolation x = (xl * yh - xh * yl) / (yh - yl) y = self.__call__(x) else: y = self.__call__(x) if (y * yl) >= 0.0: xl = x yl = y else: xh = x yh = y return x else: raise TypeError("Invalid input value") def minmax(self, xl=0, xh=0, max_iter=1000): """Method to find the minimum or maximum inside the [xl, xh] range. Finding the minimum or maximum (extremum) of a function within a given interval is akin to find the root of its derivative. Therefore, this method creates an interpolation object for the derivative function, and calls the root method of that object. See :meth:`root` method for more details. If values xl, xh are not given, the limits of the interpolation table values will be used. .. note:: This method returns a ValueError exception if the corresponding derivatives yl' = f'(xl) and yh' = f'(xh) values have the same sign. In that case, the method assumes there is no extremum in the [xl, xh] interval. .. note:: If any of the xl, xh values is beyond the limits given by the interpolation values, its value will be set to the corresponding limit. .. note:: If xl == xh (and not zero), a ValueError exception is raised. .. note:: If the method doesn't converge within max_iter ierations, then a ValueError exception is raised. :param xl: Lower limit of interval where a extremum will be looked for. :type xl: int, float, :py:class:`Angle` :param xh: Higher limit of interval where extremum will be looked for. :type xh: int, float, :py:class:`Angle` :param max_iter: Maximum number of iterations allowed. :type max_iter: int :returns: Extremum of interpolated function within [xl, xh] interval. :rtype: int, float, :py:class:`Angle` :raises: ValueError if yl = f(xl), yh = f(xh) have same sign. :raises: ValueError if xl == xh. :raises: ValueError if maximum number of iterations is exceeded. :raises: TypeError if input value is of wrong type. >>> m = Interpolation([-1.0, 0.0, 1.0], [-2.0, 3.0, 2.0]) >>> round(m.minmax(), 8) 0.33333333 """ # Compute the derivatives for the current data x = list(self._x) y = [] for xi in x: y.append(self.derivative(xi)) # Create a new Interpolation object prime = Interpolation(x, y) # Find the root within that object, and return it return prime.root(xl, xh, max_iter) def main(): # Let's define a small helper function def print_me(msg, val): print("{}: {}".format(msg, val)) # Let's now work with the Interpolation class print("\n" + 35 * "*") print("*** Use of Interpolation class") print(35 * "*" + "\n") i = Interpolation([5, 3, 6, 1, 2, 4, 9], [10, 6, 12, 2, 4, 8]) print("i = Interpolation([5, 3, 6, 1, 2, 4, 9], [10, 6, 12, 2, 4, 8])") print(i) print("NOTE:") print(" a. They are ordered in 'x'") print(" b. The extra value in 'x' was dropped") print("") # Use the copy constructor print("We can easily make a copy of an Interpolation object") j = Interpolation(i) print("j = Interpolation(i)") print(j) print("") # Get the number of interpolation points stored print_me("Number or interpolation points in 'j'", len(j)) # 6 print("") j = Interpolation([0.0, 1.0, 3.0], [-1.0, -2.0, 2.0]) print("j = Interpolation([0.0, 1.0, 3.0], [-1.0, -2.0, 2.0])") print(j) print_me("j(2)", j(2)) print_me("j(0.5)", j(0.5)) # Test with a value already in the data table print_me("j(1)", j(1)) print("") # We can interpolate Angles too k = Interpolation( [27.0, 27.5, 28.0, 28.5, 29.0], [ Angle(0, 54, 36.125), Angle(0, 54, 24.606), Angle(0, 54, 15.486), Angle(0, 54, 8.694), Angle(0, 54, 4.133), ], ) print( "k = Interpolation([27.0, 27.5, 28.0, 28.5, 29.0],\n\ [Angle(0, 54, 36.125), Angle(0, 54, 24.606),\n\ Angle(0, 54, 15.486), Angle(0, 54, 8.694),\n\ Angle(0, 54, 4.133)])" ) print_me("k(28.278)", Angle(k(28.278)).dms_str()) print("") m = Interpolation([-1.0, 0.0, 1.0], [-2.0, 3.0, 2.0]) print("m = Interpolation([-1.0, 0.0, 1.0], [-2.0, 3.0, 2.0])") print(m) # Get interpolated values print_me("m(-0.5)", m(-0.5)) print_me("m(0.5)", m(0.5)) # Get derivatives print_me("m'(-1.0)", m.derivative(-1.0)) print_me("m'(-0.5)", m.derivative(-0.5)) print_me("m'(0.0)", m.derivative(0.0)) print_me("m'(0.5)", m.derivative(0.5)) print_me("m'(1.0)", m.derivative(1.0)) # Get the root within the interval print_me("m.root()", m.root()) # Get the extremum within the interval print_me("m.minmax()", m.minmax()) m = Interpolation( [29.43, 30.97, 27.69, 28.11, 31.58, 33.05], [ 0.4913598528, 0.5145891926, 0.4646875083, 0.4711658342, 0.5236885653, 0.5453707057, ], ) print_me("sin(29.5)\t", m(29.5)) print_me("sin(30.0)\t", m(30.0)) print_me("sin(30.5)\t", m(30.5)) # Derivative must be adjusted because degrees were used instead of radians print_me("sin'(29.5)\t", degrees(m.derivative(29.5))) print_me("sin'(30.0)\t", degrees(m.derivative(30.0))) print_me("sqrt(3.0)/2.0\t", sqrt(3.0) / 2.0) print_me("sin'(30.5)\t", degrees(m.derivative(30.5))) if __name__ == "__main__": main() pymeeus-0.3.6/pymeeus/Jupiter.py000066400000000000000000006114041355545537700167230ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from math import sin, cos, tan, acos, atan2, sqrt, radians, log10 from pymeeus.Angle import Angle from pymeeus.Epoch import Epoch, JDE2000 from pymeeus.Interpolation import Interpolation from pymeeus.Coordinates import ( geometric_vsop_pos, apparent_vsop_pos, orbital_elements, nutation_longitude, true_obliquity, ecliptical2equatorial, passage_nodes_elliptic ) from pymeeus.Earth import Earth from pymeeus.Sun import Sun """ .. module:: Jupiter :synopsis: Class to model Jupiter planet :license: GNU Lesser General Public License v3 (LGPLv3) .. moduleauthor:: Dagoberto Salazar """ VSOP87_L = [ # L0 [ [59954691.495, 0.00000000000, 0.00000000000], [9695898.711, 5.06191793105, 529.69096509460], [573610.145, 1.44406205976, 7.11354700080], [306389.180, 5.41734729976, 1059.38193018920], [97178.280, 4.14264708819, 632.78373931320], [72903.096, 3.64042909255, 522.57741809380], [64263.986, 3.41145185203, 103.09277421860], [39806.051, 2.29376744855, 419.48464387520], [38857.780, 1.27231724860, 316.39186965660], [27964.622, 1.78454589485, 536.80451209540], [13589.738, 5.77481031590, 1589.07289528380], [8246.362, 3.58227961655, 206.18554843720], [8768.686, 3.63000324417, 949.17560896980], [7368.057, 5.08101125612, 735.87651353180], [6263.171, 0.02497643742, 213.29909543800], [6114.050, 4.51319531666, 1162.47470440780], [4905.419, 1.32084631684, 110.20632121940], [5305.283, 1.30671236848, 14.22709400160], [5305.457, 4.18625053495, 1052.26838318840], [4647.249, 4.69958109497, 3.93215326310], [3045.009, 4.31675960318, 426.59819087600], [2610.001, 1.56667594850, 846.08283475120], [2028.191, 1.06376547379, 3.18139373770], [1764.768, 2.14148077766, 1066.49547719000], [1722.983, 3.88036008872, 1265.56747862640], [1920.959, 0.97168928755, 639.89728631400], [1633.217, 3.58201089758, 515.46387109300], [1431.997, 4.29683690269, 625.67019231240], [973.278, 4.09764957065, 95.97922721780], [884.439, 2.43701426123, 412.37109687440], [732.875, 6.08534113239, 838.96928775040], [731.072, 3.80591233956, 1581.95934828300], [691.928, 6.13368222939, 2118.76386037840], [709.190, 1.29272573658, 742.99006053260], [614.464, 4.10853496756, 1478.86657406440], [495.224, 3.75567461379, 323.50541665740], [581.902, 4.53967717552, 309.27832265580], [375.657, 4.70299124833, 1368.66025284500], [389.864, 4.89716105852, 1692.16566950240], [341.006, 5.71452525783, 533.62311835770], [330.458, 4.74049819491, 0.04818410980], [440.854, 2.95818460943, 454.90936652730], [417.266, 1.03554430161, 2.44768055480], [244.170, 5.22020878900, 728.76296653100], [261.540, 1.87652461032, 0.96320784650], [256.568, 3.72410724159, 199.07200143640], [261.009, 0.82047246448, 380.12776796000], [220.382, 1.65115015995, 543.91805909620], [201.996, 1.80684574186, 1375.77379984580], [207.327, 1.85461666594, 525.75881183150], [197.046, 5.29252149016, 1155.36115740700], [235.141, 1.22693908124, 909.81873305460], [174.809, 5.90973505276, 956.28915597060], [149.368, 4.37745104275, 1685.05212250160], [175.184, 3.22634903433, 1898.35121793960], [175.191, 3.72966554761, 942.06206196900], [157.909, 4.36483921766, 1795.25844372100], [137.871, 1.31797920785, 1169.58825140860], [117.495, 2.50022140890, 1596.18644228460], [150.502, 3.90625022622, 74.78159856730], [116.757, 3.38920921041, 0.52126486180], [105.895, 4.55439798236, 526.50957135690], [130.531, 4.16867945489, 1045.15483618760], [141.445, 3.13568357861, 491.55792945680], [99.511, 1.42117395747, 532.87235883230], [96.137, 1.18156870005, 117.31986822020], [91.758, 0.85756633461, 1272.68102562720], [87.695, 1.21738140813, 453.42489381900], [68.507, 2.35242959478, 2.92076130680], [66.098, 5.34386149468, 1471.75302706360], [77.401, 4.42676337124, 39.35687591520], [72.006, 4.23834923691, 2111.65031337760], [63.406, 4.97665525033, 0.75075952540], [59.427, 4.11130498612, 2001.44399215820], [62.481, 0.51211384012, 220.41264243880], [66.532, 2.98864358135, 2214.74308759620], [60.194, 4.12628179571, 4.19278569400], [56.012, 1.15493222602, 21.34064100240], [52.854, 0.91207215543, 10.29494073850], [70.297, 5.14180555282, 835.03713448730], [51.916, 4.10048180020, 1258.45393162560], [46.442, 4.66531163524, 5.62907429250], [58.190, 5.86646380344, 5753.38488489680], [40.103, 4.68801114087, 0.16005869440], [46.654, 4.79394835282, 305.34616939270], [39.298, 4.25448423697, 853.19638175200], [46.042, 5.10983515150, 4.66586644600], [54.459, 1.57072704127, 983.11585891360], [38.920, 6.07592905580, 518.64526483070], [38.450, 2.43836870888, 433.71173787680], [46.800, 3.54640538283, 5.41662597140], [41.830, 4.67982493646, 302.16477565500], [35.920, 2.45088036239, 430.53034413910], [37.888, 0.21127448431, 2648.45482547300], [39.190, 1.71835571629, 11.04570026390], [37.567, 6.19481310233, 831.85574074960], [35.828, 4.61459907698, 2008.55753915900], [43.402, 0.14992289081, 528.20649238630], [31.598, 5.14073450755, 1788.14489672020], [29.849, 5.34441117167, 2221.85663459700], [32.811, 5.28907118836, 88.86568021700], [27.686, 1.85227036207, 0.21244832110], [25.820, 3.85920882494, 2317.83586181480], [24.705, 2.63495214991, 114.13847448250], [33.844, 1.00563073268, 9683.59458111640], [24.266, 3.82355417268, 1574.84580128220], [27.111, 2.80845435102, 18.15924726470], [26.837, 1.77586123775, 532.13864564940], [26.064, 2.74361318804, 2531.13495725280], [30.765, 0.42330537728, 1.48447270830], [30.476, 3.66677894407, 508.35032409220], [23.282, 3.24372142416, 984.60033162190], [19.445, 0.52370214471, 14.97785352700], [19.332, 4.86314494382, 1361.54670584420], [22.910, 3.84914895064, 2428.04218303420], [21.617, 6.01696940024, 1063.31408345230], [20.155, 5.59582008789, 527.24328453980], [23.732, 2.52766031921, 494.26624244250], [20.189, 1.01560227681, 628.85158605010], [15.994, 5.09003530653, 529.73914920440], [16.134, 5.27095037302, 142.44965013380], [20.697, 4.03443281612, 355.74874557180], [21.479, 1.28668134295, 35.42472265210], [14.964, 4.86039684390, 2104.53676637680], [17.242, 1.59187913206, 1439.50969814920], [15.994, 1.89222417794, 529.64278098480], [17.958, 4.30178016003, 6.15033915430], [13.279, 2.18943981644, 1055.44977692610], [14.148, 2.71597731671, 0.26063243090], [14.689, 0.87944553412, 99.16062095550], [14.202, 2.41335693735, 530.65417294110], [15.320, 6.07703092728, 149.56319713460], [15.832, 4.11682440678, 636.71589257630], [12.398, 2.61042299578, 405.25754987360], [16.199, 2.77035044582, 760.25553592000], [13.665, 3.56039678310, 217.23124870110], [15.261, 2.81824770887, 621.73803904930], [14.681, 6.26423732742, 569.04784100980], [12.529, 1.39077179081, 7.06536289100], [11.677, 3.60447374272, 2634.22773147140], [11.603, 4.60461756191, 7.16173111060], [12.152, 0.24540531919, 1485.98012106520], [11.347, 2.00818458261, 1073.60902419080], [11.242, 2.48000947870, 423.41679713830], [10.942, 5.03602448252, 458.84151979040], [11.117, 4.04973271023, 519.39602435610], [12.256, 4.30153222783, 604.47256366190], [13.149, 2.72189077702, 1364.72809958190], [10.604, 3.11518747072, 1.27202438720], [9.874, 1.70200068743, 1699.27921650320], [10.851, 5.08554552028, 2324.94940881560], [10.692, 2.51401681528, 2847.52682690940], [12.640, 4.75572797691, 528.72775724810], [10.084, 4.05599810206, 38.13303563780], [11.536, 2.35034215745, 643.82943957710], [10.247, 3.63479911496, 2744.43405269080], [10.105, 3.65845333837, 107.02492748170], [10.121, 1.31482648275, 1905.46476494040], [9.341, 5.92176693887, 1148.24761040620], [8.796, 2.77421822809, 6.59228213900], [8.420, 4.52537756809, 1677.93857550080], [10.128, 2.09034472544, 511.53171782990], [8.272, 2.98682673354, 540.73666535850], [9.753, 1.22438911827, 32.24332891440], [10.630, 2.07777800288, 92.04707395470], [7.850, 0.98996894618, 408.43894361130], [8.811, 3.46911754939, 1021.24889455140], [7.946, 2.86682926070, 2125.87740737920], [8.575, 5.29590411702, 415.55249061210], [7.841, 6.08025056721, 70.84944530420], [7.706, 1.69832954219, 8.07675484730], [7.265, 4.65503563919, 629.60234557550], [7.164, 4.93400217968, 1056.20053645150], [7.247, 4.61607677560, 2420.92863603340], [7.753, 2.12871653382, 33.94024994380], [6.645, 0.45647460873, 635.96513305090], [9.377, 4.03158388202, 2810.92146160520], [8.263, 1.23558676139, 1802.37199072180], [6.341, 0.07278001580, 202.25339517410], [6.383, 3.54310669809, 1891.23767093880], [7.902, 2.32510002614, 230.56457082540], [6.214, 4.54560345237, 2.70831298570], [7.347, 1.24457237337, 24.37902238820], [7.451, 3.02719199239, 330.61896365820], [6.220, 1.77687561489, 1062.56332392690], [5.674, 5.14132196367, 746.92221379570], [5.855, 5.42130172896, 28.31117565130], [5.629, 3.24348217277, 529.16970023280], [7.652, 0.52813391052, 672.14061522840], [5.456, 3.34716871364, 2950.61960112800], [7.127, 1.43497795005, 6.21977512350], [5.388, 4.90175095580, 69.15252427480], [5.618, 4.97903783721, 2641.34127847220], [5.844, 2.95364118152, 490.33408917940], [4.943, 5.37597740579, 721.64941953020], [5.062, 4.84282906467, 31.01948863700], [5.163, 5.07410777073, 67.66805156650], [4.739, 6.10248862834, 106.27416795630], [4.879, 0.07095292379, 78.71375183040], [4.854, 5.63875661096, 1.69692102940], [5.629, 3.73871604865, 530.21222995640], [4.471, 4.49152882547, 505.31194270640], [4.313, 4.79369370451, 535.10759106600], [4.280, 0.54783823710, 1.43628859850], [4.453, 0.50551854591, 524.06189080210], [4.936, 4.82992988255, 422.66603761290], [4.701, 3.41634869046, 3060.82592234740], [4.261, 2.67044686458, 561.93429400900], [4.156, 4.00660658688, 99.91138048090], [4.561, 2.29650164054, 3163.91869656600], [4.414, 5.67224020329, 1464.63948006280], [5.345, 0.31513851830, 1289.94650101460], [5.269, 3.89116469022, 191.95845443560], [3.855, 4.28942301453, 1994.33044515740], [4.210, 5.32763589447, 2538.24850425360], [3.949, 4.56507101172, 1382.88734684660], [3.885, 1.56778786810, 647.01083331480], [4.227, 5.51697599030, 5223.69391980220], [4.129, 2.81119457666, 416.30325013750], [3.663, 4.35187510477, 2737.32050569000], [3.566, 5.48243943375, 750.10360753340], [4.330, 0.84941756640, 531.17543780290], [4.093, 0.19980340452, 525.02509864860], [4.022, 1.92293311337, 1512.80682400820], [3.400, 6.00302355875, 1.22384027740], [3.496, 0.31252921473, 597.35901666110], [3.299, 4.27596694481, 526.77020378780], [3.226, 2.90455264496, 963.40270297140], [3.150, 3.81061764181, 280.96714700450], [4.129, 4.74946631331, 0.89377187730], [3.840, 1.91064405186, 378.64329525170], [3.057, 1.65589659685, 528.94020556920], [3.011, 1.59276337369, 224.34479570190], [3.196, 5.86588452873, 4.14460158420], [3.628, 0.07930225897, 558.00214074590], [2.932, 0.41424445089, 7.86430652620], [3.316, 2.70211697795, 532.61172640140], [2.925, 4.47580363425, 533.88375078860], [3.690, 0.39897023849, 685.47393735270], [3.223, 2.45833032883, 960.22130923370], [3.059, 5.32616140812, 530.44172462000], [3.383, 4.42170370028, 312.45971639350], [3.320, 2.71417812514, 495.75071515080], [2.697, 5.23146633437, 739.80866679490], [3.590, 2.30999595873, 908.33426034630], [3.677, 5.07337955976, 73.29712585900], [2.618, 3.09118499149, 3267.01147078460], [2.796, 2.98942316119, 483.22054217860], [3.398, 3.29598270278, 911.30320576290], [3.352, 1.44391979336, 593.42686339800], [2.563, 3.35080110279, 2207.62954059540], [2.553, 0.36892288645, 1048.33622992530], [2.620, 3.82769874340, 520.12973753900], [3.356, 1.08315053878, 46.47042291600], [3.035, 5.52230028113, 618.55664531160], [3.397, 3.83084746522, 210.11770170030], [2.497, 0.47917884538, 945.24345570670], [2.341, 5.87941292649, 2751.54759969160], [2.656, 0.49713061045, 1057.89745748090], [2.581, 0.03759881914, 1.64453140270], [2.900, 2.50019054587, 525.49817940060], [3.153, 2.30900986177, 457.61767951300], [2.201, 3.94367109739, 31.49256938900], [2.381, 6.19252134885, 327.43756992050], [2.458, 0.65614291954, 9153.90361602180], [2.111, 5.61905648764, 16.46232623530], [2.130, 3.75880734109, 724.83081326790], [2.406, 2.29315649755, 195.13984817330], [2.166, 5.43262641046, 534.35683154060], [2.057, 1.49875151278, 551.03160609700], [2.676, 5.06374981112, 456.39383923560], [2.078, 5.28920097886, 76.26607127560], [2.261, 5.38117230692, 1781.03134971940], [2.356, 0.67392574097, 227.52618943960], [2.240, 3.18006978517, 3377.21779200400], [2.183, 3.08384250950, 524.27433912320], [2.119, 2.70107659927, 387.24131496080], [2.056, 4.82779196994, 2957.73314812880], [2.116, 6.20263841494, 209.36694217490], [2.712, 3.18157754631, 1474.67378837040], [2.127, 1.24424012514, 539.98590583310], [2.424, 3.57595925853, 953.10776223290], [1.947, 1.94468082546, 529.53090640020], [1.896, 4.01406242800, 2310.72231481400], [1.935, 4.10051493950, 3053.71237534660], [2.056, 6.27074148550, 245.54242435240], [2.108, 3.22886474225, 252.65597135320], [2.596, 2.77467278614, 177.87437278590], [1.919, 3.14834694111, 381.61224066830], [2.217, 1.92368906925, 535.91074021810], [1.947, 5.03751780002, 529.85102378900], [2.025, 4.82814272957, 17.26547538740], [1.945, 2.10611582568, 3480.31056622260], [1.899, 0.05104263891, 560.71045373160], [2.221, 0.58365090630, 3178.14579056760], [2.271, 1.67360565619, 731.94436026870], [1.706, 5.40277333462, 20.44686912510], [2.295, 4.20863103004, 1038.04128918680], [2.218, 3.65982280555, 282.45161971280], [2.181, 4.87369503022, 535.32003938710], [1.745, 1.34021867874, 25.12978191360], [1.601, 3.92730015840, 17.52610781830], [1.651, 0.63598292839, 17.40848773930], [1.826, 0.31592311031, 124.43341522100], [2.041, 0.15617294873, 598.84348936940], [1.494, 3.81418025130, 319.57326339430], [1.551, 5.25201528605, 437.64389113990], [1.852, 2.36130812462, 37.87240320690], [1.466, 1.72926380881, 59.80374504030], [1.417, 5.82273267086, 81.75213321620], [1.430, 1.17528806260, 440.82528487760], [1.906, 4.06896022692, 1819.63746610920], [1.397, 0.26383366743, 50.40257617910], [1.756, 2.32977483716, 938.12990870590], [1.487, 2.24866746540, 10.03430830760], [1.368, 3.56691602771, 1514.29129671650], [1.400, 4.84502200703, 295.05122865420], [1.344, 2.20177702122, 529.90341341570], [1.464, 1.42648716568, 1158.54255114470], [1.341, 1.15693423225, 2435.15573003500], [1.786, 5.44716330146, 2854.64037391020], [1.677, 6.22875777048, 833.55266177900], [1.471, 4.80574535807, 696.51963761660], [1.436, 1.45810957330, 537.76771994190], [1.657, 0.02890651793, 138.51749687070], [1.300, 3.14074420421, 547.85021235930], [1.343, 6.14827138025, 988.53248488500], [1.344, 4.78042160426, 529.47851677350], [1.234, 2.83294330979, 3583.40334044120], [1.651, 2.12056447005, 1061.82961074400], [1.479, 0.24646493075, 1593.00504854690], [1.413, 3.07444632745, 6283.07584999140], [1.246, 5.94882321661, 1056.93424963440], [1.225, 1.95642397635, 1969.20066324380], [1.388, 2.87749576073, 1023.95720753710], [1.263, 3.46181945031, 40.84134862350], [1.325, 4.15429781246, 916.93228005540], [1.477, 5.26691818477, 810.65811209910], [1.165, 4.65528125418, 944.98282327580], [1.137, 2.48561382158, 2.00573757010], [1.118, 3.80747957482, 7.00167241620], [1.138, 5.11611532241, 885.43971066640], [1.131, 1.54599459004, 775.23338944700], [1.477, 4.69742954455, 630.33605875840], [1.252, 1.34316620527, 739.05790726950], [1.273, 5.19070939905, 2097.42321937600], [1.446, 5.54999644374, 43.28902917830], [1.344, 4.75897665313, 1166.40685767090], [1.101, 4.56997613488, 3274.12501778540], [1.376, 3.60998729004, 415.29185818120], [1.437, 6.22410093972, 155.78297225810], [1.167, 4.09497264272, 203.00415469950], [1.237, 4.41132627005, 292.01284726840], [1.077, 2.57045229823, 25.27279426550], [1.341, 0.49262296655, 635.23141986800], [1.209, 3.36289125536, 521.61421024730], [1.030, 1.81822316284, 465.95506679120], [1.002, 3.21720955284, 2524.02141025200], [1.338, 1.26054917773, 902.70518605380], [1.037, 3.87858871885, 3370.10424500320], [1.224, 0.09219976028, 824.74219374880], [1.255, 3.04675952762, 447.79581952650], [0.991, 4.16587903812, 632.83192342300], [0.975, 3.80216680539, 2627.11418447060], [1.061, 5.60184374277, 732.69511979410], [1.049, 2.94931080683, 3693.60966166060], [0.984, 0.98260254313, 632.73555520340], [1.050, 2.20935815967, 7.22542158540], [0.996, 5.41921062583, 1059.43011429900], [0.961, 0.87315283361, 544.66881862160], [1.175, 3.09093466406, 1894.41906467650], [1.049, 5.81616384906, 26.82670294300], [1.161, 0.01274801567, 850.01498801430], [1.109, 3.63294273717, 306.83064210100], [1.077, 0.95716576092, 608.40471692500], [1.288, 4.23019288942, 1215.16490244730], [1.060, 3.85856787901, 631.82053146670], [1.251, 6.15889818604, 462.02291352810], [1.165, 3.50653563773, 8.59801970910], [0.933, 4.62559759882, 1049.08698945070], [1.035, 1.30805283339, 633.74694715970], [1.238, 2.21195391602, 25558.21217647960], [1.240, 2.27960685992, 6.90109867970], [0.942, 4.14526324371, 945.99421523210], [0.927, 6.10893117637, 514.71311156760], [0.914, 6.17656044376, 952.35700270750], [0.893, 4.27448748055, 0.63313944640], [1.045, 1.64682770236, 565.11568774670], [0.903, 1.94250156640, 3796.70243587920], [1.162, 5.51229668479, 2.96894541660], [0.901, 3.03568112112, 460.53844081980], [0.903, 2.24012822393, 523.54062594030], [1.060, 5.28027224466, 3171.03224356680], [1.064, 0.99330150801, 320.32402291970], [0.970, 4.56607888439, 429.04587143080], [1.071, 4.33203090957, 610.69233878540], [0.865, 0.21831429230, 1098.73880610440], [0.865, 2.82123742108, 1060.34513803570], [0.882, 4.80076824948, 384.05992122310], [0.959, 5.45468005818, 451.94042111070], [1.042, 5.79270325150, 303.86169668440], [0.784, 1.85150700827, 313.21047591890], [1.083, 1.40526460812, 72.07328558160], [0.782, 3.03559242565, 5.84152261360], [0.854, 1.22236205478, 611.44309831080], [0.996, 2.22139794743, 1059.33374607940], [0.719, 4.92550252164, 421.93232443000], [0.953, 3.98347050083, 836.52160719560], [0.822, 4.49679856387, 10213.28554621100], [0.707, 2.16473400319, 2228.97018159780], [0.715, 4.62515255534, 385.54439393140], [0.737, 4.63776694324, 1134.16352875650], [0.730, 1.87179326186, 153.49535039770], [0.709, 2.93132115910, 417.03696332040], [0.926, 1.77006317007, 2332.06295581640], [0.864, 3.03246275970, 1041.22268292450], [0.708, 6.01601101389, 395.10562148700], [0.935, 6.01864676296, 173.94221952280], [0.695, 1.39408383356, 432.01481684740], [0.687, 3.06548397586, 529.95159752550], [0.677, 3.58357527210, 244.31858407500], [0.850, 5.46114025921, 41.05379694460], [0.817, 4.65315342412, 535.84130424890], [0.652, 0.44173759183, 1201.83158032300], [0.711, 0.96283289310, 373.01422095920], [0.665, 1.03244633471, 623.22251175760], [0.643, 5.05335060049, 522.62560220360], [0.639, 4.22718483639, 25.86349509650], [0.718, 5.07576900710, 1058.41872234270], [0.664, 2.43728454444, 1585.14074202070], [0.833, 1.49468440213, 563.63121503840], [0.760, 4.34849823663, 100.64509366380], [0.633, 4.31796718640, 3590.51688744200], [0.629, 6.23431126402, 679.25416222920], [0.617, 2.68075016456, 3899.79521009780], [0.646, 2.88581188015, 13.49338081870], [0.768, 3.18498076120, 1151.42900414390], [0.731, 5.86653168561, 501.37978944330], [0.652, 0.82865771780, 2015.67108615980], [0.796, 5.36663489938, 420.96911658350], [0.647, 4.74965662438, 567.82400073240], [0.845, 1.69406147722, 1744.85586754190], [0.802, 5.79824707751, 981.63138620530], [0.764, 5.05232933368, 827.92358748650], [0.604, 5.11265182908, 1159.29331067010], [0.682, 3.68248136835, 2281.23049651060], [0.740, 0.74512356954, 1261.63532536330], [0.666, 2.06624389616, 27.08733537390], [0.652, 4.92932795958, 2413.81508903260], [0.559, 0.17558868481, 63.73589830340], [0.577, 3.82752312276, 1550.93985964600], [0.727, 1.05835550856, 490.07345674850], [0.574, 3.61492119092, 3686.49611465980], [0.732, 5.93179840659, 42.53826965290], [0.606, 2.71411884300, 1173.52040467170], [0.633, 4.21720828607, 166.82867252200], [0.687, 3.91671464962, 529.43033266370], [0.570, 2.73551750122, 4010.00153131720], [0.552, 2.36967119362, 1603.29998928540], [0.600, 1.82659364395, 522.52923398400], [0.558, 5.09099246601, 1354.43315884340], [0.519, 6.11952999304, 366.79444583570], [0.719, 0.85722557905, 362.86229257260], [0.518, 2.03954064144, 418.52143602870], [0.515, 3.51750445111, 528.41894070740], [0.515, 3.47930063838, 103.14095832840], [0.550, 5.77676837730, 420.44785172170], [0.702, 3.67952126446, 1279.79457262800], [0.550, 0.61451088395, 104.05598206510], [0.495, 2.41738205536, 179.35884549420], [0.513, 0.29823688044, 103.04459010880], [0.537, 5.47946238724, 771.30123618390], [0.507, 3.08777345288, 1357.61455258110], [0.495, 4.95362659160, 536.85269620520], [0.681, 4.56294416261, 112.65400177420], [0.500, 3.15631977489, 1070.42763045310], [0.484, 0.79038835602, 28.45418800320], [0.529, 5.46978501034, 419.43645976540], [0.597, 4.98058295172, 1251.34038462480], [0.492, 3.96066546484, 1269.49963188950], [0.482, 3.60167662490, 2943.50605412720], [0.630, 6.16496640092, 105.54045477340], [0.480, 0.86786400621, 35.21227433100], [0.516, 5.97528782923, 3067.93946934820], [0.586, 5.48467997697, 56.62235130260], [0.502, 1.43671788959, 469.88722005430], [0.473, 2.28007170041, 2042.49778910280], [0.565, 1.90952569252, 107.28555991260], [0.452, 3.13938145287, 934.94851496820], [0.605, 1.65413715574, 761.74000862830], [0.443, 5.46282223686, 135.33610313300], [0.580, 2.06327501551, 493.04240216510], [0.540, 1.73777995970, 536.75632798560], [0.432, 0.27167052107, 93.53154666300], [0.515, 3.46469417437, 530.96298948180], [0.440, 5.28884782489, 497.44763618020], [0.487, 5.78767525063, 12036.46073488820], [0.452, 2.57855172248, 1254.52177836250], [0.427, 3.21032629463, 2840.41327990860], [0.414, 1.54298025443, 115.62294719080], [0.424, 0.12699448931, 1268.74887236410], [0.411, 3.12424023238, 536.28324723360], [0.452, 1.00194596383, 113.38771495710], [0.419, 0.81834479225, 1165.65609814550], [0.490, 4.72785081986, 277.03499374140], [0.434, 0.36146539146, 1304.92435454160], [0.401, 5.70326543719, 1127.04998175570], [0.461, 3.26462894820, 102.12956637210], [0.533, 2.54951615753, 141.22580985640], [0.413, 4.38801694479, 6151.53388830500], [0.415, 1.68861617902, 391.17346822390], [0.385, 1.69092319074, 4113.09430553580], [0.450, 5.49339192735, 602.98809095360], [0.499, 3.80738617353, 81.00137369080], [0.454, 0.10952919733, 600.54041039880], [0.377, 6.25375060718, 913.75088631770], [0.453, 3.86104865567, 758.77106321170], [0.401, 4.44475618337, 990.22940591440], [0.407, 5.13442416563, 3487.42411322340], [0.435, 3.76103358490, 523.09868295560], [0.425, 3.22287851959, 2655.56837247380], [0.365, 5.16456645463, 4694.00295470760], [0.454, 1.63325197950, 976.00231191280], [0.406, 2.72102389267, 1438.02522544090], [0.349, 3.59598366422, 1058.86066532740], [0.354, 0.62136331420, 498.67147645760], [0.383, 5.09229089574, 539.25219265020], [0.380, 3.92653231573, 561.18353448360], [0.339, 4.12175871949, 3906.90875709860], [0.458, 3.42556794767, 121.25202148330], [0.427, 3.61285264910, 860.30992875280], [0.424, 4.72757252331, 1366.21257229020], [0.328, 4.55286002816, 1696.09782276550], [0.324, 4.23685005210, 642.34496686880], [0.395, 3.26282558955, 484.44438245600], [0.330, 6.05223507989, 215.74677599280], [0.318, 2.02072800070, 2964.84669512960], [0.417, 0.20173093597, 842.90144101350], [0.408, 0.45800247268, 1578.02719501990], [0.342, 6.15347077985, 1371.84164658270], [0.310, 1.97259286255, 754.03576079650], [0.340, 2.77813018312, 3.52311834900], [0.333, 2.91352254678, 576.16138801060], [0.324, 0.32544817254, 586.31331639720], [0.302, 2.08708848849, 526.98265210890], [0.363, 4.70567113230, 2730.20695868920], [0.300, 0.94464473068, 1432.39615114840], [0.352, 5.75013621801, 806.72595883600], [0.296, 3.97807312133, 2043.98226181110], [0.295, 2.35257797599, 4216.18707975440], [0.309, 2.49768755925, 4326.39340097380], [0.306, 3.35876843257, 2424.11002977110], [0.300, 4.94288858368, 1379.70595310890], [0.336, 4.49193455535, 1585.89150154610], [0.402, 2.04684001796, 842.15068148810], [0.312, 4.59043534747, 188.92007304980], [0.346, 5.19792097706, 523.47118997110], [0.380, 1.67961600066, 36.64856292950], [0.338, 1.32014513725, 148.07872442630], [0.391, 4.82224015188, 1012.91150727320], [0.285, 3.43655052437, 1053.96530421780], [0.332, 2.02575636311, 1091.62525910360], [0.282, 5.78865321890, 1064.04779663520], [0.282, 0.39153852422, 207.67002114550], [0.280, 3.80196391678, 298.23262239190], [0.387, 6.26819309990, 1141.13406340540], [0.349, 4.09121908199, 1059.90319505100], [0.320, 0.39871942000, 2122.69601364150], [0.327, 4.76503823073, 134.58534360760], [0.283, 3.90409016441, 127.47179660680], [0.301, 4.30291951219, 299.12639426920], [0.322, 2.48251052680, 1065.60170531270], [0.297, 2.40814103509, 1591.52057583860], [0.286, 5.85849626574, 172.24529849340], [0.285, 4.55845472479, 1446.62324515000], [0.270, 4.08342186112, 1578.77795454530], [0.362, 1.06148806683, 181.80652604900], [0.335, 4.51094500655, 2349.32843120380], [0.347, 0.62281394535, 1542.60247236780], [0.275, 3.38473403113, 4002.88798431640], [0.255, 1.52357936497, 1688.23351623930], [0.276, 4.32192160071, 1912.57831194120], [0.253, 2.40482338279, 97.67614824720], [0.248, 4.45058246237, 1688.98427576470], [0.300, 3.07435583442, 1902.28337120270], [0.257, 4.79180478086, 1670.82502850000], [0.319, 1.34244222683, 1288.46202830630], [0.245, 4.01852686769, 1567.73225428140], [0.278, 0.25406312148, 874.39401040250], [0.324, 5.57824969423, 1670.07426897460], [0.300, 4.67161812947, 1329.30337692980], [0.241, 0.01789818312, 1586.62521472900], [0.295, 5.86996114913, 2804.23779773110], [0.317, 3.17967272487, 1020.02505427400], [0.238, 4.97765946754, 351.81659230870], [0.302, 1.20236375616, 232.04904353370], [0.301, 5.53432687957, 2274.54683263650], [0.286, 2.41008592059, 2545.36205125440], [0.294, 2.01783542485, 313.94418910180], [0.292, 2.12690999284, 1592.25428902150], [0.250, 2.31712163679, 632.26247445140], [0.238, 5.06557054569, 3803.81598288000], [0.226, 0.05916712753, 1518.22344997960], [0.235, 0.16574304942, 137.03302416240], [0.298, 2.99720233431, 1467.82087380050], [0.286, 5.08357076653, 774.00954916960], [0.246, 2.81685822336, 633.30500417500], [0.269, 4.93023426152, 151.04766984290], [0.228, 6.13118739321, 3281.23856478620], [0.228, 1.22066024988, 700.45179087970], [0.239, 0.71695698501, 1276.61317889030], [0.289, 6.08263862565, 3384.33133900480], [0.218, 2.90308501961, 85.82729883120], [0.283, 6.28058228271, 71.81265315070], [0.271, 6.01605074549, 170.76082578510], [0.221, 0.99914179141, 1053.75285589670], [0.218, 1.50681393471, 1087.69310584050], [0.223, 3.39126063354, 3259.89792378380], [0.229, 1.19373202707, 1060.86640289750], [0.264, 3.93467945263, 1363.24362687360], [0.228, 5.04188376116, 1064.79855616060], [0.295, 2.15253086390, 6386.16862421000], [0.214, 3.85961180377, 4223.30062675520], [0.218, 0.79681703388, 1909.39691820350], [0.212, 4.11706418218, 269.92144674060], [0.264, 5.81676406517, 77.96299230500], [0.256, 5.65978708108, 799.61241183520], [0.242, 6.25078283449, 1621.31622419820], [0.235, 2.20668997852, 1570.91364801910], [0.212, 2.88214546012, 1674.00642223770], [0.206, 1.59586787037, 4429.48617519240], [0.208, 2.31366614282, 878.32616366560], [0.213, 0.30373338388, 8624.21265092720], [0.223, 4.88419887133, 1035.00290780100], [0.279, 3.65173543621, 84.93352695390], [0.210, 4.08825553401, 203.73786788240], [0.214, 4.63498396475, 812.14258480740], [0.258, 1.73501688450, 1887.30551767570], [0.210, 4.51798082710, 1262.38608488870], [0.252, 5.69246905091, 104.57724692690], [0.205, 4.62946016431, 1056.46116888240], [0.263, 3.04951219565, 1493.09366806600], [0.222, 5.54424082649, 5216.58037280140], [0.244, 0.91026645686, 3707.83675566220], [0.204, 0.90117975859, 1408.01712876020], [0.225, 1.23997048012, 3340.61242669980], [0.258, 2.35906183505, 2861.75392091100], [0.267, 3.27705002283, 5120.60114558360], [0.214, 0.66988779149, 9146.79006902100], [0.235, 4.93761209111, 1443.44185141230], [0.194, 1.60798828275, 102.57150935680], [0.215, 0.97603524747, 479.28838891550], [0.205, 5.23642605904, 4649.89881763120], [0.257, 4.70227260707, 9050.81084180320], [0.228, 6.23410921116, 64.95973858080], [0.180, 4.21309134581, 143.93412284210], [0.180, 4.82870451226, 1063.57471588320], [0.180, 5.06126965624, 52.69019803950], [0.226, 0.55334952097, 554.06998748280], [0.209, 5.67975843693, 48.75804477640], [0.186, 3.66368928017, 108.72184851110], [0.190, 2.00852986549, 1058.63117066380], [0.183, 3.17358464220, 140.96517742550], [0.198, 5.49816579454, 4333.50694797460], [0.240, 6.06602357868, 1821.12193881750], [0.172, 3.04802064781, 54.33472944220], [0.170, 4.66520291204, 1372.59240610810], [0.173, 4.72884056307, 77204.32749453338], [0.174, 0.85370421252, 1587.58842257550], [0.215, 0.68219980704, 1054.71606374320], [0.170, 1.52204803308, 5591.96087960020], [0.200, 1.60275092073, 6681.22485339960], [0.193, 2.13003479280, 103.61403908040], [0.231, 4.69962389031, 1966.23171782720], [0.179, 5.57395905447, 1457.52593306200], [0.205, 3.65507571128, 906.84978763800], [0.181, 4.52272934666, 24498.83024629040], [0.223, 0.11650319998, 67.88049988760], [0.172, 5.68083885227, 1884.12412393800], [0.219, 0.60964963735, 2729.45619916380], [0.164, 1.06675279755, 594.65070367540], [0.176, 2.36848603898, 977.48678462110], [0.170, 2.43036684800, 4532.57894941100], [0.191, 3.64255924842, 1440.99417085750], [0.207, 0.49276008455, 71.60020482960], [0.157, 4.26888100582, 5069.38346150640], [0.157, 5.14847227422, 451.72797278960], [0.158, 5.00063628575, 650.94298657790], [0.159, 5.37530499642, 20426.57109242200], [0.218, 0.27875408082, 175.16605980020], [0.155, 0.83696849428, 1474.93442080130], [0.154, 2.62839957291, 683.18631549230], [0.171, 1.79511736017, 1123.11782849260], [0.188, 5.24747110812, 25565.32572348040], [0.168, 4.14907553818, 946.72792841500], [0.203, 2.83699715530, 1489.91227432830], [0.173, 4.34546063838, 3046.59882834580], [0.190, 5.67865607835, 1060.13268971460], [0.201, 2.38524182920, 419.53282798500], [0.152, 5.89088685790, 208.63322899200], [0.206, 4.46933127349, 2654.67460059650], [0.156, 2.37819796438, 2758.66114669240], [0.203, 0.70565514297, 498.19839570560], [0.205, 3.05468636546, 1062.30269149600], [0.174, 3.50824761708, 2004.36475346500], [0.148, 4.73961194393, 1799.19059698410], [0.188, 3.62315953725, 3156.80514956520], [0.183, 2.35011338194, 25551.09862947879], [0.162, 1.58053710589, 628.59095361920], [0.162, 3.99983876824, 1482.79872732750], [0.181, 2.85489861839, 1055.18914449520], [0.151, 3.43198157222, 629.86297800640], [0.157, 3.15195826490, 1025.44168024540], [0.194, 5.13049187783, 1818.15299340090], [0.193, 1.92287052164, 1140.38330388000], [0.137, 4.22335221970, 1049.82070263360], [0.167, 2.85163087563, 5746.27133789600], [0.167, 5.73970282991, 5760.49843189760], [0.138, 2.23519776527, 1176.70179840940], [0.151, 4.89507270899, 532.39927808030], [0.147, 2.65931838448, 987.30864460760], [0.135, 0.12836417770, 991.71387862270], [0.166, 3.12682515439, 580.09354127370], [0.118, 5.98810576300, 531.38788612400], [0.135, 5.26601313643, 1065.01100448170], [0.138, 3.18511244397, 707.56533788050], [0.122, 1.34377059565, 446.31134681820], [0.120, 2.29717714347, 1059.22187149480], [0.121, 0.58145552537, 5621.84292321040], [0.103, 4.75645235023, 1226.21060271120], [0.104, 6.08481630139, 528.25467649610], [0.119, 1.06475523307, 527.99404406520], [0.104, 0.89730746841, 531.12725369310], [0.120, 5.39001411803, 1059.54198888360], [0.104, 0.44849170648, 1128.53445446400], [0.117, 5.42449214711, 986.08480433020], [0.101, 5.09893554462, 530.58473697190], [0.102, 0.26948040239, 450.97721326420], [0.107, 1.58724086516, 1069.67687092770], [0.086, 2.28711702506, 2498.89162833840], [0.101, 1.88318822518, 528.79719321730], [0.086, 1.37568728263, 970.51624997220], [0.083, 0.06930748288, 530.91480537200], [0.085, 3.22094000094, 1553.64817263170], [0.083, 0.62963097974, 528.46712481720], [0.083, 4.16314675511, 849.26422848890], [0.079, 3.46688102340, 1077.54117745390], [0.097, 0.87886975916, 9690.70812811720], [0.097, 4.27398311206, 9676.48103411560], [0.101, 0.29639798579, 857.12853501510], [0.083, 2.55427333923, 1059.59437851030], [0.078, 0.06461496210, 521.82665856840], [0.078, 0.76677000862, 525.54636351040], [0.096, 0.33631035749, 1090.40141882620], [0.098, 1.42815294497, 757.21715453420], [0.077, 0.85066773729, 537.55527162080], [0.084, 5.04765104413, 1160.02702385300], [0.076, 3.62264327413, 782.34693644780], [0.085, 1.86831145784, 25028.52121138500], [0.079, 2.90602202890, 2114.83170711530], ], # L1 [ [52993480757.497, 0.00000000000, 0.00000000000], [489741.194, 4.22066689928, 529.69096509460], [228918.538, 6.02647464016, 7.11354700080], [27655.380, 4.57265956824, 1059.38193018920], [20720.943, 5.45938936295, 522.57741809380], [12105.732, 0.16985765041, 536.80451209540], [6068.051, 4.42419502005, 103.09277421860], [5433.924, 3.98478382565, 419.48464387520], [4237.795, 5.89009351271, 14.22709400160], [2211.854, 5.26771446618, 206.18554843720], [1295.769, 5.55132765087, 3.18139373770], [1745.919, 4.92669378486, 1589.07289528380], [1163.411, 0.51450895328, 3.93215326310], [1007.216, 0.46478398551, 735.87651353180], [1173.129, 5.85647304350, 1052.26838318840], [847.678, 5.75805850450, 110.20632121940], [827.329, 4.80312015734, 213.29909543800], [1003.574, 3.15040301822, 426.59819087600], [1098.735, 5.30704981594, 515.46387109300], [816.397, 0.58643054886, 1066.49547719000], [725.447, 5.51827471473, 639.89728631400], [567.845, 5.98867049451, 625.67019231240], [474.181, 4.13245269168, 412.37109687440], [412.930, 5.73652891261, 95.97922721780], [335.817, 3.73248749046, 1162.47470440780], [345.249, 4.24159565410, 632.78373931320], [234.066, 6.24302226646, 309.27832265580], [194.784, 2.21879010911, 323.50541665740], [234.340, 4.03469970332, 949.17560896980], [183.938, 6.27963588822, 543.91805909620], [198.525, 1.50458442825, 838.96928775040], [186.899, 6.08620565908, 742.99006053260], [171.380, 5.41655983845, 199.07200143640], [130.771, 0.62643377351, 728.76296653100], [107.575, 4.49282760117, 956.28915597060], [115.393, 0.68019050174, 846.08283475120], [115.047, 5.28641699144, 2118.76386037840], [66.824, 5.73365126533, 21.34064100240], [69.618, 5.97263450278, 532.87235883230], [64.850, 6.08803490288, 1581.95934828300], [79.686, 5.82412400273, 1045.15483618760], [57.939, 0.99453087342, 1596.18644228460], [65.635, 0.12924191430, 526.50957135690], [58.509, 0.58626971028, 1155.36115740700], [56.600, 1.41198438841, 533.62311835770], [71.643, 5.34162650321, 942.06206196900], [57.368, 5.96851304799, 1169.58825140860], [54.935, 5.42806383723, 10.29494073850], [52.016, 0.22981299129, 1368.66025284500], [52.309, 5.72661448388, 117.31986822020], [50.418, 6.08075147811, 525.75881183150], [47.418, 3.62611843241, 1478.86657406440], [39.888, 4.16158013600, 1692.16566950240], [46.678, 0.51144073175, 1265.56747862640], [32.827, 5.03596689455, 220.41264243880], [33.558, 0.09913904872, 302.16477565500], [29.379, 3.35927241533, 4.66586644600], [29.307, 0.75907909735, 88.86568021700], [32.449, 5.37492530697, 508.35032409220], [29.483, 5.42208897099, 1272.68102562720], [21.802, 6.15054054070, 1685.05212250160], [25.195, 1.60723063387, 831.85574074960], [21.133, 5.86346824200, 1258.45393162560], [19.747, 2.17205957814, 316.39186965660], [17.871, 0.82841413516, 433.71173787680], [17.703, 5.95527049039, 5.41662597140], [17.230, 2.76395560958, 853.19638175200], [17.453, 0.70749901224, 1471.75302706360], [17.508, 0.49799925173, 1375.77379984580], [14.368, 0.91459831140, 18.15924726470], [14.107, 0.63031082833, 2.92076130680], [11.559, 4.30379009964, 405.25754987360], [11.728, 1.76426582357, 380.12776796000], [11.054, 5.56735602213, 1574.84580128220], [10.425, 0.31355034390, 1361.54670584420], [9.804, 5.90363777277, 519.39602435610], [9.805, 0.38648727979, 1073.60902419080], [9.285, 3.21842287530, 1795.25844372100], [8.864, 0.53776257958, 1788.14489672020], [8.370, 5.88484552222, 2001.44399215820], [8.148, 5.10162311410, 1485.98012106520], [7.658, 5.64890060131, 2648.45482547300], [6.690, 2.41093459420, 4.19278569400], [5.840, 4.22347896053, 2008.55753915900], [7.256, 6.19384525651, 11.04570026390], [6.266, 1.36137786945, 1148.24761040620], [5.141, 5.23083932012, 628.85158605010], [5.140, 2.92955981951, 518.64526483070], [4.765, 0.16838181862, 629.60234557550], [4.603, 0.78529559911, 721.64941953020], [4.575, 6.24794935732, 1677.93857550080], [4.537, 4.95096707833, 635.96513305090], [4.518, 2.06523915453, 453.42489381900], [4.414, 0.15381186059, 1699.27921650320], [5.593, 5.57489981207, 191.95845443560], [5.403, 1.46004886198, 330.61896365820], [4.285, 0.23949868127, 2104.53676637680], [4.223, 1.44087555881, 2125.87740737920], [4.101, 6.19274358942, 636.71589257630], [4.432, 4.35811524051, 423.41679713830], [4.132, 0.50170694173, 1056.20053645150], [4.398, 4.14280286969, 511.53171782990], [5.406, 4.40429493698, 2221.85663459700], [4.467, 0.08534650684, 1062.56332392690], [3.569, 5.66540477010, 2317.83586181480], [4.007, 2.54845549248, 74.78159856730], [3.515, 0.25495124831, 1055.44977692610], [3.687, 2.93378008847, 32.24332891440], [2.883, 5.72793010505, 99.91138048090], [2.969, 5.50054720569, 107.02492748170], [2.720, 1.25222590925, 540.73666535850], [2.808, 3.30714813896, 0.75075952540], [2.768, 1.61339487804, 1063.31408345230], [2.666, 4.28662288102, 106.27416795630], [2.704, 3.03615556153, 422.66603761290], [3.290, 5.89081682150, 1802.37199072180], [2.578, 3.60390367979, 750.10360753340], [2.661, 0.35249312659, 1898.35121793960], [2.486, 5.28950877719, 1891.23767093880], [2.936, 1.09052029450, 1464.63948006280], [3.190, 4.60740643547, 416.30325013750], [2.390, 6.01779736611, 551.03160609700], [2.214, 5.24450923180, 621.73803904930], [2.319, 5.82920300130, 305.34616939270], [2.089, 5.99310370434, 1994.33044515740], [2.042, 0.75008788531, 142.44965013380], [2.121, 0.01537599023, 2420.92863603340], [2.114, 6.25308371567, 647.01083331480], [2.020, 4.17560390841, 569.04784100980], [2.109, 5.18682321403, 227.52618943960], [2.283, 5.80043809222, 539.98590583310], [1.977, 3.99197009651, 24.37902238820], [1.960, 1.35288793079, 963.40270297140], [1.903, 2.78349628184, 2428.04218303420], [1.915, 4.22134509685, 2324.94940881560], [1.971, 5.88715684267, 217.23124870110], [1.917, 3.03728154374, 1382.88734684660], [2.026, 3.08606488714, 408.43894361130], [1.834, 5.61474110217, 430.53034413910], [1.838, 1.25467410218, 81.75213321620], [2.460, 4.63268678998, 1905.46476494040], [1.820, 5.97497926120, 114.13847448250], [2.043, 4.34047514845, 70.84944530420], [1.959, 4.03116026306, 92.04707395470], [1.768, 0.33097462499, 35.42472265210], [2.334, 5.87042638470, 1038.04128918680], [1.835, 4.81326127892, 124.43341522100], [2.269, 1.02549350754, 618.55664531160], [1.919, 5.01297395549, 99.16062095550], [1.923, 0.28688549585, 31.01948863700], [1.878, 5.69299116574, 210.11770170030], [1.679, 0.25635730278, 295.05122865420], [1.656, 5.46039280732, 2634.22773147140], [1.675, 6.15609073315, 643.82943957710], [1.953, 5.09846435548, 17.40848773930], [1.539, 2.75316078346, 415.55249061210], [1.467, 0.54812675158, 458.84151979040], [1.482, 3.76736278426, 534.35683154060], [1.446, 3.15802770791, 25.12978191360], [1.667, 0.26406950755, 835.03713448730], [1.472, 0.83054329617, 28.31117565130], [1.655, 0.88908548504, 1781.03134971940], [1.294, 5.76241191046, 440.82528487760], [1.348, 2.49823510924, 984.60033162190], [1.352, 5.10869562455, 149.56319713460], [1.344, 0.01942249067, 2214.74308759620], [1.188, 2.24279457878, 31.49256938900], [1.166, 0.80686346228, 739.80866679490], [1.322, 4.25691184168, 2538.24850425360], [1.094, 6.02985819406, 2737.32050569000], [1.112, 4.38204360670, 561.93429400900], [1.346, 3.20575848870, 525.02509864860], [1.056, 5.76507115032, 2310.72231481400], [1.159, 0.46189564970, 67.66805156650], [1.027, 0.20709586018, 7.86430652620], [1.143, 5.56626418636, 46.47042291600], [1.012, 0.54293005597, 532.13864564940], [0.978, 5.13939194101, 2207.62954059540], [0.993, 2.03698185233, 319.57326339430], [1.035, 2.90231353535, 611.44309831080], [1.021, 4.75651217048, 527.24328453980], [1.308, 1.78809336431, 824.74219374880], [0.964, 2.82269601958, 2111.65031337760], [0.896, 2.54505998806, 2744.43405269080], [0.890, 5.41036782817, 28.45418800320], [0.906, 0.76565238554, 1439.50969814920], [0.985, 0.88687623770, 5760.49843189760], [0.983, 1.42102343372, 5746.27133789600], [0.892, 5.87250060663, 203.00415469950], [0.942, 2.31049430734, 9690.70812811720], [0.941, 2.84331157527, 9676.48103411560], [0.867, 0.81020362547, 524.27433912320], [0.829, 2.35178495412, 312.45971639350], [0.912, 2.80494184378, 6.21977512350], [0.809, 1.05148218513, 529.64278098480], [0.779, 4.80009242059, 945.24345570670], [0.878, 5.76532521399, 1.64453140270], [0.953, 4.30945738629, 209.36694217490], [0.772, 5.25607113566, 2950.61960112800], [0.745, 0.03810558502, 535.10759106600], [0.744, 0.58381523987, 25.27279426550], [0.734, 0.20800485100, 1049.08698945070], [0.747, 2.71772840871, 38.13303563780], [0.728, 5.97210358938, 945.99421523210], [0.769, 4.51394016967, 952.35700270750], [0.710, 0.38016353553, 69.15252427480], [0.760, 3.07033779824, 39.35687591520], [0.802, 1.14191463412, 532.61172640140], [0.704, 1.25447308120, 547.85021235930], [0.721, 0.73855379162, 2228.97018159780], [0.794, 4.25051539085, 2641.34127847220], [0.795, 3.20588363820, 604.47256366190], [0.818, 1.05229815343, 909.81873305460], [0.724, 5.68281830264, 953.10776223290], [0.836, 0.60410469174, 2097.42321937600], [0.669, 5.75757140051, 2015.67108615980], [0.682, 1.19994890339, 387.24131496080], [0.640, 3.91546675664, 528.72775724810], [0.809, 4.24929331276, 529.73914920440], [0.819, 4.91540072376, 2751.54759969160], [0.692, 2.51162384766, 916.93228005540], [0.784, 4.23651511312, 195.13984817330], [0.762, 1.12201139619, 732.69511979410], [0.617, 5.80920925081, 739.05790726950], [0.727, 4.24401822698, 760.25553592000], [0.591, 3.26075006572, 202.25339517410], [0.552, 5.83533550039, 526.77020378780], [0.640, 1.38530872949, 530.65417294110], [0.577, 6.09100925678, 2531.13495725280], [0.620, 3.01917904435, 902.70518605380], [0.722, 5.18171159557, 1.48447270830], [0.540, 3.78809230820, 2957.73314812880], [0.523, 3.63882376000, 437.64389113990], [0.527, 5.80796427555, 3053.71237534660], [0.488, 4.99103190309, 483.22054217860], [0.557, 4.11381202161, 2854.64037391020], [0.492, 0.76371083106, 1603.29998928540], [0.487, 5.55383951779, 2627.11418447060], [0.487, 5.86510858429, 724.83081326790], [0.453, 0.61375011101, 1159.29331067010], [0.450, 2.28121042355, 3060.82592234740], [0.515, 4.78126059280, 447.79581952650], [0.449, 4.70231576312, 934.94851496820], [0.450, 1.91049508739, 597.35901666110], [0.438, 6.01178917646, 3178.14579056760], [0.494, 0.53844942275, 1354.43315884340], [0.501, 5.51752195462, 2435.15573003500], [0.432, 3.64903264921, 313.21047591890], [0.435, 3.02449828967, 533.88375078860], [0.426, 5.07945534339, 2524.02141025200], [0.491, 3.59286364200, 230.56457082540], [0.547, 0.34432090949, 1251.34038462480], [0.503, 1.57454509207, 454.90936652730], [0.486, 4.39351469958, 462.02291352810], [0.524, 2.03003740296, 1279.79457262800], [0.388, 5.58318013074, 731.94436026870], [0.449, 1.11025492739, 56.62235130260], [0.398, 5.19943284273, 3267.01147078460], [0.416, 1.70821917336, 245.54242435240], [0.379, 1.80234948769, 2655.56837247380], [0.355, 1.65214516751, 78.71375183040], [0.404, 1.72647262603, 1141.13406340540], [0.335, 6.01254286794, 960.22130923370], [0.331, 1.74086938716, 490.33408917940], [0.401, 0.30034336462, 2332.06295581640], [0.336, 2.64385574909, 1021.24889455140], [0.389, 0.31259289221, 2413.81508903260], [0.314, 5.73833529708, 1158.54255114470], [0.313, 4.74363791106, 938.12990870590], [0.333, 0.80112437148, 1585.14074202070], [0.323, 3.52656245280, 3274.12501778540], [0.395, 1.73181407631, 1593.00504854690], [0.302, 4.64184749164, 1261.63532536330], [0.325, 0.54991590409, 43.28902917830], [0.293, 0.97977818746, 1585.89150154610], [0.341, 2.80833606944, 1514.29129671650], [0.304, 6.12522825214, 1262.38608488870], [0.286, 2.89800423081, 530.21222995640], [0.387, 0.46648572639, 1592.25428902150], [0.285, 4.56394598052, 1268.74887236410], [0.310, 4.69102289591, 76.26607127560], [0.278, 5.49867187248, 280.96714700450], [0.358, 5.45926487831, 113.38771495710], [0.283, 1.09230506350, 1061.82961074400], [0.326, 0.60265259639, 827.92358748650], [0.284, 5.36580034539, 1165.65609814550], [0.281, 5.54635461050, 3370.10424500320], [0.269, 3.92616563946, 42.53826965290], [0.275, 2.58465453365, 373.01422095920], [0.357, 1.39391983207, 1493.09366806600], [0.258, 5.96670694140, 1269.49963188950], [0.259, 2.56026216784, 9146.79006902100], [0.281, 2.74823090198, 4694.00295470760], [0.281, 3.01324655940, 320.32402291970], [0.272, 4.18504958920, 8624.21265092720], [0.245, 1.24462798353, 252.65597135320], [0.244, 2.02892764690, 3377.21779200400], [0.324, 1.84851618413, 1289.94650101460], [0.221, 6.22167997496, 3281.23856478620], [0.238, 3.93371505401, 3171.03224356680], [0.226, 5.94296271326, 224.34479570190], [0.213, 3.68264234750, 1048.33622992530], [0.216, 5.82941334164, 1567.73225428140], [0.295, 4.70194747095, 3067.93946934820], [0.206, 4.98184230959, 1357.61455258110], [0.202, 1.32439444045, 4326.39340097380], [0.227, 0.78540105705, 59.80374504030], [0.237, 5.56926897693, 2943.50605412720], [0.207, 0.07907015398, 5223.69391980220], [0.199, 3.30501818656, 4120.20785253660], [0.194, 5.95526916809, 84.93352695390], [0.266, 1.58032565718, 983.11585891360], [0.198, 4.31078641704, 4017.11507831800], [0.198, 0.30166351366, 1166.40685767090], [0.188, 0.90738705875, 135.33610313300], [0.186, 0.69289672485, 92.79783348010], [0.182, 1.18931462257, 1512.80682400820], [0.191, 1.04146023518, 1884.12412393800], [0.174, 6.13734594396, 3597.63043444280], [0.189, 0.35191512844, 1372.59240610810], [0.172, 4.35250972697, 1578.02719501990], [0.173, 2.30241719278, 1176.70179840940], [0.220, 1.06991056825, 2200.51599359460], [0.186, 4.90511103807, 3583.40334044120], [0.189, 0.24160744024, 1670.82502850000], [0.206, 0.01485146863, 2730.20695868920], [0.174, 1.83997277029, 746.92221379570], [0.225, 3.13108099660, 630.33605875840], [0.206, 5.22730929781, 3995.77443731560], [0.169, 2.57956682688, 9161.01716302260], [0.165, 1.51795928301, 4010.00153131720], [0.181, 2.05055200822, 842.90144101350], [0.181, 5.96554625357, 1578.77795454530], [0.166, 1.55114863100, 1070.42763045310], [0.157, 5.87839958880, 3914.02230409940], [0.160, 0.43729819176, 2545.36205125440], [0.168, 5.73975661792, 2847.52682690940], [0.157, 2.25764581068, 850.01498801430], [0.187, 0.64918748618, 842.15068148810], [0.180, 1.88055488803, 685.47393735270], [0.153, 4.15259684562, 4333.50694797460], [0.154, 3.65536637158, 77734.01845962799], [0.151, 3.17795437121, 3590.51688744200], [0.155, 3.87623547990, 327.43756992050], [0.171, 3.33647878498, 1912.57831194120], [0.188, 4.53005359421, 1041.22268292450], [0.134, 4.09921613445, 530.44172462000], [0.123, 4.79543460218, 1098.73880610440], [0.161, 2.02006564218, 860.30992875280], [0.143, 2.40197278329, 529.16970023280], [0.115, 1.55831212007, 9153.90361602180], [0.106, 5.94313244357, 1057.89745748090], [0.119, 5.10578428676, 1056.93424963440], [0.100, 5.74974781049, 501.23677709140], [0.094, 1.40134175492, 1059.33374607940], [0.098, 3.79115318281, 497.44763618020], [0.090, 4.09610113044, 1064.04779663520], [0.102, 1.10442899544, 1969.20066324380], [0.087, 0.58218477838, 1173.52040467170], [0.109, 3.83745968299, 525.49817940060], [0.094, 4.59915291355, 1059.43011429900], [0.118, 6.11701561559, 1069.67687092770], [0.107, 5.40509332689, 679.25416222920], [0.089, 5.90037690244, 757.21715453420], [0.078, 6.06217863109, 970.51624997220], [0.080, 5.45470236239, 3163.91869656600], [0.072, 5.65789862232, 1151.42900414390], [0.080, 0.04539720100, 1080.72257119160], [0.075, 4.26526686574, 1058.41872234270], ], # L2 [ [47233.598, 4.32148323554, 7.11354700080], [30629.053, 2.93021440216, 529.69096509460], [38965.550, 0.00000000000, 0.00000000000], [3189.317, 1.05504615595, 522.57741809380], [2723.358, 3.41411526638, 1059.38193018920], [2729.292, 4.84545481351, 536.80451209540], [1721.069, 4.18734385158, 14.22709400160], [383.258, 5.76790714387, 419.48464387520], [367.498, 6.05509120409, 103.09277421860], [377.524, 0.76048964872, 515.46387109300], [337.386, 3.78644384244, 3.18139373770], [308.200, 0.69356654052, 206.18554843720], [218.408, 3.81389191353, 1589.07289528380], [198.883, 5.33996443444, 1066.49547719000], [197.445, 2.48356402053, 3.93215326310], [146.230, 3.81373196838, 639.89728631400], [155.862, 1.40642426467, 1052.26838318840], [129.570, 5.83738872525, 412.37109687440], [141.932, 1.63435169016, 426.59819087600], [117.327, 1.41435462588, 625.67019231240], [96.733, 4.03383427887, 110.20632121940], [90.823, 1.10630629042, 95.97922721780], [78.769, 4.63726131329, 543.91805909620], [72.392, 2.21716670026, 735.87651353180], [87.292, 2.52235174825, 632.78373931320], [56.910, 3.12292059854, 213.29909543800], [48.622, 1.67283791618, 309.27832265580], [58.475, 0.83216317444, 199.07200143640], [40.150, 4.02485444740, 21.34064100240], [39.784, 0.62416945827, 323.50541665740], [35.718, 2.32581247002, 728.76296653100], [25.620, 2.51240623862, 1162.47470440780], [29.255, 3.60838327799, 10.29494073850], [23.591, 3.00532139306, 956.28915597060], [27.814, 3.23992013743, 838.96928775040], [25.993, 4.50118298290, 742.99006053260], [25.194, 1.21868110687, 1045.15483618760], [19.458, 4.29028644674, 532.87235883230], [17.660, 0.80953941560, 508.35032409220], [15.355, 5.81037986941, 1596.18644228460], [17.058, 4.20001977723, 2118.76386037840], [17.040, 1.83402146640, 526.50957135690], [14.661, 3.99989622586, 117.31986822020], [13.639, 1.80336677963, 302.16477565500], [13.230, 2.51856643603, 88.86568021700], [12.756, 4.36856232414, 1169.58825140860], [15.292, 0.68174165476, 942.06206196900], [10.986, 4.43586634639, 525.75881183150], [13.920, 5.95169568482, 316.39186965660], [9.437, 2.17684563456, 1155.36115740700], [8.812, 3.29452783338, 220.41264243880], [7.823, 5.75672228354, 846.08283475120], [7.549, 2.70955516779, 533.62311835770], [9.681, 1.71563161051, 1581.95934828300], [8.690, 3.31924493607, 831.85574074960], [6.285, 0.49939863541, 949.17560896980], [6.685, 2.17560093281, 1265.56747862640], [5.381, 6.00510875948, 405.25754987360], [4.676, 1.40846192799, 1258.45393162560], [4.421, 3.02360159274, 1692.16566950240], [4.403, 5.47737266160, 433.71173787680], [4.286, 5.07139951645, 1073.60902419080], [4.201, 5.28560721767, 18.15924726470], [3.933, 1.26665387164, 853.19638175200], [5.351, 3.65320121089, 1272.68102562720], [4.392, 2.27325303667, 1368.66025284500], [3.482, 1.53983001273, 519.39602435610], [2.745, 2.09685315627, 1478.86657406440], [2.737, 1.06017230524, 1574.84580128220], [2.897, 2.05128453665, 1361.54670584420], [3.075, 0.99085727534, 191.95845443560], [2.462, 2.37173605635, 1471.75302706360], [2.203, 2.47960567714, 721.64941953020], [2.096, 3.71482580504, 1485.98012106520], [1.984, 1.88475229557, 1685.05212250160], [2.274, 3.03360234351, 1148.24761040620], [2.041, 6.17114556019, 330.61896365820], [1.451, 4.72055072637, 32.24332891440], [1.454, 5.14703918585, 1375.77379984580], [1.447, 3.18833439444, 635.96513305090], [1.403, 4.26712075104, 551.03160609700], [1.420, 1.99288040133, 629.60234557550], [1.269, 0.03300387779, 2125.87740737920], [1.276, 2.26356919237, 1788.14489672020], [1.189, 1.70223550488, 1677.93857550080], [1.182, 2.18142313946, 1795.25844372100], [1.366, 1.27629917215, 1038.04128918680], [1.306, 4.76302079847, 1062.56332392690], [1.109, 2.97787130235, 81.75213321620], [1.027, 1.99236027398, 295.05122865420], [1.349, 4.01621534182, 539.98590583310], [1.025, 3.75336759986, 28.45418800320], [0.977, 3.01355125761, 124.43341522100], [1.290, 4.62594234857, 2648.45482547300], [1.065, 5.06153058155, 1699.27921650320], [0.965, 1.17716405513, 99.91138048090], [1.021, 1.90712102660, 750.10360753340], [0.923, 3.53450109212, 227.52618943960], [1.059, 0.13532061468, 416.30325013750], [0.836, 2.07492422755, 1056.20053645150], [0.889, 1.75177808106, 1898.35121793960], [0.772, 2.89217715561, 2008.55753915900], [1.014, 2.80847772922, 1464.63948006280], [0.820, 1.99735697577, 2111.65031337760], [0.787, 4.91912237671, 1055.44977692610], [0.743, 2.65209650690, 106.27416795630], [0.705, 0.08006443278, 963.40270297140], [0.724, 3.29664246938, 628.85158605010], [0.791, 1.64655202110, 2001.44399215820], [0.822, 2.74067639972, 618.55664531160], [0.761, 1.26393500358, 1382.88734684660], [0.650, 1.19590511216, 422.66603761290], [0.677, 1.88476058357, 2104.53676637680], [0.681, 5.47481665606, 5760.49843189760], [0.681, 3.11621209674, 5746.27133789600], [0.644, 4.68385640894, 611.44309831080], [0.752, 3.03497138894, 2221.85663459700], [0.641, 1.86274530783, 636.71589257630], [0.614, 3.07677356670, 380.12776796000], [0.635, 4.53916684689, 9676.48103411560], [0.635, 0.61458805483, 9690.70812811720], [0.822, 6.25170365084, 423.41679713830], [0.762, 4.32362906505, 1802.37199072180], [0.582, 0.84137872868, 1891.23767093880], [0.558, 3.96171840325, 440.82528487760], [0.624, 2.83657771014, 1905.46476494040], [0.711, 3.43538032357, 824.74219374880], [0.517, 1.10660016329, 107.02492748170], [0.535, 1.55761050176, 1994.33044515740], [0.501, 4.44389802599, 647.01083331480], [0.414, 5.37130370397, 2228.97018159780], [0.533, 2.54756313371, 1781.03134971940], [0.393, 1.26351262287, 210.11770170030], [0.433, 2.90103969634, 1063.31408345230], [0.384, 1.36194621083, 203.00415469950], [0.440, 1.46934545869, 2214.74308759620], [0.424, 4.98974282486, 3178.14579056760], [0.338, 2.72210106345, 2324.94940881560], [0.332, 0.37505564414, 2655.56837247380], [0.318, 6.11024720065, 934.94851496820], [0.405, 3.51005860013, 2751.54759969160], [0.388, 5.00609647265, 2015.67108615980], [0.424, 4.29668654117, 5753.38488489680], [0.328, 2.35571531981, 1251.34038462480], [0.316, 0.16949503062, 1279.79457262800], [0.345, 2.89328206121, 2957.73314812880], [0.303, 1.63964826684, 2428.04218303420], [0.328, 3.36132375845, 1141.13406340540], [0.294, 2.48947693371, 2641.34127847220], [0.350, 1.50537240918, 2317.83586181480], [0.287, 1.69638214958, 2420.92863603340], [0.272, 0.27466529753, 319.57326339430], [0.303, 2.43034117616, 70.84944530420], [0.251, 0.43544711316, 3259.89792378380], [0.224, 4.49752269293, 5223.69391980220], [0.272, 2.98590404673, 1457.52593306200], [0.228, 5.47896916415, 1603.29998928540], [0.288, 2.30146999217, 2854.64037391020], [0.207, 5.94297320087, 9153.90361602180], [0.243, 1.58604251447, 2744.43405269080], [0.228, 1.28182702946, 2310.72231481400], [0.224, 1.28623905132, 3060.82592234740], [0.222, 0.63265553397, 3163.91869656600], [0.242, 2.52382905368, 3274.12501778540], [0.188, 6.00513627145, 92.04707395470], [0.239, 1.93897157244, 2413.81508903260], [0.214, 1.14529237568, 2531.13495725280], [0.200, 3.42280996072, 99.16062095550], [0.179, 0.53892926207, 2207.62954059540], [0.177, 5.56545270243, 2332.06295581640], [0.172, 1.38604067808, 945.99421523210], [0.203, 0.41899069603, 2840.41327990860], [0.231, 2.26353330460, 2097.42321937600], [0.228, 3.82701076821, 113.38771495710], [0.165, 4.08776703733, 6283.07584999140], [0.202, 3.30429764992, 3067.93946934820], [0.224, 3.69285208525, 2435.15573003500], [0.214, 2.55756944911, 2538.24850425360], [0.203, 2.24205059922, 67.66805156650], [0.152, 5.48122906518, 10213.28554621100], [0.191, 2.68685722531, 1773.91780271860], [0.189, 2.95184620359, 732.69511979410], [0.149, 1.98737542735, 1049.08698945070], [0.163, 1.24084734609, 3053.71237534660], [0.171, 2.34210749987, 1354.43315884340], [0.112, 5.77407285790, 547.85021235930], [0.124, 0.14001204498, 860.30992875280], [0.086, 1.26924601636, 511.53171782990], [0.114, 5.15982838070, 1592.25428902150], [0.091, 1.48896790758, 1567.73225428140], [0.086, 4.34444949905, 1069.67687092770], ], # L3 [ [6501.665, 2.59862880482, 7.11354700080], [1356.524, 1.34635886411, 529.69096509460], [470.716, 2.47503977883, 14.22709400160], [416.960, 3.24451243214, 536.80451209540], [352.851, 2.97360159003, 522.57741809380], [154.880, 2.07565585817, 1059.38193018920], [86.771, 2.51431584316, 515.46387109300], [33.538, 3.82633794497, 1066.49547719000], [44.378, 0.00000000000, 0.00000000000], [22.644, 2.98231326774, 543.91805909620], [23.737, 1.27667172313, 412.37109687440], [28.457, 2.44754756058, 206.18554843720], [19.798, 2.10099934005, 639.89728631400], [19.740, 1.40255938973, 419.48464387520], [18.768, 1.59368403500, 103.09277421860], [17.033, 2.30214681202, 21.34064100240], [16.774, 2.59821460673, 1589.07289528380], [16.214, 3.14521117299, 625.67019231240], [16.055, 3.36030126297, 1052.26838318840], [13.392, 2.75973892202, 95.97922721780], [13.234, 2.53862244340, 199.07200143640], [12.611, 6.26578110400, 426.59819087600], [8.637, 2.26563256289, 110.20632121940], [6.725, 3.42566433316, 309.27832265580], [8.701, 1.76334960737, 10.29494073850], [6.527, 4.03869562907, 728.76296653100], [5.368, 5.25196153539, 323.50541665740], [5.675, 2.52096417685, 508.35032409220], [5.399, 2.91184687105, 1045.15483618760], [3.996, 4.30290261177, 88.86568021700], [3.857, 3.52381361552, 302.16477565500], [3.774, 4.09125315146, 735.87651353180], [3.269, 1.43175991274, 956.28915597060], [2.783, 4.35817507670, 1596.18644228460], [2.661, 1.25276590759, 213.29909543800], [2.553, 2.23785673285, 117.31986822020], [2.371, 2.89662409244, 742.99006053260], [2.656, 5.01505839848, 838.96928775040], [1.948, 2.77248294666, 1169.58825140860], [2.279, 2.35581871230, 942.06206196900], [1.474, 1.61011468581, 220.41264243880], [1.457, 3.09381959396, 2118.76386037840], [1.937, 5.01388256693, 831.85574074960], [1.585, 1.40097680805, 405.25754987360], [1.257, 3.97811260358, 1155.36115740700], [1.227, 3.45959919972, 1073.60902419080], [0.986, 3.39209446167, 532.87235883230], [0.942, 2.70200385825, 191.95845443560], [0.828, 1.48348768286, 632.78373931320], [0.797, 1.10706688850, 1162.47470440780], [0.822, 3.30295824153, 1258.45393162560], [0.710, 5.89798771980, 853.19638175200], [0.766, 3.66351539483, 1581.95934828300], [0.722, 3.74673245797, 433.71173787680], [0.663, 2.93063953915, 1574.84580128220], [0.658, 3.52797311863, 525.75881183150], [0.609, 4.14881313523, 721.64941953020], [0.598, 4.69454609357, 81.75213321620], [0.668, 1.96442971289, 1272.68102562720], [0.515, 1.57251270902, 949.17560896980], [0.658, 2.02329201466, 526.50957135690], [0.517, 4.35827478516, 1368.66025284500], [0.510, 4.95846155301, 1148.24761040620], [0.507, 4.31396370095, 330.61896365820], [0.567, 2.27813343743, 551.03160609700], [0.480, 3.86758235988, 1361.54670584420], [0.383, 0.24287136454, 611.44309831080], [0.434, 2.95461755540, 1038.04128918680], [0.377, 1.42957648215, 124.43341522100], [0.391, 4.07770324592, 1471.75302706360], [0.385, 4.70295179800, 519.39602435610], [0.428, 2.22472522305, 539.98590583310], [0.343, 4.83463725823, 2125.87740737920], [0.394, 4.52891996323, 1464.63948006280], [0.305, 2.02797683648, 1485.98012106520], [0.283, 0.97461612169, 1905.46476494040], [0.276, 3.83552772064, 1062.56332392690], [0.351, 2.06334334462, 533.62311835770], [0.304, 3.93228052293, 1685.05212250160], [0.322, 3.54763044791, 846.08283475120], [0.345, 4.18332148409, 1788.14489672020], [0.253, 3.12703531516, 1994.33044515740], [0.257, 1.05361498985, 1478.86657406440], [0.232, 1.69999081817, 1692.16566950240], [0.225, 2.51624149780, 1891.23767093880], [0.217, 4.58512911216, 963.40270297140], [0.277, 3.63353707701, 1677.93857550080], [0.242, 2.90163762388, 2310.72231481400], [0.211, 3.96419403991, 295.05122865420], [0.199, 5.17046500750, 618.55664531160], [0.256, 4.19052619061, 1781.03134971940], [0.192, 0.81556540966, 2221.85663459700], [0.187, 3.49895198981, 2648.45482547300], [0.208, 4.11838429822, 2097.42321937600], [0.183, 3.30680692414, 1699.27921650320], [0.231, 2.54516792766, 1375.77379984580], [0.189, 5.74277274755, 2627.11418447060], [0.214, 5.48031974537, 1354.43315884340], [0.220, 3.87471989410, 2104.53676637680], [0.171, 6.10827209399, 1382.88734684660], [0.184, 5.98415847544, 750.10360753340], [0.171, 5.25744961028, 824.74219374880], [0.151, 4.30799091626, 2001.44399215820], [0.140, 4.27089466070, 1265.56747862640], [0.097, 4.67188056608, 647.01083331480], [0.088, 2.43775210355, 440.82528487760], [0.075, 3.93105183253, 1055.44977692610], [0.079, 1.88533153220, 934.94851496820], [0.077, 3.80503143236, 1603.29998928540], ], # L4 [ [669.483, 0.85282421090, 7.11354700080], [99.961, 0.74258947751, 14.22709400160], [114.019, 3.14159265359, 0.00000000000], [50.024, 1.65346208248, 536.80451209540], [43.585, 5.82026386621, 529.69096509460], [31.813, 4.85829986650, 522.57741809380], [14.742, 4.29061635784, 515.46387109300], [8.899, 0.71478520741, 1059.38193018920], [4.957, 1.29502259434, 543.91805909620], [4.484, 2.31715516627, 1066.49547719000], [4.251, 0.48326797501, 21.34064100240], [3.100, 3.00245542678, 412.37109687440], [2.055, 0.39858940218, 639.89728631400], [1.762, 4.90536207307, 625.67019231240], [1.902, 4.25925620271, 199.07200143640], [1.695, 4.26147580803, 206.18554843720], [1.375, 5.25546955667, 1052.26838318840], [1.203, 4.71614633845, 95.97922721780], [1.086, 1.28604571172, 1589.07289528380], [0.982, 4.77990073662, 1045.15483618760], [0.935, 6.05847062188, 88.86568021700], [0.916, 5.77537499431, 728.76296653100], [0.890, 4.55299189579, 426.59819087600], [0.784, 3.40161567950, 419.48464387520], [0.768, 3.54672049322, 103.09277421860], [0.670, 0.52223307700, 110.20632121940], [0.415, 5.22809480633, 302.16477565500], [0.393, 6.24184621807, 956.28915597060], [0.381, 5.25466966040, 309.27832265580], [0.421, 0.59561318533, 117.31986822020], [0.346, 4.78348312106, 508.35032409220], [0.319, 3.47979828725, 323.50541665740], [0.331, 2.95893485883, 1596.18644228460], [0.295, 4.32713459459, 942.06206196900], [0.319, 0.47990052824, 831.85574074960], [0.251, 1.79898001222, 1073.60902419080], [0.212, 0.43917684084, 220.41264243880], [0.188, 1.12654974776, 1169.58825140860], [0.188, 2.16135407548, 1361.54670584420], [0.180, 3.43266428069, 1148.24761040620], [0.164, 1.92864127211, 2118.76386037840], [0.157, 3.02963907392, 1272.68102562720], [0.093, 5.60436000012, 1581.95934828300], [0.085, 5.02317256200, 1155.36115740700], [0.075, 3.13198879608, 632.78373931320], ], # L5 [ [49.577, 5.25658966184, 7.11354700080], [15.761, 5.25126837478, 14.22709400160], [4.343, 0.01461869263, 536.80451209540], [1.526, 1.09739911439, 522.57741809380], [0.728, 5.85949047619, 543.91805909620], [0.694, 0.87382487754, 515.46387109300], [0.845, 3.14159265359, 0.00000000000], [0.456, 0.81521692852, 1066.49547719000], [0.293, 5.62909357048, 1059.38193018920], [0.090, 0.21178119710, 529.69096509460], ], ] """This table contains Jupiter's periodic terms (all of them) from the planetary theory VSOP87 for the heliocentric longitude at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in pages 426-430.""" VSOP87_B = [ # B0 [ [2268615.703, 3.55852606718, 529.69096509460], [109971.634, 3.90809347389, 1059.38193018920], [110090.358, 0.00000000000, 0.00000000000], [8101.427, 3.60509573368, 522.57741809380], [6043.996, 4.25883108794, 1589.07289528380], [6437.782, 0.30627121409, 536.80451209540], [1106.880, 2.98534421928, 1162.47470440780], [941.651, 2.93619072405, 1052.26838318840], [894.088, 1.75447429921, 7.11354700080], [767.280, 2.15473594060, 632.78373931320], [944.328, 1.67522288396, 426.59819087600], [684.220, 3.67808770098, 213.29909543800], [629.223, 0.64343282328, 1066.49547719000], [835.861, 5.17881973234, 103.09277421860], [531.670, 2.70305954352, 110.20632121940], [558.524, 0.01354830508, 846.08283475120], [464.449, 1.17337249185, 949.17560896980], [431.072, 2.60825000494, 419.48464387520], [351.433, 4.61062990714, 2118.76386037840], [123.148, 3.34968181384, 1692.16566950240], [115.038, 5.04892295442, 316.39186965660], [132.160, 4.77816990670, 742.99006053260], [103.402, 2.31878999565, 1478.86657406440], [116.379, 1.38688232033, 323.50541665740], [102.420, 3.15293785436, 1581.95934828300], [103.762, 3.70103838110, 515.46387109300], [78.650, 3.98318653238, 1265.56747862640], [69.935, 2.56006216424, 956.28915597060], [55.597, 0.37500753017, 1375.77379984580], [51.986, 0.99007119033, 1596.18644228460], [55.194, 0.40176412035, 525.75881183150], [63.456, 4.50073574333, 735.87651353180], [49.691, 0.18649893085, 543.91805909620], [48.831, 3.57260550671, 533.62311835770], [28.353, 1.53532744749, 625.67019231240], [29.209, 5.43145863011, 206.18554843720], [23.255, 5.95197992848, 838.96928775040], [22.841, 6.19262787685, 532.87235883230], [23.202, 4.06473368575, 526.50957135690], [24.436, 6.10947656959, 1169.58825140860], [21.116, 4.96322972735, 2648.45482547300], [17.879, 3.08704395969, 1795.25844372100], [16.234, 4.83515727869, 1368.66025284500], [21.314, 2.69476951059, 1045.15483618760], [15.740, 1.15130330106, 942.06206196900], [17.325, 1.61550009206, 14.22709400160], [13.396, 2.30539585502, 853.19638175200], [11.904, 3.09811974536, 2111.65031337760], [11.734, 2.83006431723, 2008.55753915900], [11.291, 0.98957560201, 433.71173787680], [11.830, 4.76527836803, 309.27832265580], [10.702, 3.70181397065, 2221.85663459700], [10.815, 5.81958878617, 1272.68102562720], [13.505, 3.28126975760, 1155.36115740700], [10.179, 2.58691128827, 117.31986822020], [10.632, 5.23487936086, 95.97922721780], [8.771, 0.40456546655, 220.41264243880], [7.439, 2.94638292086, 412.37109687440], [6.151, 2.69100382247, 380.12776796000], [5.028, 0.72750312028, 1055.44977692610], [4.939, 0.73756716762, 1905.46476494040], [5.421, 4.08612438558, 1685.05212250160], [5.936, 4.32059910537, 1063.31408345230], [4.737, 4.09303016850, 527.24328453980], [4.010, 0.51530008355, 1073.60902419080], [4.709, 1.84067645204, 984.60033162190], [3.974, 1.33608029246, 2125.87740737920], [3.762, 3.58647039394, 529.73914920440], [4.731, 6.16377350841, 532.13864564940], [4.666, 5.88762905802, 639.89728631400], [3.763, 0.38865925413, 529.64278098480], [3.409, 4.05398247269, 1898.35121793960], [3.457, 3.43865563497, 1485.98012106520], [4.229, 2.23767157901, 74.78159856730], [3.091, 0.16470256025, 1699.27921650320], [2.975, 0.72268908074, 530.65417294110], [3.162, 1.25048416420, 330.61896365820], [2.727, 4.37679213321, 149.56319713460], [2.837, 0.05987107395, 1439.50969814920], [2.983, 3.25251207220, 528.72775724810], [2.232, 0.26149880534, 1062.56332392690], [2.464, 1.16913304420, 453.42489381900], [2.596, 3.30510149086, 2324.94940881560], [1.988, 2.85269577619, 1574.84580128220], [2.527, 5.94458202950, 909.81873305460], [2.269, 1.30379329597, 3.93215326310], [1.742, 4.49909767044, 1258.45393162560], [1.714, 4.12945878208, 2001.44399215820], [2.029, 3.97938086639, 1056.20053645150], [1.667, 0.36037092553, 10213.28554621100], [1.579, 6.11640144795, 1802.37199072180], [1.393, 3.69324470827, 2214.74308759620], [1.604, 1.98841031703, 38.13303563780], [1.325, 1.74025919863, 529.16970023280], [1.451, 2.39804501178, 2428.04218303420], [1.594, 2.07556780757, 1021.24889455140], [1.320, 1.33770977126, 618.55664531160], [1.346, 3.27591492540, 2641.34127847220], [1.230, 0.19552728220, 305.34616939270], [1.223, 2.86681556337, 1382.88734684660], [1.324, 2.23549334986, 530.21222995640], [1.056, 3.80579750957, 76.26607127560], [1.050, 4.68011652614, 1788.14489672020], [1.226, 5.34003255221, 3178.14579056760], [1.009, 3.19608028376, 2538.24850425360], [1.266, 3.04704446731, 604.47256366190], [0.954, 3.86932544808, 728.76296653100], [1.124, 1.59560367480, 3.18139373770], [0.978, 0.25223689838, 983.11585891360], [0.948, 0.21552742733, 750.10360753340], [0.946, 3.93927748120, 508.35032409220], [0.920, 1.14672086939, 963.40270297140], [0.817, 5.93809619876, 831.85574074960], [0.770, 2.96062737592, 526.77020378780], [1.017, 5.55711112145, 199.07200143640], [0.761, 1.38163787157, 532.61172640140], [0.726, 3.98337964395, 2317.83586181480], [0.862, 0.87975657414, 490.33408917940], [0.868, 3.44331872364, 569.04784100980], [0.711, 4.11107052823, 2751.54759969160], [0.708, 0.33555577415, 528.94020556920], [0.708, 4.00539820601, 530.44172462000], [0.656, 4.39568451439, 519.39602435610], [0.801, 4.03984430862, 1364.72809958190], [0.679, 1.18645749024, 525.49817940060], [0.645, 5.10510349996, 1361.54670584420], [0.668, 3.15607509055, 533.88375078860], [0.663, 0.73722024843, 5223.69391980220], [0.663, 1.57092786811, 6283.07584999140], [0.543, 0.26376529935, 227.52618943960], [0.525, 6.22318693939, 539.98590583310], [0.513, 4.98337900151, 302.16477565500], [0.544, 2.22227019273, 2744.43405269080], [0.532, 2.62425372687, 99.16062095550], [0.602, 1.56074089013, 454.90936652730], [0.518, 0.26343805959, 551.03160609700], [0.516, 1.09376390349, 934.94851496820], [0.659, 0.62560671589, 1512.80682400820], [0.524, 0.64710955846, 524.06189080210], [0.516, 3.69478866795, 535.32003938710], [0.491, 3.63039940597, 2531.13495725280], [0.570, 0.61976758791, 540.73666535850], [0.496, 2.19398015038, 1514.29129671650], [0.532, 0.20040217534, 525.02509864860], [0.493, 0.39160693598, 224.34479570190], [0.449, 0.62392433691, 529.53090640020], [0.449, 3.71676131146, 529.85102378900], [0.450, 5.02467015031, 1048.33622992530], [0.428, 5.44804660290, 11.04570026390], [0.499, 4.13924061941, 534.35683154060], [0.528, 1.76471074936, 524.27433912320], [0.454, 4.53321742354, 1056.93424963440], [0.520, 2.57406093768, 535.10759106600], [0.398, 1.40345870113, 960.22130923370], [0.457, 4.17708652827, 2104.53676637680], [0.505, 5.36536256321, 1057.89745748090], [0.535, 4.80455380313, 1593.00504854690], [0.415, 0.96548127237, 2435.15573003500], [0.519, 0.54543519483, 1061.82961074400], [0.359, 4.02704454075, 1059.43011429900], [0.356, 2.66818105522, 835.03713448730], [0.443, 5.27513700376, 1.48447270830], [0.358, 5.94423960514, 440.82528487760], [0.471, 6.05791940453, 1471.75302706360], [0.386, 2.15984900214, 9153.90361602180], [0.424, 2.70929670030, 1038.04128918680], [0.359, 0.82922836987, 1059.33374607940], [0.310, 0.88102053266, 529.90341341570], [0.310, 3.45966511571, 529.47851677350], [0.300, 3.70331799503, 2634.22773147140], [0.292, 2.63594456361, 415.55249061210], [0.279, 1.60669121578, 643.82943957710], [0.291, 5.83134071820, 1148.24761040620], [0.370, 5.71572992274, 531.17543780290], [0.268, 5.39275891813, 1891.23767093880], [0.275, 3.34108666036, 518.64526483070], [0.269, 1.06051406954, 1585.14074202070], [0.306, 2.50289017370, 511.53171782990], [0.295, 1.84394223501, 547.85021235930], [0.254, 2.98312992496, 1134.16352875650], [0.289, 1.86070918711, 21.34064100240], [0.265, 4.93075479744, 679.25416222920], [0.250, 0.42860925124, 1969.20066324380], [0.308, 2.67237933272, 2957.73314812880], [0.313, 4.88085697819, 528.20649238630], [0.222, 4.78828764413, 514.71311156760], [0.221, 4.32763468981, 1677.93857550080], [0.217, 3.46278526461, 2950.61960112800], [0.216, 0.52207667980, 2228.97018159780], [0.214, 5.83569926578, 544.66881862160], [0.283, 2.88709716090, 35.42472265210], [0.272, 1.65708415457, 3060.82592234740], [0.234, 1.68821537711, 2655.56837247380], [0.205, 3.36186888290, 2847.52682690940], [0.264, 3.62722625694, 2420.92863603340], [0.191, 4.26821147044, 430.53034413910], [0.179, 3.91470663005, 3340.61242669980], [0.180, 0.04531671003, 387.24131496080], [0.241, 4.03927631611, 494.26624244250], [0.176, 4.26298906325, 672.14061522840], [0.187, 2.72587420586, 299.12639426920], [0.234, 1.34474827450, 173.94221952280], [0.171, 0.85473611718, 1603.29998928540], [0.224, 0.33130232434, 565.11568774670], [0.200, 1.27632489123, 39.35687591520], [0.170, 4.96479470273, 1464.63948006280], [0.211, 1.00937080256, 523.54062594030], [0.210, 3.75793720248, 2854.64037391020], [0.162, 5.87784787295, 3480.31056622260], [0.163, 4.62850343495, 2015.67108615980], [0.191, 3.33159283750, 535.84130424890], [0.151, 1.17096741034, 1060.34513803570], [0.160, 1.81852636004, 312.45971639350], [0.158, 2.59595816107, 529.43033266370], [0.158, 1.74472748730, 529.95159752550], [0.173, 3.62399350412, 230.56457082540], [0.142, 0.70435921398, 522.52923398400], [0.144, 5.35763122430, 107.02492748170], [0.144, 6.13954848857, 1158.54255114470], [0.178, 0.27566275049, 3906.90875709860], [0.126, 5.14832919826, 2207.62954059540], [0.126, 3.41994798109, 2.44768055480], [0.127, 0.39825164051, 70.84944530420], [0.123, 4.77865550523, 2524.02141025200], [0.123, 0.46184813516, 647.01083331480], [0.144, 3.60261852727, 1058.41872234270], [0.158, 3.76231915252, 92.04707395470], [0.119, 4.08266911415, 1585.89150154610], [0.125, 2.35496721797, 3163.91869656600], [0.122, 3.21027426317, 3377.21779200400], [0.121, 3.39770381916, 18.15924726470], [0.131, 1.67926417552, 1289.94650101460], [0.115, 2.35735471566, 1550.93985964600], [0.126, 2.40833814513, 106.27416795630], [0.131, 1.37610474529, 1023.95720753710], [0.121, 1.60252617273, 10.29494073850], [0.121, 0.61420823557, 1592.25428902150], [0.135, 3.60177675518, 124.43341522100], [0.137, 2.41724947062, 3274.12501778540], [0.129, 0.09702914345, 2332.06295581640], [0.093, 4.88949890397, 1098.73880610440], [0.106, 5.18592950792, 2281.23049651060], [0.114, 2.96523316419, 1166.40685767090], [0.092, 1.65166124027, 860.30992875280], [0.102, 3.64093193142, 3171.03224356680], [0.103, 1.63066232967, 1894.41906467650], [0.080, 0.38766601876, 4694.00295470760], [0.074, 3.86865238736, 3067.93946934820], [0.095, 1.66362447044, 1151.42900414390], ], # B1 [ [177351.787, 5.70166488486, 529.69096509460], [3230.171, 5.77941619340, 1059.38193018920], [3081.364, 5.47464296527, 522.57741809380], [2211.914, 4.73477480209, 536.80451209540], [1694.232, 3.14159265359, 0.00000000000], [346.445, 4.74595174109, 1052.26838318840], [234.264, 5.18856099929, 1066.49547719000], [196.154, 6.18554286642, 7.11354700080], [150.468, 3.92721226087, 1589.07289528380], [114.128, 3.43897271830, 632.78373931320], [96.667, 2.91426304090, 949.17560896980], [76.599, 2.50522188662, 103.09277421860], [81.671, 5.07666097497, 1162.47470440780], [76.572, 0.61288981445, 419.48464387520], [73.875, 5.49958292155, 515.46387109300], [49.915, 3.94799616572, 735.87651353180], [60.544, 5.44740084359, 213.29909543800], [36.561, 4.69828392839, 543.91805909620], [46.032, 0.53850360901, 110.20632121940], [45.123, 1.89516645239, 846.08283475120], [36.019, 6.10952578764, 316.39186965660], [31.975, 4.92452714629, 1581.95934828300], [21.015, 5.62957731410, 1596.18644228460], [23.156, 5.84829490183, 323.50541665740], [24.719, 3.94107395247, 2118.76386037840], [17.274, 5.65310656429, 533.62311835770], [16.521, 5.89840100621, 526.50957135690], [16.698, 5.66663034948, 1265.56747862640], [15.815, 4.43314786393, 1045.15483618760], [13.398, 4.30179033605, 532.87235883230], [11.744, 1.80990486955, 956.28915597060], [11.925, 4.30094564154, 525.75881183150], [9.514, 2.02589667166, 206.18554843720], [10.542, 6.15533910933, 14.22709400160], [8.414, 3.92910450340, 1478.86657406440], [8.099, 4.20152809071, 1169.58825140860], [7.712, 2.99160389601, 942.06206196900], [8.825, 1.55897920307, 426.59819087600], [8.884, 4.87430124264, 1155.36115740700], [7.793, 3.84684930196, 625.67019231240], [5.646, 3.40915964493, 639.89728631400], [4.615, 0.83374662294, 117.31986822020], [4.020, 5.50502127885, 433.71173787680], [3.704, 0.90226777963, 95.97922721780], [3.859, 0.69640284662, 853.19638175200], [3.091, 5.09115860882, 1073.60902419080], [3.360, 5.10133284081, 1692.16566950240], [2.892, 4.90418916660, 220.41264243880], [2.772, 5.09066125724, 2111.65031337760], [2.425, 3.74438653232, 742.99006053260], [2.558, 5.46955948791, 1795.25844372100], [2.466, 4.22278355430, 2648.45482547300], [1.968, 0.57192251841, 309.27832265580], [1.794, 4.60765219417, 1272.68102562720], [1.822, 1.98842964323, 1375.77379984580], [1.703, 6.12660562937, 2125.87740737920], [2.011, 5.00936865256, 412.37109687440], [1.645, 0.08830372958, 1063.31408345230], [1.875, 5.81006158403, 330.61896365820], [1.741, 4.58650290431, 1574.84580128220], [1.529, 5.81660291389, 1258.45393162560], [1.916, 0.85150399517, 1368.66025284500], [1.614, 4.36839107221, 728.76296653100], [1.510, 2.79374165455, 1485.98012106520], [1.333, 4.84260898693, 1062.56332392690], [1.359, 5.16511980864, 838.96928775040], [1.165, 5.66275740881, 508.35032409220], [1.092, 4.68797557406, 1699.27921650320], [1.438, 5.78105679279, 1056.20053645150], [1.083, 3.99886917926, 1471.75302706360], [1.002, 4.79949608524, 1055.44977692610], [0.749, 6.14400862030, 519.39602435610], [0.657, 5.63765568876, 1898.35121793960], [0.702, 5.04126574492, 1685.05212250160], [0.607, 3.15707515246, 618.55664531160], [0.587, 1.37658820775, 199.07200143640], [0.552, 4.80657729450, 551.03160609700], [0.494, 4.43417307482, 539.98590583310], [0.517, 0.05161181997, 3.18139373770], [0.469, 3.81715950042, 2008.55753915900], [0.415, 1.34693184108, 1382.88734684660], [0.382, 4.86764073919, 227.52618943960], [0.473, 1.72405831407, 532.13864564940], [0.458, 4.44604993015, 1038.04128918680], [0.376, 2.23190744786, 529.64278098480], [0.451, 3.75869883836, 984.60033162190], [0.376, 5.42971857629, 529.73914920440], [0.389, 1.92698506631, 525.02509864860], [0.364, 3.35456685746, 2221.85663459700], [0.476, 5.93625415892, 527.24328453980], [0.383, 6.12255867339, 149.56319713460], [0.301, 4.09378934049, 440.82528487760], [0.310, 5.58150418981, 2428.04218303420], [0.282, 4.85996662231, 1788.14489672020], [0.298, 5.09589374634, 528.72775724810], [0.340, 4.56537070220, 750.10360753340], [0.272, 2.35346960340, 534.35683154060], [0.360, 3.91050161665, 74.78159856730], [0.299, 1.43093538841, 909.81873305460], [0.297, 2.56584512211, 530.65417294110], [0.235, 4.81644489422, 535.10759106600], [0.306, 0.68420442848, 380.12776796000], [0.236, 4.63162956792, 526.77020378780], [0.270, 0.18549916939, 21.34064100240], [0.288, 4.26655874393, 1802.37199072180], [0.196, 5.35950443033, 2214.74308759620], [0.190, 4.54615193260, 2104.53676637680], [0.193, 4.35426216497, 511.53171782990], [0.178, 4.51895208036, 3178.14579056760], [0.194, 0.57050756837, 1361.54670584420], [0.200, 1.48040474749, 302.16477565500], [0.168, 5.40141749419, 524.27433912320], [0.152, 0.68077486546, 1905.46476494040], [0.149, 1.06678990744, 831.85574074960], [0.182, 3.62401009613, 38.13303563780], [0.176, 5.64331384323, 963.40270297140], [0.184, 4.48850356629, 604.47256366190], [0.133, 5.45026366125, 2641.34127847220], [0.143, 2.21577268292, 1439.50969814920], [0.130, 4.88155705493, 2531.13495725280], [0.129, 6.15206333598, 547.85021235930], [0.133, 5.43193972385, 1603.29998928540], [0.133, 3.49297492409, 529.16970023280], [0.132, 3.98820790955, 530.21222995640], [0.118, 5.38352943814, 1891.23767093880], [0.133, 5.65694269884, 76.26607127560], [0.145, 2.94976686191, 454.90936652730], [0.115, 3.29206553804, 3.93215326310], [0.102, 4.48856749557, 2001.44399215820], [0.106, 6.08434275898, 10.29494073850], [0.093, 5.84737771840, 2324.94940881560], [0.101, 0.15815934254, 2655.56837247380], [0.115, 3.59221021604, 2015.67108615980], [0.103, 4.70399583323, 305.34616939270], [0.084, 0.44180206332, 1593.00504854690], [0.092, 2.44863388631, 490.33408917940], [0.087, 6.23817512863, 6283.07584999140], [0.095, 3.30154605532, 2317.83586181480], [0.072, 1.90578907085, 528.94020556920], [0.072, 5.57619428876, 530.44172462000], [0.078, 5.97323507836, 1585.89150154610], ], # B2 [ [8094.051, 1.46322843658, 529.69096509460], [742.415, 0.95691639003, 522.57741809380], [813.244, 3.14159265359, 0.00000000000], [398.951, 2.89888666447, 536.80451209540], [342.226, 1.44683789727, 1059.38193018920], [73.948, 0.40724675866, 1052.26838318840], [46.151, 3.48036895772, 1066.49547719000], [29.314, 0.99088831805, 515.46387109300], [29.717, 1.92504171329, 1589.07289528380], [22.753, 4.27124052435, 7.11354700080], [13.916, 2.92242387338, 543.91805909620], [12.067, 5.22168932482, 632.78373931320], [10.703, 4.88024222475, 949.17560896980], [6.078, 6.21089108431, 1045.15483618760], [5.935, 0.52977760072, 1581.95934828300], [5.037, 1.43444929374, 526.50957135690], [4.564, 0.91811732585, 1162.47470440780], [4.547, 4.01953745202, 1596.18644228460], [5.098, 6.03169795231, 735.87651353180], [3.593, 4.54080164408, 110.20632121940], [3.443, 1.38618954572, 533.62311835770], [3.277, 4.39650286553, 14.22709400160], [3.407, 0.42275631534, 419.48464387520], [2.904, 2.06041641723, 316.39186965660], [2.541, 3.98323842017, 323.50541665740], [3.113, 2.48079280193, 2118.76386037840], [3.061, 2.39880866911, 532.87235883230], [2.155, 4.77990637140, 942.06206196900], [2.143, 3.88727338786, 426.59819087600], [2.252, 0.37196434120, 1155.36115740700], [2.019, 3.89985000464, 846.08283475120], [1.857, 1.19658907851, 103.09277421860], [1.683, 1.42264195434, 1265.56747862640], [2.313, 0.87671613055, 213.29909543800], [1.443, 2.38565505909, 1169.58825140860], [1.823, 5.80106463776, 625.67019231240], [1.728, 2.24114678267, 525.75881183150], [1.198, 0.03252059731, 956.28915597060], [1.138, 3.46420904745, 1073.60902419080], [1.086, 5.35279146700, 117.31986822020], [0.840, 2.89946334223, 95.97922721780], [0.746, 5.53017890231, 1478.86657406440], [0.944, 4.05587053500, 206.18554843720], [0.758, 3.74770617289, 433.71173787680], [0.673, 1.26396626349, 508.35032409220], [0.889, 6.07878453176, 728.76296653100], [0.600, 1.82954494089, 639.89728631400], [0.589, 1.23625943417, 1258.45393162560], [0.619, 0.67923057477, 838.96928775040], [0.566, 5.36336098734, 742.99006053260], [0.648, 5.32990375008, 853.19638175200], [0.553, 3.15511946637, 220.41264243880], [0.432, 1.03719283016, 1692.16566950240], [0.435, 1.65056479007, 519.39602435610], [0.430, 1.41830384501, 412.37109687440], [0.431, 2.20986254651, 1368.66025284500], [0.415, 4.35372561905, 330.61896365820], [0.438, 0.16552277290, 1574.84580128220], [0.312, 4.50639455819, 2125.87740737920], [0.280, 3.01441283033, 551.03160609700], [0.309, 0.67399908949, 2111.65031337760], [0.301, 3.06868080871, 1062.56332392690], [0.236, 1.94696842200, 1485.98012106520], [0.235, 3.41850395941, 199.07200143640], [0.246, 2.61803442505, 309.27832265580], [0.238, 2.56643737684, 539.98590583310], [0.248, 2.96997778167, 2648.45482547300], [0.209, 5.82481690851, 1471.75302706360], [0.205, 1.20202002469, 1056.20053645150], [0.188, 0.97113663101, 1685.05212250160], [0.137, 2.91203499563, 1699.27921650320], [0.131, 1.79274504072, 1063.31408345230], [0.161, 1.05926568614, 1795.25844372100], [0.112, 2.62660288825, 440.82528487760], [0.110, 3.56263668146, 227.52618943960], [0.114, 6.13907482464, 1038.04128918680], [0.103, 4.64287101040, 3.18139373770], [0.123, 4.81268110532, 21.34064100240], [0.102, 4.27603827970, 1375.77379984580], [0.089, 1.22926014128, 1898.35121793960], [0.080, 0.62129648755, 831.85574074960], ], # B3 [ [251.624, 3.38087923084, 529.69096509460], [121.738, 2.73311837200, 522.57741809380], [48.694, 1.03689996685, 536.80451209540], [10.988, 2.31463561347, 1052.26838318840], [8.067, 2.76729757621, 515.46387109300], [6.205, 1.78115827370, 1066.49547719000], [7.287, 4.25268318975, 1059.38193018920], [3.627, 1.13028917221, 543.91805909620], [2.798, 3.14159265359, 0.00000000000], [1.898, 2.28934054087, 7.11354700080], [1.643, 1.77507208483, 1045.15483618760], [0.945, 0.45261136388, 632.78373931320], [0.758, 0.30577920142, 949.17560896980], [0.731, 2.63748223583, 14.22709400160], [0.876, 0.32927768725, 1589.07289528380], [0.678, 2.36909615348, 1581.95934828300], [0.623, 2.48056213600, 1596.18644228460], [0.736, 1.52532370632, 735.87651353180], [0.499, 3.67985494258, 419.48464387520], [0.454, 0.26977404624, 942.06206196900], [0.453, 3.18232334886, 526.50957135690], [0.409, 2.88147337106, 110.20632121940], [0.347, 5.76244285870, 103.09277421860], [0.310, 2.98017326384, 508.35032409220], [0.321, 4.40642025933, 532.87235883230], [0.300, 1.66936571536, 625.67019231240], [0.295, 1.75924202728, 1073.60902419080], [0.282, 3.11087801399, 533.62311835770], [0.263, 0.55255030187, 426.59819087600], [0.208, 2.17540496886, 1155.36115740700], [0.183, 4.34670868038, 525.75881183150], [0.180, 6.07777744541, 639.89728631400], [0.159, 2.60843864402, 1162.47470440780], [0.117, 4.70141431381, 95.97922721780], [0.107, 5.48942805114, 433.71173787680], [0.105, 3.75192101775, 316.39186965660], [0.130, 1.37897716939, 323.50541665740], [0.094, 3.05797832024, 1265.56747862640], [0.114, 3.75170981478, 117.31986822020], [0.095, 0.54905691533, 1169.58825140860], [0.088, 3.26874502411, 213.29909543800], [0.098, 2.00704668688, 1574.84580128220], ], # B4 [ [15.050, 4.52956999637, 522.57741809380], [5.370, 4.47427159142, 529.69096509460], [4.456, 5.43908581047, 536.80451209540], [3.422, 0.00000000000, 0.00000000000], [1.833, 4.51807036227, 515.46387109300], [1.322, 4.20117611581, 1052.26838318840], [0.755, 5.59451554966, 543.91805909620], [0.512, 0.05803177475, 1066.49547719000], [0.282, 3.66807771223, 1059.38193018920], [0.147, 3.56490986181, 1045.15483618760], [0.142, 5.69936472988, 7.11354700080], [0.112, 1.16718383135, 14.22709400160], ], # B5 [ [1.445, 0.09198554072, 522.57741809380], [0.368, 0.00874408003, 515.46387109300], [0.304, 3.27902945138, 536.80451209540], [0.129, 0.33959775247, 529.69096509460], [0.095, 1.29305954542, 543.91805909620], ], ] """This table contains Jupiter's periodic terms (all of them) from the planetary theory VSOP87 for the heliocentric latitude at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in pages 430-432.""" VSOP87_R = [ # R0 [ [520887429.471, 0.00000000000, 0.00000000000], [25209327.020, 3.49108640015, 529.69096509460], [610599.902, 3.84115365602, 1059.38193018920], [282029.465, 2.57419879933, 632.78373931320], [187647.391, 2.07590380082, 522.57741809380], [86792.941, 0.71001090609, 419.48464387520], [72062.869, 0.21465694745, 536.80451209540], [65517.227, 5.97995850843, 316.39186965660], [29134.620, 1.67759243710, 103.09277421860], [30135.275, 2.16132058449, 949.17560896980], [23453.209, 3.54023147303, 735.87651353180], [22283.710, 4.19362773546, 1589.07289528380], [23947.340, 0.27457854894, 7.11354700080], [13032.600, 2.96043055741, 1162.47470440780], [9703.346, 1.90669572402, 206.18554843720], [12749.004, 2.71550102862, 1052.26838318840], [9161.431, 4.41352618935, 213.29909543800], [7894.539, 2.47907551404, 426.59819087600], [7057.978, 2.18184753111, 1265.56747862640], [6137.755, 6.26417542514, 846.08283475120], [5477.093, 5.65729325169, 639.89728631400], [3502.519, 0.56531297394, 1066.49547719000], [4136.890, 2.72219979684, 625.67019231240], [4170.012, 2.01605033912, 515.46387109300], [2499.966, 4.55182055941, 838.96928775040], [2616.955, 2.00993967129, 1581.95934828300], [1911.876, 0.85621927419, 412.37109687440], [2127.644, 6.12751461750, 742.99006053260], [1610.549, 3.08867789275, 1368.66025284500], [1479.484, 2.68026191372, 1478.86657406440], [1230.708, 1.89042979701, 323.50541665740], [1216.810, 1.80171561024, 110.20632121940], [961.072, 4.54876989805, 2118.76386037840], [885.708, 4.14785948471, 533.62311835770], [776.700, 3.67696954690, 728.76296653100], [998.579, 2.87208940110, 309.27832265580], [1014.959, 1.38673237666, 454.90936652730], [727.162, 3.98824686402, 1155.36115740700], [655.289, 2.79065604219, 1685.05212250160], [821.465, 1.59342534396, 1898.35121793960], [620.798, 4.82284338962, 956.28915597060], [653.981, 3.38150775269, 1692.16566950240], [812.036, 5.94091899141, 909.81873305460], [562.120, 0.08095987241, 543.91805909620], [542.221, 0.28360266386, 525.75881183150], [457.859, 0.12722694510, 1375.77379984580], [614.784, 2.27624915604, 942.06206196900], [435.805, 2.60272129748, 95.97922721780], [496.066, 5.53005947761, 380.12776796000], [469.965, 2.81896276101, 1795.25844372100], [445.003, 0.14623567024, 14.22709400160], [290.869, 3.89339143564, 1471.75302706360], [276.627, 2.52238450687, 2001.44399215820], [275.084, 2.98863518924, 526.50957135690], [293.875, 2.04938438861, 199.07200143640], [290.985, 6.03131226226, 1169.58825140860], [338.342, 2.79873192583, 1045.15483618760], [257.482, 6.13395478303, 532.87235883230], [319.013, 1.34803130803, 2214.74308759620], [309.352, 5.36855804945, 1272.68102562720], [345.804, 1.56404293688, 491.55792945680], [303.364, 1.15407454372, 5753.38488489680], [192.325, 0.91996333387, 1596.18644228460], [215.398, 2.63572815848, 2111.65031337760], [200.738, 2.37259566683, 1258.45393162560], [239.036, 3.57397189838, 835.03713448730], [197.073, 5.92859096863, 453.42489381900], [139.440, 3.63960322318, 1788.14489672020], [191.373, 6.28251311870, 983.11585891360], [176.551, 2.57669991654, 9683.59458111640], [123.567, 2.26158186345, 2317.83586181480], [128.176, 4.66585907670, 831.85574074960], [112.430, 0.85604150812, 433.71173787680], [128.817, 1.10567106595, 2531.13495725280], [99.390, 4.50312054049, 518.64526483070], [93.870, 2.72553879990, 853.19638175200], [106.481, 5.81462222290, 220.41264243880], [120.188, 2.95156363556, 3.93215326310], [104.002, 2.22221906187, 74.78159856730], [81.655, 3.23481337678, 1361.54670584420], [112.513, 4.86216964016, 528.20649238630], [79.539, 0.88542246830, 430.53034413910], [85.801, 2.11458386763, 1574.84580128220], [85.685, 2.33823884827, 2428.04218303420], [68.311, 3.35727048905, 2104.53676637680], [69.570, 3.04164697156, 302.16477565500], [69.775, 3.22402404312, 305.34616939270], [69.570, 0.20494979941, 532.13864564940], [56.991, 2.00204191909, 2634.22773147140], [77.062, 2.09816000231, 508.35032409220], [56.716, 3.91743976711, 2221.85663459700], [58.325, 5.72360355252, 628.85158605010], [52.485, 4.02485010492, 527.24328453980], [63.645, 1.09973563964, 1364.72809958190], [53.607, 0.87425992614, 2847.52682690940], [59.598, 0.95822471775, 494.26624244250], [57.960, 3.45779497978, 2008.55753915900], [41.512, 3.51955526735, 529.73914920440], [44.666, 1.62313786651, 984.60033162190], [44.883, 4.90091959557, 2648.45482547300], [53.206, 1.19800364308, 760.25553592000], [44.393, 4.42623747662, 1063.31408345230], [37.566, 2.93021095213, 1677.93857550080], [41.516, 0.32174409278, 529.64278098480], [42.855, 0.03093594081, 1439.50969814920], [45.963, 2.54342106514, 636.71589257630], [40.181, 4.39381642864, 1148.24761040620], [38.770, 4.31675565025, 149.56319713460], [40.348, 2.10140891053, 2744.43405269080], [48.851, 5.60297777544, 2810.92146160520], [37.085, 5.07828164301, 1905.46476494040], [43.875, 1.24536971083, 621.73803904930], [34.005, 3.09360167248, 2420.92863603340], [36.782, 0.84232174637, 530.65417294110], [31.139, 5.35811251334, 1485.98012106520], [39.295, 4.70800489067, 569.04784100980], [39.700, 2.46163878814, 355.74874557180], [31.527, 6.19284070863, 3.18139373770], [28.399, 2.48456666067, 519.39602435610], [32.432, 2.73281750275, 604.47256366190], [27.119, 3.92341697086, 2324.94940881560], [26.753, 1.74975198417, 2950.61960112800], [28.986, 1.83535862643, 1891.23767093880], [26.493, 0.60380196895, 1055.44977692610], [33.525, 0.76068430639, 643.82943957710], [26.568, 1.03594610835, 405.25754987360], [25.534, 3.46320665375, 458.84151979040], [24.421, 0.88181836930, 423.41679713830], [32.949, 3.18597137308, 528.72775724810], [22.456, 0.43129919683, 1073.60902419080], [21.599, 1.41820425091, 540.73666535850], [25.673, 0.52358194760, 511.53171782990], [21.115, 3.08023522766, 629.60234557550], [22.713, 0.65234613144, 3163.91869656600], [19.189, 5.16589014963, 635.96513305090], [26.042, 1.33629471285, 330.61896365820], [18.263, 3.59973446951, 746.92221379570], [18.210, 2.66819439927, 1994.33044515740], [19.724, 4.13552133321, 1464.63948006280], [19.480, 1.85656428109, 3060.82592234740], [23.927, 4.99826361784, 1289.94650101460], [21.886, 5.91718683551, 1802.37199072180], [17.482, 2.82161612542, 2737.32050569000], [16.608, 5.67394889755, 408.43894361130], [22.892, 5.26731352093, 672.14061522840], [18.349, 1.89869734949, 1021.24889455140], [19.123, 3.65882402977, 415.55249061210], [15.735, 3.34772676006, 1056.20053645150], [16.373, 0.18094878053, 1699.27921650320], [18.899, 3.69120638874, 88.86568021700], [18.655, 1.97327300097, 38.13303563780], [15.542, 3.82204881010, 721.64941953020], [16.780, 1.90976657921, 217.23124870110], [15.313, 1.05907174619, 114.13847448250], [15.190, 1.32317039042, 117.31986822020], [15.080, 3.74469077216, 2641.34127847220], [19.836, 2.73184571324, 39.35687591520], [14.708, 1.67270454473, 529.16970023280], [14.036, 3.54305270022, 142.44965013380], [12.931, 1.48829749349, 3267.01147078460], [14.924, 1.32546085940, 490.33408917940], [14.753, 4.64530618027, 6283.07584999140], [14.672, 0.80451954754, 5223.69391980220], [12.085, 3.67072510553, 750.10360753340], [11.954, 2.97127390765, 505.31194270640], [14.650, 2.16792930250, 530.21222995640], [11.869, 1.66551754962, 2207.62954059540], [12.273, 0.20690014405, 1062.56332392690], [11.460, 1.11906683214, 561.93429400900], [11.083, 3.22049096074, 535.10759106600], [11.567, 5.22625628971, 524.06189080210], [11.161, 3.82945634036, 76.26607127560], [10.918, 1.27796962818, 2125.87740737920], [12.685, 3.96848605476, 2538.24850425360], [11.230, 3.23092119889, 422.66603761290], [12.645, 0.73670428580, 908.33426034630], [11.330, 5.56127247007, 531.17543780290], [9.509, 5.00507284204, 597.35901666110], [10.291, 3.84159025239, 1781.03134971940], [10.762, 4.91380719453, 525.02509864860], [11.786, 5.11863653538, 685.47393735270], [11.980, 1.72470898635, 911.30320576290], [8.937, 2.40338241992, 2310.72231481400], [9.253, 2.57670338148, 3053.71237534660], [9.488, 2.95089828501, 1382.88734684660], [9.889, 0.43758517388, 3480.31056622260], [8.781, 3.66562388594, 739.80866679490], [8.664, 2.70398612383, 526.77020378780], [9.505, 1.61249870019, 3377.21779200400], [11.540, 1.59520481029, 1474.67378837040], [9.533, 0.35468711552, 1512.80682400820], [9.980, 4.80984684596, 558.00214074590], [9.014, 1.21458362718, 416.30325013750], [7.969, 0.08480602718, 528.94020556920], [8.668, 5.29060005706, 945.24345570670], [7.851, 1.46751861875, 963.40270297140], [8.611, 1.13232641062, 532.61172640140], [7.838, 6.26933498027, 647.01083331480], [7.581, 2.90608705954, 533.88375078860], [8.583, 6.06634530166, 10213.28554621100], [10.198, 2.48743123636, 1819.63746610920], [8.536, 2.22700701790, 9153.90361602180], [9.759, 6.15593336218, 593.42686339800], [7.968, 3.75535355212, 530.44172462000], [7.142, 3.58836120327, 2957.73314812880], [7.122, 0.11970048938, 224.34479570190], [8.731, 0.75302913970, 960.22130923370], [7.063, 2.16793037690, 724.83081326790], [7.263, 2.29499675875, 520.12973753900], [6.418, 1.25058991868, 3583.40334044120], [8.270, 1.24806288317, 495.75071515080], [6.483, 4.74567772640, 202.25339517410], [7.197, 3.84169279666, 618.55664531160], [8.146, 0.73147060302, 230.56457082540], [6.165, 5.50124418381, 11.04570026390], [7.946, 2.07754951174, 953.10776223290], [7.675, 0.92400307662, 525.49817940060], [6.210, 1.45641362115, 483.22054217860], [7.359, 0.31355650764, 378.64329525170], [6.707, 2.92071167098, 1038.04128918680], [7.143, 0.18218134889, 731.94436026870], [7.309, 6.27084533477, 21.34064100240], [6.135, 2.67651237303, 312.45971639350], [5.558, 3.83419160288, 534.35683154060], [5.344, 5.25294750019, 1048.33622992530], [7.504, 0.74281415471, 457.61767951300], [5.335, 6.23059924424, 551.03160609700], [5.613, 1.51210605952, 524.27433912320], [5.284, 2.18579185671, 280.96714700450], [5.475, 5.95864753605, 539.98590583310], [5.056, 0.37387972537, 529.53090640020], [6.202, 5.53813122743, 2.44768055480], [5.490, 5.97692444199, 227.52618943960], [6.266, 0.76632858238, 938.12990870590], [5.750, 2.13496323512, 191.95845443560], [5.218, 4.69335266854, 560.71045373160], [5.480, 5.21157595558, 1057.89745748090], [5.738, 0.34249718209, 535.91074021810], [4.816, 1.51326236835, 2524.02141025200], [5.056, 3.46671669992, 529.85102378900], [4.710, 2.27813830550, 3370.10424500320], [5.228, 3.61776977584, 2097.42321937600], [4.878, 1.39829798223, 3693.60966166060], [5.727, 4.80120381106, 598.84348936940], [5.707, 3.94177950323, 2854.64037391020], [4.988, 4.87244187719, 1.48447270830], [5.424, 3.53268613904, 456.39383923560], [4.288, 4.84438067847, 70.84944530420], [5.944, 3.79180483544, 25558.21217647960], [4.195, 2.09136830994, 2627.11418447060], [4.582, 5.61707254513, 2435.15573003500], [4.268, 6.20250525415, 775.23338944700], [4.521, 0.20049967962, 92.04707395470], [5.405, 4.66492781581, 833.55266177900], [5.607, 3.30226645638, 535.32003938710], [4.171, 3.14873010832, 944.98282327580], [4.108, 5.84489743779, 440.82528487760], [4.367, 4.68363584557, 327.43756992050], [4.033, 3.30883782817, 3274.12501778540], [4.292, 0.20604269202, 3796.70243587920], [4.270, 0.98941708997, 387.24131496080], [4.259, 3.21120589971, 696.51963761660], [4.673, 1.96606729969, 107.02492748170], [4.031, 4.62854606236, 2751.54759969160], [5.115, 2.66416451377, 1215.16490244730], [4.181, 4.74527698816, 988.53248488500], [4.374, 1.50010561403, 1894.41906467650], [3.803, 3.59911687954, 437.64389113990], [3.761, 3.96903199782, 732.69511979410], [3.620, 1.57847427805, 381.61224066830], [3.490, 0.63097592112, 529.90341341570], [4.019, 2.57664165720, 916.93228005540], [4.133, 4.78417930217, 824.74219374880], [4.411, 3.13179382423, 630.33605875840], [4.099, 3.63702212253, 810.65811209910], [3.704, 6.17243801274, 537.76771994190], [4.124, 2.14248285449, 210.11770170030], [3.490, 3.20962050417, 529.47851677350], [3.281, 1.53106243317, 547.85021235930], [3.554, 6.03787799174, 739.05790726950], [4.101, 6.00406226999, 902.70518605380], [3.267, 3.49354065789, 1166.40685767090], [3.286, 2.55966870530, 945.99421523210], [4.041, 4.78735413707, 850.01498801430], [4.304, 0.11406117717, 1744.85586754190], [4.043, 5.20417093600, 635.23141986800], [3.115, 4.61986265585, 952.35700270750], [3.016, 0.95126220905, 3899.79521009780], [3.017, 2.59699501992, 632.83192342300], [3.219, 1.83594791142, 18.15924726470], [3.203, 6.12597544496, 10.29494073850], [3.220, 6.14213423140, 1158.54255114470], [3.000, 5.69509924353, 632.73555520340], [3.226, 5.59910267099, 608.40471692500], [3.118, 5.64998934505, 99.16062095550], [3.745, 2.08111521615, 282.45161971280], [2.837, 4.60175594220, 245.54242435240], [3.093, 6.02049413961, 633.74694715970], [3.120, 2.29047945342, 631.82053146670], [2.662, 3.69016679729, 885.43971066640], [3.150, 1.79784999553, 521.61421024730], [2.822, 3.14927418161, 295.05122865420], [2.615, 0.20732170653, 35.42472265210], [2.971, 1.28795094653, 1023.95720753710], [2.571, 2.01817133502, 1514.29129671650], [2.592, 0.48790221200, 195.13984817330], [3.263, 2.38820607343, 836.52160719560], [2.501, 0.21653750027, 465.95506679120], [2.451, 5.58559489768, 544.66881862160], [2.535, 1.44414086617, 460.53844081980], [2.666, 3.30350145485, 2413.81508903260], [2.412, 4.36756580310, 1056.93424963440], [2.452, 4.53818816565, 514.71311156760], [3.239, 1.17022488774, 177.87437278590], [3.218, 0.60551913257, 1061.82961074400], [2.408, 0.65423523810, 523.54062594030], [2.299, 2.15247752560, 319.57326339430], [2.791, 2.71505085086, 610.69233878540], [2.729, 1.77685979153, 252.65597135320], [2.666, 3.77750458842, 3171.03224356680], [2.303, 0.36676453766, 1969.20066324380], [2.664, 0.09674841214, 565.11568774670], [2.312, 2.07210502831, 3686.49611465980], [2.680, 4.94445888050, 1593.00504854690], [2.193, 0.55645982205, 2228.97018159780], [2.526, 1.07528597373, 12036.46073488820], [2.778, 1.48379350517, 447.79581952650], [2.235, 5.95475282699, 6151.53388830500], [2.759, 4.63976153480, 462.02291352810], [2.175, 4.53588570240, 501.37978944330], [2.323, 5.93670041006, 611.44309831080], [2.384, 2.81746622971, 3340.61242669980], [2.087, 3.10716079675, 1049.08698945070], [1.994, 2.02500860064, 1058.86066532740], [2.199, 2.20937490997, 1269.49963188950], [2.705, 1.97665276677, 415.29185818120], [2.787, 1.31053438756, 1041.22268292450], [2.003, 4.66904374443, 679.25416222920], [1.962, 1.82999730674, 2943.50605412720], [2.289, 2.96480800939, 69.15252427480], [2.192, 4.47837196209, 209.36694217490], [2.020, 0.04621364490, 4113.09430553580], [2.082, 1.11203059170, 4010.00153131720], [1.991, 3.20108648275, 3590.51688744200], [1.900, 3.32227077969, 421.93232443000], [2.193, 2.82218305362, 292.01284726840], [2.288, 1.94695631885, 1279.79457262800], [1.843, 5.23293634337, 14.97785352700], [1.932, 5.46684252030, 2281.23049651060], [2.177, 2.93031976617, 429.04587143080], [2.125, 0.06224847826, 24.37902238820], [2.464, 5.39581078430, 1261.63532536330], [1.938, 3.79908004671, 1059.43011429900], [2.029, 3.95461157815, 771.30123618390], [1.841, 4.74905354737, 78.71375183040], [1.922, 2.21862085389, 99.91138048090], [1.836, 5.75449805175, 623.22251175760], [2.145, 3.87052575546, 451.94042111070], [1.782, 0.40860352236, 754.03576079650], [1.784, 1.49468287576, 529.95159752550], [1.842, 3.49726261337, 1354.43315884340], [1.748, 3.48730020953, 522.62560220360], [1.816, 1.24334711210, 417.03696332040], [1.752, 1.15500390019, 1060.34513803570], [1.729, 2.69831073799, 642.34496686880], [1.985, 1.99916658759, 934.94851496820], [1.828, 5.44095029767, 1201.83158032300], [2.158, 3.45672748590, 827.92358748650], [1.959, 1.06033047373, 33.94024994380], [1.751, 3.13572498964, 384.05992122310], [1.781, 5.02895146997, 1098.73880610440], [2.074, 3.18582065441, 1366.21257229020], [1.757, 5.02778552877, 586.31331639720], [2.045, 3.08816627459, 535.84130424890], [2.273, 5.17998505813, 3178.14579056760], [1.617, 3.16674916201, 67.66805156650], [1.627, 6.10603469594, 432.01481684740], [1.930, 1.63968957659, 5.41662597140], [1.741, 0.99408274736, 1254.52177836250], [1.607, 5.65498642076, 1165.65609814550], [1.676, 3.06138410273, 1134.16352875650], [1.821, 3.05183555090, 567.82400073240], [1.677, 3.09175084930, 1251.34038462480], [1.994, 2.52023134712, 1059.90319505100], [2.204, 6.15376698510, 563.63121503840], [1.692, 4.19142612803, 106.27416795630], [1.906, 5.58417395051, 32.24332891440], [2.206, 1.75883974012, 1151.42900414390], [1.552, 3.04262360186, 385.54439393140], [1.508, 0.42002830727, 313.21047591890], [1.494, 1.43672345922, 2840.41327990860], [1.678, 2.17255433434, 306.83064210100], [1.511, 4.44377608685, 395.10562148700], [1.958, 0.05215107058, 761.74000862830], [1.760, 1.27045286501, 1173.52040467170], [1.463, 6.07810373103, 0.96320784650], [1.498, 2.79408561759, 277.03499374140], [1.636, 0.26199351490, 522.52923398400], [1.507, 0.48961801593, 4216.18707975440], [1.530, 3.42953827550, 1159.29331067010], [1.744, 2.39637837261, 203.00415469950], [1.569, 2.55719070621, 4.19278569400], [1.576, 3.45039607104, 1058.41872234270], [1.466, 2.24427539934, 1550.93985964600], [1.784, 2.34591354953, 529.43033266370], [1.939, 4.73685428610, 3067.93946934820], [1.938, 0.60126164334, 1059.33374607940], [1.523, 2.98744673443, 2730.20695868920], [1.834, 3.78099298791, 420.96911658350], [1.372, 3.53997115825, 5.62907429250], [1.361, 0.45533257707, 418.52143602870], [1.833, 5.12743628215, 1578.02719501990], [1.839, 4.24616044210, 981.63138620530], [1.567, 3.32429870195, 532.39927808030], [1.340, 1.94668282270, 528.41894070740], [1.422, 1.83191577465, 4002.88798431640], [1.745, 5.76913240451, 490.07345674850], [1.437, 4.19470227783, 420.44785172170], [1.419, 0.74849005330, 632.26247445140], [1.447, 5.65611888743, 373.01422095920], [1.578, 3.90273683089, 602.98809095360], [1.385, 3.88479835656, 419.43645976540], [1.352, 0.81697905853, 1585.14074202070], [1.399, 1.24785452243, 633.30500417500], [1.297, 5.57914023189, 1276.61317889030], [1.491, 1.66541781223, 2655.56837247380], [1.252, 0.72155670765, 173.94221952280], [1.658, 5.60924662850, 362.86229257260], [1.606, 3.95301396173, 2274.54683263650], [1.213, 4.55264289565, 366.79444583570], [1.521, 0.55773831071, 1592.25428902150], [1.220, 3.63029788040, 497.44763618020], [1.215, 4.42854185903, 531.38788612400], [1.549, 5.73765962068, 320.32402291970], [1.480, 4.29779032931, 303.86169668440], [1.507, 2.27998567874, 758.77106321170], [1.212, 3.38335836048, 536.85269620520], [1.245, 4.21639959154, 4.66586644600], [1.507, 3.52136655355, 774.00954916960], [1.481, 3.06156044618, 1585.89150154610], [1.462, 2.30628702634, 1363.24362687360], [1.180, 3.52708055024, 1064.79855616060], [1.193, 5.88284733845, 1060.86640289750], [1.398, 4.99456521692, 842.90144101350], [1.406, 1.53799746944, 1020.02505427400], [1.367, 4.10254739443, 799.61241183520], [1.336, 1.89387272380, 530.96298948180], [1.238, 3.62226383331, 3487.42411322340], [1.306, 3.39985119727, 539.25219265020], [1.156, 0.77127511567, 1603.29998928540], [1.482, 0.48451915093, 493.04240216510], [1.247, 5.64344659992, 479.28838891550], [1.195, 2.39909893341, 561.18353448360], [1.106, 0.89453807282, 2.92076130680], [1.227, 2.76231244946, 299.12639426920], [1.128, 4.72319873338, 124.43341522100], [1.086, 5.66180289525, 1053.75285589670], [1.329, 0.16664094530, 536.75632798560], [1.082, 4.51407359350, 528.25467649610], [1.105, 1.93890691771, 244.31858407500], [1.446, 0.65096230619, 1091.62525910360], [1.071, 4.67974963103, 521.82665856840], [1.413, 4.72936311016, 1141.13406340540], [1.086, 2.88721124443, 1262.38608488870], [1.254, 5.74156595137, 527.99404406520], [1.082, 5.60975006771, 531.12725369310], [1.148, 3.27410230525, 1035.00290780100], [1.224, 3.68807537150, 81.75213321620], [1.072, 0.48068438564, 1058.63117066380], [1.036, 1.68789163831, 1070.42763045310], [1.052, 4.72763208332, 913.75088631770], [1.166, 4.97812626679, 450.97721326420], [1.042, 2.90894542321, 3906.90875709860], [0.997, 1.65967703856, 3259.89792378380], [1.113, 3.06502453809, 1482.79872732750], [0.991, 0.91568114148, 576.16138801060], [0.987, 0.91349590742, 2332.06295581640], [1.003, 6.17381204883, 391.17346822390], [1.087, 3.19260020877, 151.04766984290], [0.987, 2.48065918834, 1912.57831194120], [0.975, 1.55458771092, 536.28324723360], [1.193, 2.19383228000, 523.09868295560], [0.979, 3.28693620660, 1379.70595310890], [0.963, 2.29845109892, 1467.82087380050], [1.279, 4.73978455573, 600.54041039880], [1.269, 1.77171706595, 5120.60114558360], [0.938, 3.13636271584, 1372.59240610810], [0.956, 0.94045126791, 429.77958461370], [1.130, 4.87259620358, 874.39401040250], [1.044, 3.52819283674, 530.58473697190], [1.244, 0.80634178279, 419.53282798500], [0.914, 4.34324212455, 1127.04998175570], [1.095, 3.17513475763, 6681.22485339960], [0.926, 5.53099018797, 537.55527162080], [1.025, 6.08315999637, 469.88722005430], [0.928, 2.64064849636, 31.01948863700], [0.887, 5.53922649066, 498.67147645760], [1.153, 5.20213407651, 554.06998748280], [0.976, 4.26047885490, 806.72595883600], [0.871, 5.79751110150, 594.65070367540], [1.044, 0.31244551729, 528.79719321730], [0.911, 0.94039205468, 337.73251065900], [1.197, 3.12884590029, 1966.23171782720], [0.930, 2.88178471518, 1056.46116888240], [1.052, 1.69484089706, 484.44438245600], [0.862, 0.67309397482, 20426.57109242200], [1.152, 1.16751621652, 1489.91227432830], [0.847, 3.25831322825, 1063.57471588320], [0.884, 0.71487680084, 2042.49778910280], [0.888, 5.38714907441, 5621.84292321040], [1.137, 4.02029739425, 1670.07426897460], [0.844, 3.31846798590, 812.14258480740], [0.860, 4.78175008217, 530.91480537200], [0.835, 3.63117401608, 451.72797278960], [0.931, 2.27352189963, 100.64509366380], [0.939, 3.51238251326, 523.47118997110], [0.860, 5.34207357904, 528.46712481720], [0.875, 0.87775537110, 4326.39340097380], [0.961, 5.69327275886, 498.19839570560], [0.966, 6.25512226434, 700.45179087970], [0.842, 3.20535945596, 1670.82502850000], [0.808, 1.09148925587, 683.18631549230], [0.810, 5.47935192896, 525.54636351040], [0.855, 6.06969867736, 446.31134681820], [0.989, 1.55623875216, 1493.09366806600], [0.837, 1.49510080792, 1025.44168024540], [0.974, 3.67667471757, 25565.32572348040], [0.788, 0.51622458293, 526.98265210890], [0.820, 1.86002542644, 629.86297800640], [0.813, 0.45441968195, 4694.00295470760], [0.953, 0.58786779132, 627.36711334180], [0.908, 2.82093327912, 3046.59882834580], [0.912, 2.69124310451, 946.72792841500], [0.820, 4.14947931572, 1884.12412393800], [0.948, 0.77931728039, 25551.09862947879], [0.844, 0.00976249584, 628.59095361920], [0.910, 0.99542530366, 5760.49843189760], [0.844, 0.22630964490, 1123.11782849260], [0.924, 4.41952345708, 5746.27133789600], [0.967, 3.20618313117, 9050.81084180320], [0.800, 0.10663079153, 4532.57894941100], [0.748, 3.01376405927, 5481.75455838080], [0.752, 5.82360472890, 701.93626358800], [0.771, 0.12101982692, 635.70450062000], [0.725, 2.81220410314, 3597.63043444280], [0.944, 0.40327408174, 1140.38330388000], [0.726, 5.28930472464, 1304.92435454160], [0.994, 5.16391370100, 10316.37832042960], [0.890, 4.10819809692, 1060.13268971460], [0.962, 1.48376004549, 1062.30269149600], [0.883, 5.26813169286, 1542.60247236780], [0.916, 6.02908368648, 7.86430652620], [0.725, 2.18773773010, 1176.70179840940], [0.808, 5.81725174908, 1087.69310584050], [0.757, 0.77440414330, 977.48678462110], [0.838, 3.81585420192, 986.08480433020], [0.888, 1.89634795578, 707.56533788050], [0.854, 5.47701506544, 2818.03500860600], [0.796, 1.08794807212, 987.30864460760], [0.856, 2.58042139486, 2803.80791460440], [0.708, 1.09492310353, 248.72381809010], [0.811, 3.23726191865, 121.25202148330], [0.727, 1.56150632966, 4319.27985397300], [0.687, 2.65457835371, 1567.73225428140], [0.675, 1.78690909614, 103.14095832840], [0.853, 4.74476428852, 951.62328952460], [0.832, 5.14362789810, 1054.71606374320], [0.846, 1.47557828604, 898.77303279070], [0.701, 1.72139817505, 5230.80746680300], [0.863, 3.98700238575, 686.95841006100], [0.703, 2.89202252444, 63.73589830340], [0.673, 6.11618580510, 738.32419408660], [0.806, 4.64475158248, 533.83556667880], [0.670, 2.67625974048, 1012.91150727320], [0.668, 4.93815253692, 5172.47623572500], [0.818, 1.41973280302, 580.09354127370], [0.652, 3.41422919445, 650.94298657790], [0.643, 2.46566726278, 1049.82070263360], [0.859, 2.50530106631, 782.34693644780], [0.662, 4.13533996643, 733.42883297700], [0.812, 1.30325352179, 1055.18914449520], [0.638, 4.21760246824, 1064.04779663520], [0.637, 6.13121700151, 4752.99159184980], [0.636, 0.83411828974, 711.49749114360], [0.642, 1.86741704507, 1053.96530421780], [0.795, 4.54081089118, 1457.52593306200], [0.783, 4.37652961667, 105.54045477340], [0.640, 5.44039474349, 632.03297978780], [0.651, 5.02431301146, 528.04643369190], [0.686, 0.27079898498, 11.77941344680], [0.644, 5.36935176134, 835.78789401270], [0.639, 1.86699974431, 6172.86952877200], [0.630, 2.86895754523, 633.53449883860], [0.826, 1.46026926041, 2199.76523406920], [0.687, 3.81221717134, 73.29712585900], [0.697, 4.18082589322, 1.69692102940], [0.788, 0.21278801649, 313.94418910180], [0.686, 2.51807576494, 638.41281360570], [0.847, 5.56263749391, 4429.48617519240], [0.673, 4.87494072856, 103.04459010880], [0.663, 4.80713895807, 991.71387862270], [0.614, 3.87231597482, 767.36908292080], [0.666, 5.71697262323, 661.09491496450], [0.681, 2.33844767741, 501.23677709140], [0.597, 3.03921014345, 6.95348830640], [0.777, 3.08786050361, 441.57604440300], [0.588, 0.08236113246, 4164.31198961300], [0.693, 4.66190836234, 3384.33133900480], [0.810, 1.97701084490, 860.30992875280], [0.602, 5.56403449542, 1587.58842257550], [0.622, 6.11554348965, 7.06536289100], [0.592, 3.29013906024, 10103.07922499160], [0.692, 6.10931942233, 12.74262129330], [0.597, 6.13204711801, 7.27360569520], [0.594, 2.58839673551, 849.26422848890], [0.728, 2.73732195088, 6.15033915430], [0.602, 5.28816527514, 949.12742486000], [0.568, 1.75508433865, 1077.54117745390], [0.575, 4.50676079721, 1230.14275597430], [0.588, 0.65827893998, 4642.78527063040], [0.561, 3.87565914360, 135.33610313300], [0.558, 3.36094471852, 24498.83024629040], [0.557, 3.45629457197, 19896.88012732740], [0.558, 1.17103892689, 3576.28979344040], [0.574, 5.19235074140, 104.05598206510], [0.560, 3.57141429379, 5333.90024102160], [0.555, 0.18349908409, 512.42548970720], [0.571, 0.83070148820, 1570.91364801910], [0.632, 3.67893818442, 1065.01100448170], [0.744, 2.33083237537, 620.25356634100], [0.540, 5.15775909675, 1751.53953141600], [0.592, 3.07238123875, 1446.62324515000], [0.537, 1.52803865425, 8094.52168583260], [0.550, 5.50701003577, 1432.39615114840], [0.546, 2.34388967045, 949.22379307960], [0.534, 3.04076654796, 7.16173111060], [0.619, 6.07865159203, 46.47042291600], [0.562, 0.96641974928, 1438.02522544090], [0.531, 1.06695547390, 100.17201291180], [0.599, 3.59295739143, 1144.31545714310], [0.526, 3.51641923371, 0.75075952540], [0.564, 0.72677136494, 1059.22187149480], [0.537, 5.72603965787, 513.22863885930], [0.630, 2.31183143900, 2729.45619916380], [0.530, 4.99510636441, 9264.10993724120], [0.649, 0.95666735852, 920.86443331850], [0.547, 1.18801926149, 11506.76976979360], [0.516, 3.28562070858, 734.91330568530], [0.567, 5.13926871155, 288.08069400530], [0.538, 0.28159637680, 153.49535039770], [0.718, 0.48326672359, 842.15068148810], [0.526, 4.39778401928, 546.15329132990], [0.695, 2.44235086902, 657.16276170140], [0.697, 4.99042365686, 12.53017297220], [0.519, 6.27847163164, 59.80374504030], [0.504, 2.58550284000, 5378.66178416220], [0.496, 2.43659402827, 990.22940591440], [0.617, 5.73284985700, 745.43774108740], [0.519, 3.10157097770, 9161.01716302260], [0.654, 1.31181453784, 878.32616366560], [0.619, 3.71554817226, 2090.30967237520], [0.500, 4.28937439066, 5216.58037280140], [0.621, 3.98893673383, 409.92341631960], [0.685, 1.95310431695, 3156.80514956520], [0.552, 2.81774132958, 344.70304530790], [0.551, 1.91969778405, 113.38771495710], [0.682, 0.87321578326, 6069.77675455340], [0.651, 5.09951064975, 531.33549649730], [0.537, 3.67357440226, 605.95703637020], [0.525, 0.74584814988, 736.83972137830], [0.505, 3.12494814307, 1475.68518032670], [0.622, 3.00013939606, 2349.32843120380], [0.644, 3.00156986335, 298.23262239190], [0.564, 3.81960833949, 1059.54198888360], [0.468, 3.50348554992, 4841.85727206680], [0.491, 1.28535573072, 247.23934538180], [0.458, 0.45056377876, 1065.60170531270], [0.543, 2.39704308320, 9690.70812811720], [0.459, 5.29870259698, 1474.93442080130], [0.483, 3.63649121244, 131.40394986990], [0.632, 2.75028345792, 334.55111692130], [0.483, 0.42979609421, 735.82832942200], [0.540, 0.54791737146, 51646.11531805379], [0.531, 0.30026207053, 912.78767847120], [0.449, 3.02583472996, 5901.23920225600], [0.544, 2.98747240952, 4223.30062675520], [0.557, 5.83542572008, 9676.48103411560], [0.501, 0.03408180117, 1080.72257119160], [0.517, 4.40400852026, 2545.36205125440], [0.481, 3.63292807076, 5584.84733259940], [0.557, 6.11443978190, 976.00231191280], [0.481, 3.41035583659, 3803.81598288000], [0.622, 2.29597570837, 9999.98645077300], [0.454, 2.88584538455, 1987.21689815660], [0.439, 4.83198101064, 50.40257617910], [0.475, 2.69994471394, 491.81856188770], [0.618, 0.72471290082, 1291.43097372290], [0.503, 0.13449993622, 2015.67108615980], [0.551, 2.13418546604, 1440.99417085750], [0.595, 3.78181802545, 6386.16862421000], [0.434, 2.64411689486, 748.40668650400], [0.592, 0.32587740408, 737.36098624010], [0.490, 2.37988828800, 2225.78878786010], [0.439, 1.33582802018, 995.64603188580], [0.543, 2.05067702505, 906.84978763800], [0.466, 2.43707405011, 3362.99069800240], [0.481, 2.32223226419, 1357.61455258110], [0.566, 0.59740900184, 350.33211960040], [0.429, 2.46287580628, 3914.02230409940], [0.429, 1.01299906509, 4333.50694797460], [0.425, 1.67255823369, 148.07872442630], [0.412, 3.29630633921, 7.32599532190], [0.508, 1.16158524676, 9.56122755560], [0.524, 5.02562926120, 1090.40141882620], [0.409, 5.80053072411, 9146.79006902100], [0.497, 0.01579913593, 1069.67687092770], [0.548, 6.03429743373, 9367.20271145980], [0.433, 5.93688350840, 1688.23351623930], [0.424, 4.18150111530, 550.13783421970], [0.401, 0.11519846139, 970.51624997220], [0.503, 5.28212300854, 668.20846196530], [0.555, 1.00328633255, 141.22580985640], [0.404, 2.48633976473, 519.65665678700], [0.441, 6.06185501734, 25.12978191360], [0.412, 5.87495245826, 6.90109867970], [0.478, 0.71264950607, 1094.80665284130], [0.446, 2.71248183031, 31.49256938900], [0.404, 5.49462012486, 447.93883187840], [0.391, 1.26105612700, 8.07675484730], [0.463, 1.93535321271, 6275.96230299060], [0.507, 3.61089992782, 546.95644048200], [0.402, 5.86200127054, 927.83496796740], [0.481, 6.21043578332, 683.98946464440], [0.483, 5.02142924458, 857.12853501510], [0.444, 0.84873092377, 1371.84164658270], [0.391, 2.81753436573, 5798.14642803740], [0.395, 0.22367886581, 51116.42435295920], [0.378, 6.03765733432, 1268.74887236410], [0.471, 6.24506463249, 946.46729598410], [0.405, 0.57785207581, 107.28555991260], [0.371, 6.15750793727, 509.24409596950], [0.370, 4.90330687618, 1436.54075273260], [0.448, 4.76565111029, 284.14854074220], [0.474, 0.71146352197, 2108.46891963990], [0.509, 5.53328407404, 1128.53445446400], ], # R1 [ [1271801.596, 2.64937511122, 529.69096509460], [61661.771, 3.00076251018, 1059.38193018920], [53443.592, 3.89717644226, 522.57741809380], [31185.167, 4.88276663526, 536.80451209540], [41390.257, 0.00000000000, 0.00000000000], [11847.190, 2.41329588176, 419.48464387520], [9166.360, 4.75979408587, 7.11354700080], [3175.763, 2.79297987071, 103.09277421860], [3203.446, 5.21083285476, 735.87651353180], [3403.605, 3.34688537997, 1589.07289528380], [2600.003, 3.63435101622, 206.18554843720], [2412.207, 1.46947308304, 426.59819087600], [2806.064, 3.74223693580, 515.46387109300], [2676.575, 4.33052878699, 1052.26838318840], [2100.507, 3.92762682306, 639.89728631400], [1646.182, 5.30953510947, 1066.49547719000], [1641.257, 4.41628669824, 625.67019231240], [1049.866, 3.16113622955, 213.29909543800], [1024.802, 2.55432643018, 412.37109687440], [740.996, 2.17094630558, 1162.47470440780], [806.404, 2.67750801380, 632.78373931320], [676.928, 6.24953479790, 838.96928775040], [468.895, 4.70973463481, 543.91805909620], [444.683, 0.40281181402, 323.50541665740], [567.076, 4.57655414712, 742.99006053260], [415.894, 5.36836018215, 728.76296653100], [484.689, 2.46882793186, 949.17560896980], [337.555, 3.16781951120, 956.28915597060], [401.738, 4.60528841541, 309.27832265580], [347.378, 4.68148808722, 14.22709400160], [260.753, 5.34290306101, 846.08283475120], [220.084, 4.84210964963, 1368.66025284500], [203.217, 5.59995425432, 1155.36115740700], [246.603, 3.92313823537, 942.06206196900], [183.504, 4.26526769703, 95.97922721780], [180.134, 4.40165491159, 532.87235883230], [197.134, 3.70551461394, 2118.76386037840], [196.005, 3.75877587139, 199.07200143640], [200.190, 4.43888814441, 1045.15483618760], [170.225, 4.84647488867, 526.50957135690], [146.335, 6.12958365535, 533.62311835770], [133.483, 1.32245735855, 110.20632121940], [132.076, 4.51187950811, 525.75881183150], [123.851, 2.04290370696, 1478.86657406440], [121.861, 4.40581788491, 1169.58825140860], [115.313, 4.46741278152, 1581.95934828300], [98.527, 5.72833991647, 1596.18644228460], [91.608, 4.52965592121, 1685.05212250160], [110.638, 3.62504147403, 1272.68102562720], [80.536, 4.11311699583, 1258.45393162560], [79.552, 2.71898473954, 1692.16566950240], [100.164, 5.24693885858, 1265.56747862640], [77.854, 5.56722651753, 1471.75302706360], [85.766, 0.07906707372, 831.85574074960], [82.132, 3.80763015979, 508.35032409220], [55.319, 0.35180851191, 316.39186965660], [52.338, 5.53074272117, 433.71173787680], [55.769, 4.75141241141, 302.16477565500], [50.597, 4.85603161770, 1375.77379984580], [43.554, 4.94441642712, 1361.54670584420], [42.172, 1.22404278447, 853.19638175200], [37.695, 4.26767539209, 2001.44399215820], [49.395, 4.01422828967, 220.41264243880], [38.263, 5.33025236797, 1788.14489672020], [35.611, 1.76205571128, 1795.25844372100], [36.296, 3.84995284393, 1574.84580128220], [29.332, 5.16619257786, 3.93215326310], [25.180, 4.33777727362, 519.39602435610], [24.778, 2.72907897410, 405.25754987360], [27.025, 6.09669947903, 1148.24761040620], [22.604, 0.19173890105, 380.12776796000], [20.499, 4.32881495378, 3.18139373770], [19.925, 4.62967500111, 1677.93857550080], [19.528, 5.10596326232, 1073.60902419080], [18.427, 3.76522178300, 1485.98012106520], [18.869, 5.05259402407, 2104.53676637680], [17.031, 4.01843356903, 2317.83586181480], [16.671, 5.42931676507, 88.86568021700], [15.337, 2.92700926091, 2008.55753915900], [14.499, 3.63339836845, 628.85158605010], [14.575, 5.50832843322, 721.64941953020], [13.728, 4.87623389735, 629.60234557550], [18.481, 6.03032762264, 330.61896365820], [13.499, 1.38539534821, 518.64526483070], [15.740, 2.93038271684, 1905.46476494040], [12.459, 1.58587053146, 2111.65031337760], [12.272, 3.37671053917, 635.96513305090], [11.836, 4.08486322993, 2648.45482547300], [11.166, 4.62623267608, 636.71589257630], [14.348, 2.74177797727, 2221.85663459700], [11.221, 3.55311861205, 1891.23767093880], [13.121, 5.83845065644, 1464.63948006280], [11.351, 2.57606886230, 511.53171782990], [10.487, 0.49850799841, 453.42489381900], [9.728, 4.38837468002, 1994.33044515740], [10.131, 2.76432756215, 423.41679713830], [8.620, 5.16374493158, 1056.20053645150], [8.952, 4.79407952752, 2420.92863603340], [8.126, 3.72977106954, 2634.22773147140], [8.078, 1.29246272894, 2428.04218303420], [8.867, 1.85684753622, 750.10360753340], [8.912, 4.80973516711, 1062.56332392690], [8.552, 4.53818617984, 21.34064100240], [9.468, 4.33472161983, 1802.37199072180], [6.904, 5.96616555709, 540.73666535850], [7.293, 4.97763580465, 1699.27921650320], [7.083, 4.99096728816, 1055.44977692610], [7.226, 4.97823884383, 1898.35121793960], [6.464, 1.39173466879, 422.66603761290], [6.214, 4.46490158256, 551.03160609700], [6.794, 2.90878831415, 2324.94940881560], [6.173, 3.65617162985, 621.73803904930], [6.243, 6.13691919694, 2125.87740737920], [5.936, 2.58312235120, 569.04784100980], [6.504, 4.56908431757, 1038.04128918680], [7.305, 3.02062127734, 416.30325013750], [6.598, 5.55348005731, 1781.03134971940], [5.133, 6.21646917980, 963.40270297140], [5.876, 4.23153077453, 539.98590583310], [5.119, 0.06942832171, 1063.31408345230], [5.460, 4.91084384602, 835.03713448730], [4.989, 1.35153694680, 1382.88734684660], [5.224, 0.18468411116, 117.31986822020], [6.187, 3.87193497099, 191.95845443560], [4.681, 4.61057119508, 643.82943957710], [4.627, 3.34644534691, 2207.62954059540], [4.526, 4.07729737127, 2310.72231481400], [4.718, 4.55578336947, 2737.32050569000], [4.471, 1.47603161897, 408.43894361130], [4.073, 1.13014903180, 415.55249061210], [5.476, 5.63198569698, 618.55664531160], [4.034, 4.09631702747, 430.53034413910], [4.304, 4.60536378943, 647.01083331480], [3.765, 3.42751259825, 2950.61960112800], [4.559, 4.23723998745, 227.52618943960], [3.695, 1.03127824978, 2744.43405269080], [3.667, 4.12268925541, 440.82528487760], [3.677, 2.19480200527, 534.35683154060], [3.818, 1.14800596289, 74.78159856730], [4.221, 2.37721579949, 2538.24850425360], [3.488, 5.33792561596, 458.84151979040], [3.437, 4.26164443643, 10.29494073850], [4.394, 0.18808423412, 824.74219374880], [3.339, 4.85708402591, 295.05122865420], [3.329, 5.50043586719, 739.80866679490], [3.623, 4.64011531952, 2214.74308759620], [3.185, 2.69708590442, 561.93429400900], [3.421, 3.38512615384, 149.56319713460], [3.442, 4.34217280083, 305.34616939270], [3.580, 5.29481665335, 2097.42321937600], [3.401, 2.74761862893, 2641.34127847220], [2.901, 0.91012525424, 984.60033162190], [3.566, 1.63400343968, 525.02509864860], [2.869, 1.31799241974, 611.44309831080], [2.635, 5.25517910535, 532.13864564940], [2.683, 4.24641945773, 3053.71237534660], [2.614, 3.17862099921, 527.24328453980], [2.251, 4.21598247360, 739.05790726950], [2.268, 5.52248110560, 524.27433912320], [2.372, 4.19741177512, 217.23124870110], [2.623, 5.82647427958, 732.69511979410], [2.666, 3.92538056951, 210.11770170030], [2.036, 4.84043420813, 1049.08698945070], [2.441, 2.63840901843, 760.25553592000], [2.095, 5.76269812349, 529.64278098480], [2.021, 3.81308146017, 2627.11418447060], [2.089, 4.18463193132, 945.99421523210], [2.305, 1.61220665690, 604.47256366190], [1.969, 5.37427735384, 142.44965013380], [1.923, 4.75088270631, 535.10759106600], [1.955, 5.49000238006, 1439.50969814920], [1.877, 3.26978877187, 3267.01147078460], [2.286, 2.93885172004, 76.26607127560], [2.074, 5.85386852879, 532.61172640140], [2.121, 3.92430797099, 2435.15573003500], [1.807, 3.17208959472, 2524.02141025200], [1.712, 4.02986641257, 731.94436026870], [2.119, 0.41049593984, 1279.79457262800], [1.660, 2.34370903423, 528.72775724810], [1.655, 0.78809717175, 3060.82592234740], [1.729, 4.26127896267, 724.83081326790], [2.060, 5.04785330873, 2413.81508903260], [2.095, 2.67732367556, 529.73914920440], [1.933, 2.49162437046, 2957.73314812880], [1.898, 2.71948262975, 952.35700270750], [1.634, 2.98113068812, 945.24345570670], [1.582, 5.84373095005, 547.85021235930], [1.662, 0.27359627181, 454.90936652730], [1.595, 1.18530167095, 38.13303563780], [1.550, 0.64264572959, 312.45971639350], [1.525, 4.08789824989, 1158.54255114470], [1.542, 1.12520322326, 1021.24889455140], [1.539, 0.37324921979, 319.57326339430], [1.628, 5.24285773388, 1354.43315884340], [1.897, 3.79973291113, 953.10776223290], [1.440, 4.37872256685, 3178.14579056760], [1.439, 4.26513521887, 526.77020378780], [1.557, 5.43779802371, 81.75213321620], [1.656, 6.09667089740, 530.65417294110], [1.548, 3.48799710267, 934.94851496820], [1.772, 5.82549274759, 909.81873305460], [1.615, 1.45018725033, 902.70518605380], [1.387, 2.52840497309, 530.44172462000], [1.574, 1.89565809136, 437.64389113990], [1.459, 3.32546061506, 1041.22268292450], [1.377, 0.10015418633, 490.33408917940], [1.460, 4.00706825185, 3370.10424500320], [1.605, 4.27993020192, 2531.13495725280], [1.707, 6.28253681644, 18.15924726470], [1.802, 2.23019296374, 2854.64037391020], [1.390, 3.76737324192, 1165.65609814550], [1.498, 0.17285954362, 1141.13406340540], [1.401, 4.81225317549, 1251.34038462480], [1.244, 2.83383980283, 124.43341522100], [1.320, 5.80675430384, 387.24131496080], [1.329, 0.88314574243, 916.93228005540], [1.558, 6.17808619637, 983.11585891360], [1.243, 0.29239666059, 597.35901666110], [1.541, 3.51095241498, 2751.54759969160], [1.482, 0.83066678204, 529.16970023280], [1.149, 3.91142023857, 99.91138048090], [1.114, 3.53339637290, 483.22054217860], [1.195, 4.16301075999, 203.00415469950], [1.100, 1.74769285223, 497.44763618020], [1.458, 5.19315120878, 1592.25428902150], [1.123, 1.45270581179, 533.88375078860], [1.078, 5.23991792940, 1159.29331067010], [1.083, 3.57026506855, 2943.50605412720], [1.072, 0.07132659992, 1070.42763045310], [1.037, 5.48955598976, 1585.89150154610], [1.343, 0.29600445633, 860.30992875280], [1.361, 3.46603373194, 107.02492748170], [1.061, 2.44580706826, 1048.33622992530], [1.002, 5.55216117410, 337.73251065900], [0.981, 3.15500987023, 70.84944530420], [1.007, 4.11504050436, 501.23677709140], [0.965, 5.63719524421, 1603.29998928540], [1.083, 4.88373909810, 1166.40685767090], [0.953, 2.83352026342, 3583.40334044120], [1.060, 3.18542176646, 447.79581952650], [1.136, 2.26568590950, 525.49817940060], [1.191, 2.25249961404, 106.27416795630], [0.884, 4.69777781327, 960.22130923370], [1.165, 1.56030440737, 630.33605875840], [0.947, 0.50856414717, 842.90144101350], [1.011, 0.30814674949, 1593.00504854690], [0.924, 2.31939900786, 327.43756992050], [0.896, 0.22222521202, 746.92221379570], [1.078, 4.78329116086, 2730.20695868920], [0.938, 5.42471506763, 1585.14074202070], [0.923, 4.44469169065, 9676.48103411560], [0.894, 0.26940821870, 2655.56837247380], [1.131, 5.46382510304, 224.34479570190], [0.808, 0.48295590141, 3377.21779200400], [0.809, 4.14122746067, 114.13847448250], [0.864, 1.83217006136, 4.66586644600], [1.106, 2.60444312553, 209.36694217490], [0.790, 0.11493626208, 460.53844081980], [0.799, 1.60426497590, 5223.69391980220], [0.933, 0.30976125598, 685.47393735270], [1.053, 5.23433104008, 842.15068148810], [0.846, 3.02878393490, 5746.27133789600], [0.799, 2.08457026425, 77734.01845962799], [0.820, 0.99821486743, 373.01422095920], [0.892, 5.36446426391, 827.92358748650], [0.821, 3.53889274951, 498.67147645760], [0.741, 1.32379374647, 530.21222995640], [0.790, 2.88034567513, 938.12990870590], [0.842, 3.39449778904, 484.44438245600], [0.785, 0.57841470897, 850.01498801430], [0.759, 3.82014112009, 6283.07584999140], [0.954, 2.94534072982, 462.02291352810], [0.767, 3.33725133157, 99.16062095550], [0.810, 4.69425300466, 2228.97018159780], [0.700, 1.72050221502, 775.23338944700], [0.764, 4.91747674296, 1670.82502850000], [0.724, 6.08692841992, 2281.23049651060], [0.711, 4.82250918143, 11.77941344680], [0.692, 2.63705354662, 6.59228213900], [0.771, 3.87410612014, 9690.70812811720], [0.906, 2.47189948442, 3274.12501778540], [0.781, 1.25357484582, 202.25339517410], [0.757, 3.78079814332, 2818.03500860600], [0.756, 4.28312053897, 2803.80791460440], [0.663, 5.27704405712, 4532.57894941100], [0.759, 5.45358686570, 9683.59458111640], [0.698, 5.43712520216, 565.11568774670], [0.709, 3.71117647887, 3686.49611465980], [0.677, 4.27891183416, 25028.52121138500], [0.643, 1.40239510103, 9161.01716302260], [0.656, 0.60909845504, 835.78789401270], [0.635, 5.75373871128, 429.77958461370], [0.702, 6.10412979847, 4635.67172362960], [0.627, 3.03666956129, 2840.41327990860], [0.802, 4.18688054701, 5753.38488489680], [0.838, 4.51386507097, 1069.67687092770], [0.633, 4.37183361444, 5.41662597140], [0.652, 5.79409889124, 1061.82961074400], [0.638, 2.18896270346, 313.21047591890], [0.827, 5.94231186039, 1457.52593306200], [0.678, 2.45013730979, 5760.49843189760], [0.814, 4.89578791170, 1567.73225428140], [0.624, 0.61631100566, 1176.70179840940], [0.600, 3.20918322285, 1098.73880610440], [0.717, 1.82349064490, 3171.03224356680], [0.651, 4.14419317491, 2847.52682690940], [0.629, 1.75272560843, 92.04707395470], [0.626, 3.53146082217, 3067.93946934820], [0.667, 4.22974611158, 4539.69249641180], [0.565, 0.99416346033, 1894.41906467650], [0.752, 0.46063700150, 635.23141986800], [0.622, 1.98136818407, 25565.32572348040], [0.614, 2.48275371627, 25551.09862947879], [0.560, 1.40733893388, 446.31134681820], [0.558, 4.37217796469, 1057.89745748090], [0.628, 4.65037810102, 6275.96230299060], [0.659, 2.41470950463, 195.13984817330], [0.616, 2.08837621877, 10.03430830760], [0.692, 3.13229025530, 7.63481186260], [0.685, 4.18539472904, 46.47042291600], [0.624, 0.02693303471, 1493.09366806600], [0.594, 2.13375704438, 121.25202148330], [0.508, 2.13584300710, 1.69692102940], [0.674, 1.47570122611, 4694.00295470760], [0.559, 4.48852017557, 531.17543780290], [0.640, 3.10239233469, 11.04570026390], [0.496, 1.29000001439, 927.83496796740], [0.587, 3.30651435298, 600.54041039880], [0.582, 0.44540948860, 113.38771495710], [0.492, 4.83275232000, 9492.14631500480], [0.549, 4.34579166146, 3046.59882834580], [0.576, 1.22846846364, 1514.29129671650], [0.593, 5.86079640612, 524.06189080210], [0.510, 2.62557031270, 529.85102378900], [0.489, 6.26855707323, 3693.60966166060], [0.480, 0.30754294369, 528.94020556920], [0.582, 3.51934668795, 1056.93424963440], [0.493, 5.52699906925, 512.28247735530], [0.481, 2.99681040149, 9153.90361602180], [0.562, 3.73437025868, 2015.67108615980], [0.458, 3.86646994292, 11.30633269480], [0.457, 1.80238019931, 3281.23856478620], [0.453, 6.17995938655, 1059.33374607940], [0.551, 0.13794958618, 1912.57831194120], [0.446, 5.53828660924, 2332.06295581640], [0.444, 5.06219342598, 7.86430652620], [0.461, 0.16951411708, 26087.90314157420], [0.439, 4.14986379679, 1151.42900414390], [0.614, 5.42289673768, 2090.30967237520], [0.488, 3.71681959056, 447.93883187840], [0.592, 2.91424148255, 8624.21265092720], [0.433, 2.55336268329, 1064.04779663520], [0.449, 5.24955106938, 10213.28554621100], [0.510, 5.81591864532, 529.53090640020], [0.435, 5.34355963629, 560.71045373160], [0.449, 0.72330388784, 2758.66114669240], [0.430, 0.94519103478, 6.36278747540], [0.563, 6.19175228344, 1884.12412393800], [0.443, 3.39246520261, 1152.17976366930], [0.430, 1.28652623263, 505.31194270640], [0.422, 5.12631540623, 944.98282327580], [0.464, 2.90444584145, 398.14400287280], [0.410, 1.24248975309, 5069.38346150640], [0.411, 2.95117124177, 4326.39340097380], [0.418, 5.15499986314, 1173.52040467170], [0.412, 2.98125446330, 554.06998748280], [0.403, 0.34381388674, 32.24332891440], [0.402, 5.88926765351, 1570.91364801910], [0.505, 1.49028912471, 3782.47534187760], [0.447, 0.03952029309, 245.54242435240], [0.453, 3.09458004153, 1059.43011429900], [0.411, 3.21727542472, 1475.68518032670], [0.426, 3.12237794195, 12566.15169998280], [0.434, 3.59362426939, 3259.89792378380], [0.398, 4.91510709622, 4120.20785253660], [0.399, 4.67075122011, 234.63973644040], [0.386, 4.81320787761, 970.51624997220], [0.427, 3.21176085113, 977.48678462110], [0.411, 4.31566962034, 757.21715453420], [0.392, 1.86527946688, 885.43971066640], [0.416, 3.81408093105, 3156.80514956520], ], # R2 [ [79644.833, 1.35865896596, 529.69096509460], [8251.618, 5.77773935444, 522.57741809380], [7029.864, 3.27476965833, 536.80451209540], [5314.006, 1.83835109712, 1059.38193018920], [1860.833, 2.97682139367, 7.11354700080], [836.267, 4.19889881718, 419.48464387520], [964.466, 5.48031822015, 515.46387109300], [406.453, 3.78250730354, 1066.49547719000], [426.570, 2.22753101795, 639.89728631400], [377.316, 2.24248352873, 1589.07289528380], [497.920, 3.14159265359, 0.00000000000], [339.043, 6.12690864038, 625.67019231240], [362.943, 5.36761847267, 206.18554843720], [342.048, 6.09922969324, 1052.26838318840], [279.920, 4.26162555827, 412.37109687440], [332.578, 0.00328961161, 426.59819087600], [229.777, 0.70530766213, 735.87651353180], [200.783, 3.06850623368, 543.91805909620], [199.807, 4.42884165317, 103.09277421860], [257.290, 0.96295364983, 632.78373931320], [138.606, 2.93235671606, 14.22709400160], [113.535, 0.78713911289, 728.76296653100], [86.025, 5.14434751994, 323.50541665740], [94.565, 1.70498041073, 838.96928775040], [83.469, 0.05834873484, 309.27832265580], [75.198, 1.60495195911, 956.28915597060], [70.451, 1.50988357484, 213.29909543800], [80.328, 2.98122361797, 742.99006053260], [56.203, 0.95534810533, 1162.47470440780], [61.649, 6.10137889854, 1045.15483618760], [66.572, 5.47307178077, 199.07200143640], [50.057, 2.72063162317, 532.87235883230], [51.904, 5.58435625607, 942.06206196900], [39.833, 5.94566506227, 95.97922721780], [44.548, 5.52445621411, 508.35032409220], [44.282, 0.27118152557, 526.50957135690], [29.944, 0.93641735919, 1155.36115740700], [28.412, 2.87835720211, 525.75881183150], [26.330, 4.26891877269, 1596.18644228460], [27.039, 2.80607741398, 1169.58825140860], [27.477, 2.64841266238, 2118.76386037840], [22.705, 0.17830004133, 302.16477565500], [29.347, 1.78589692350, 831.85574074960], [19.991, 0.04328951895, 949.17560896980], [19.906, 1.16072627347, 533.62311835770], [21.714, 1.88820231818, 1272.68102562720], [17.581, 4.14974757919, 846.08283475120], [17.085, 5.89188996975, 1258.45393162560], [21.407, 4.35468497204, 316.39186965660], [21.295, 0.54429472455, 1265.56747862640], [19.859, 0.06453825800, 1581.95934828300], [17.025, 0.53383755278, 1368.66025284500], [12.804, 3.90044242142, 433.71173787680], [13.072, 0.79468040717, 110.20632121940], [11.945, 0.40671403646, 1361.54670584420], [11.695, 4.44394618065, 405.25754987360], [11.979, 2.22872778682, 220.41264243880], [9.633, 6.01002272123, 853.19638175200], [10.163, 0.99504635158, 1471.75302706360], [8.977, 1.60328709409, 1692.16566950240], [8.701, 3.52167876799, 1073.60902419080], [8.314, 5.60169732564, 1574.84580128220], [8.958, 6.26708748901, 519.39602435610], [7.828, 0.65241611799, 1478.86657406440], [7.833, 0.17920601344, 1685.05212250160], [7.451, 0.88421084942, 88.86568021700], [7.320, 0.89341249264, 721.64941953020], [9.135, 1.51210840939, 1148.24761040620], [6.110, 2.50080005128, 3.18139373770], [7.037, 4.44127496638, 330.61896365820], [5.163, 2.79219166952, 21.34064100240], [5.079, 2.97991736844, 1375.77379984580], [4.930, 0.04683167622, 1677.93857550080], [4.664, 2.28007273876, 1485.98012106520], [4.692, 0.86220230505, 3.93215326310], [5.307, 0.85008578245, 1788.14489672020], [4.239, 0.40758287124, 629.60234557550], [4.230, 1.61046658091, 635.96513305090], [3.627, 2.71151441113, 551.03160609700], [3.314, 0.55067236587, 1795.25844372100], [4.409, 1.28127751050, 1464.63948006280], [3.270, 1.18744032691, 1905.46476494040], [3.226, 6.18716071251, 1038.04128918680], [3.103, 6.22971614425, 2001.44399215820], [3.410, 2.44624067925, 539.98590583310], [3.174, 5.54870592599, 191.95845443560], [2.590, 3.24430559059, 1062.56332392690], [2.614, 0.55149554149, 2104.53676637680], [2.174, 5.32613824409, 1891.23767093880], [2.659, 4.82459974220, 416.30325013750], [2.187, 1.71707514653, 628.85158605010], [2.263, 6.19233486371, 1994.33044515740], [2.328, 4.28236795066, 963.40270297140], [2.579, 0.03256542251, 1898.35121793960], [2.077, 3.32602157426, 1699.27921650320], [2.529, 2.39697505835, 227.52618943960], [2.468, 0.06551346218, 750.10360753340], [1.989, 0.29206371261, 636.71589257630], [1.927, 0.32286661566, 295.05122865420], [1.904, 3.43534792123, 647.01083331480], [1.940, 0.29170673525, 2111.65031337760], [1.880, 3.14403615586, 611.44309831080], [2.324, 1.94960720763, 824.74219374880], [1.854, 4.71794950485, 2125.87740737920], [2.547, 1.23908353090, 2221.85663459700], [1.814, 1.60250861074, 2008.55753915900], [1.611, 5.83466560322, 422.66603761290], [1.667, 2.32455940876, 440.82528487760], [1.622, 0.36650974375, 1056.20053645150], [1.624, 2.42139677881, 10.29494073850], [1.622, 3.51892791175, 1055.44977692610], [1.606, 5.76205763975, 117.31986822020], [1.646, 5.88662636573, 2317.83586181480], [2.026, 4.61781314145, 423.41679713830], [2.098, 1.04559231028, 1781.03134971940], [1.868, 1.12487729469, 618.55664531160], [1.885, 2.78775930564, 1802.37199072180], [1.445, 0.08308050305, 1382.88734684660], [1.797, 3.00776822706, 2648.45482547300], [1.422, 0.17649746278, 2420.92863603340], [1.129, 1.59030291320, 380.12776796000], [1.126, 4.19989673600, 547.85021235930], [1.186, 5.98943062173, 2310.72231481400], [1.108, 4.22655117757, 934.94851496820], [1.259, 1.19687222266, 1063.31408345230], [1.072, 3.86169004168, 1603.29998928540], [0.946, 5.59968097387, 99.91138048090], [0.937, 1.03083276760, 81.75213321620], [0.938, 6.18136092771, 945.99421523210], [0.908, 2.54355964041, 6283.07584999140], [0.874, 5.21903196047, 2207.62954059540], [0.874, 6.01240284465, 511.53171782990], [1.188, 0.75698357968, 2097.42321937600], [0.789, 3.91035208173, 10213.28554621100], [1.000, 1.34667100304, 732.69511979410], [0.952, 1.55355777420, 2324.94940881560], [0.811, 5.00475553271, 319.57326339430], [0.763, 3.98527559630, 337.73251065900], [0.880, 1.14789972199, 952.35700270750], [0.780, 4.69463316930, 5746.27133789600], [0.910, 0.08774541571, 2737.32050569000], [0.773, 0.77131695762, 5760.49843189760], [0.764, 6.11686539353, 9676.48103411560], [0.758, 2.19350719860, 9690.70812811720], [0.671, 1.19532387143, 124.43341522100], [0.661, 5.99578306627, 501.23677709140], [0.729, 0.65312263578, 2538.24850425360], [0.825, 2.70770030205, 3370.10424500320], [0.670, 5.44169923277, 107.02492748170], [0.739, 1.14609907817, 2641.34127847220], [0.866, 3.02831268213, 3046.59882834580], [0.718, 4.83684196454, 860.30992875280], [0.813, 6.01229270247, 2214.74308759620], [0.746, 1.12371143332, 739.80866679490], [0.741, 5.93171662010, 2634.22773147140], [0.667, 0.89885058003, 106.27416795630], [0.573, 2.42701822581, 739.05790726950], [0.734, 0.72837704619, 1354.43315884340], [0.662, 2.21768976390, 2015.67108615980], [0.782, 2.52401202862, 3679.38256765900], [0.779, 2.38608991574, 3267.01147078460], [0.553, 1.85211127676, 453.42489381900], [0.701, 4.23431087374, 9683.59458111640], [0.571, 2.98435419019, 1262.38608488870], [0.621, 1.24462887440, 3803.81598288000], [0.563, 5.99845316446, 1049.08698945070], [0.538, 4.92334194042, 447.79581952650], [0.534, 0.99911551571, 462.02291352810], [0.541, 6.19275150397, 1987.21689815660], [0.511, 3.28553278370, 4.66586644600], [0.539, 5.33214565622, 2751.54759969160], [0.651, 5.12199308959, 3156.80514956520], [0.483, 3.03782387056, 3281.23856478620], [0.476, 2.17592053936, 149.56319713460], [0.510, 5.35664230912, 9.56122755560], [0.490, 1.57324553106, 1251.34038462480], [0.467, 5.92343423840, 203.00415469950], [0.528, 5.81786945766, 2627.11418447060], [0.447, 3.51498961805, 18.15924726470], [0.429, 0.16627197188, 74.78159856730], [0.497, 0.30985248432, 2428.04218303420], [0.516, 3.89424540015, 2516.90786325120], [0.519, 2.43126348834, 3686.49611465980], [0.404, 2.77840802846, 7.16173111060], [0.533, 4.77083438961, 3473.19701922180], [0.515, 3.54549816613, 3178.14579056760], [0.533, 5.61415688189, 2524.02141025200], [0.458, 4.91616403047, 3067.93946934820], [0.400, 3.13887720912, 540.73666535850], [0.378, 0.86122450940, 525.02509864860], ], # R3 [ [3519.257, 6.05800633846, 529.69096509460], [1073.239, 1.67321345760, 536.80451209540], [915.666, 1.41329676116, 522.57741809380], [341.593, 0.52296542656, 1059.38193018920], [254.893, 1.19625473533, 7.11354700080], [221.512, 0.95225226237, 515.46387109300], [69.078, 2.26885282314, 1066.49547719000], [89.729, 3.14159265359, 0.00000000000], [57.827, 1.41389745339, 543.91805909620], [57.653, 0.52580117593, 639.89728631400], [51.079, 5.98016364677, 412.37109687440], [46.935, 1.57864237959, 625.67019231240], [42.824, 6.11689609099, 419.48464387520], [37.477, 1.18262762330, 14.22709400160], [33.816, 1.66671706951, 1052.26838318840], [31.195, 1.04290245896, 1589.07289528380], [30.023, 4.63236245032, 426.59819087600], [33.531, 0.84784977903, 206.18554843720], [20.804, 2.50071243814, 728.76296653100], [14.466, 0.96040197071, 508.35032409220], [12.969, 1.50233788550, 1045.15483618760], [11.654, 3.55513510121, 323.50541665740], [12.319, 2.60952614503, 735.87651353180], [15.023, 0.89136998434, 199.07200143640], [11.160, 1.79041437555, 309.27832265580], [10.554, 6.27845112678, 956.28915597060], [9.812, 6.26016859519, 103.09277421860], [9.301, 3.45126812476, 838.96928775040], [6.672, 1.87004905364, 302.16477565500], [7.442, 1.28047007623, 742.99006053260], [7.178, 0.92022189637, 942.06206196900], [5.577, 1.37980792905, 95.97922721780], [6.834, 3.45228722967, 831.85574074960], [4.632, 2.82934545414, 1596.18644228460], [3.969, 1.21290005054, 1169.58825140860], [3.869, 5.99495313698, 213.29909543800], [3.551, 6.10714791535, 405.25754987360], [2.943, 2.32831075458, 1155.36115740700], [2.442, 1.86965213405, 532.87235883230], [2.410, 0.42627205128, 220.41264243880], [2.289, 1.94941487274, 1073.60902419080], [2.274, 0.09211517505, 632.78373931320], [2.189, 1.58907745204, 2118.76386037840], [2.387, 5.97080671477, 1162.47470440780], [2.104, 1.06751462671, 21.34064100240], [2.128, 1.51119399925, 1258.45393162560], [2.491, 0.35125020737, 1272.68102562720], [2.006, 5.94487388360, 110.20632121940], [1.980, 2.54989377864, 88.86568021700], [2.040, 2.16463966964, 433.71173787680], [1.955, 2.70341589777, 721.64941953020], [1.670, 4.46255717328, 853.19638175200], [1.910, 2.25964760758, 1361.54670584420], [1.710, 1.98372066321, 525.75881183150], [1.520, 0.11641358425, 949.17560896980], [2.003, 3.16520599208, 1148.24761040620], [1.710, 2.70850417287, 330.61896365820], [1.629, 0.47376028854, 526.50957135690], [1.229, 3.01987279595, 963.40270297140], [1.671, 0.44352103086, 533.62311835770], [1.207, 1.15774089269, 1574.84580128220], [1.146, 2.54505851138, 846.08283475120], [1.355, 1.17462112647, 1038.04128918680], [1.001, 2.70272799283, 519.39602435610], [1.372, 0.67467128629, 551.03160609700], [0.983, 4.17198081351, 2627.11418447060], [1.084, 1.07011164067, 227.52618943960], [0.892, 2.92543286761, 1368.66025284500], [0.823, 4.86559196955, 611.44309831080], [1.136, 1.78981738432, 1581.95934828300], [0.897, 4.91073630270, 1670.82502850000], [0.908, 3.68804047330, 824.74219374880], [0.789, 3.23380893250, 2125.87740737920], [0.771, 2.39070707004, 2317.83586181480], [0.891, 0.59692950778, 539.98590583310], [0.876, 4.52127091462, 750.10360753340], [0.802, 0.20759322884, 1141.13406340540], [0.850, 0.94145487094, 191.95845443560], [0.762, 2.25149516048, 2538.24850425360], [0.694, 0.67080348659, 440.82528487760], [0.741, 5.79934203525, 1485.98012106520], [0.643, 2.48127580335, 1265.56747862640], [0.575, 6.13756590872, 1279.79457262800], [0.636, 5.51001645505, 2413.81508903260], [0.636, 4.40777238491, 1382.88734684660], [0.555, 2.18233983981, 1062.56332392690], [0.564, 1.92775967119, 2634.22773147140], [0.531, 2.04824376019, 295.05122865420], [0.541, 2.32424368689, 1471.75302706360], [0.697, 2.27179476322, 1699.27921650320], [0.546, 1.95774905730, 1677.93857550080], [0.465, 4.35550844067, 1692.16566950240], [0.508, 2.50298248836, 2207.62954059540], [0.496, 5.77087043616, 1478.86657406440], [0.440, 5.98661963879, 934.94851496820], [0.424, 2.80194129521, 81.75213321620], [0.406, 3.93940190897, 316.39186965660], [0.506, 0.18719982992, 10.29494073850], ], # R4 [ [128.628, 0.08419309557, 536.80451209540], [113.458, 4.24858855779, 529.69096509460], [82.650, 3.29754909408, 522.57741809380], [37.883, 2.73326611144, 515.46387109300], [26.694, 5.69142588558, 7.11354700080], [17.650, 5.40012536918, 1059.38193018920], [12.612, 6.01560416057, 543.91805909620], [9.287, 0.76813946494, 1066.49547719000], [8.107, 5.68228065707, 14.22709400160], [6.271, 5.12286932534, 639.89728631400], [6.978, 1.42751292055, 412.37109687440], [5.377, 3.33501947275, 625.67019231240], [2.911, 3.40334805052, 1052.26838318840], [2.593, 4.16090412984, 728.76296653100], [2.562, 2.89802035072, 426.59819087600], [2.268, 6.22195938856, 1589.07289528380], [2.114, 3.11758855774, 1045.15483618760], [1.673, 2.81399290364, 206.18554843720], [1.805, 2.60030006919, 199.07200143640], [1.823, 1.89432426038, 419.48464387520], [1.522, 1.33432648232, 1596.18644228460], [1.697, 0.00000000000, 0.00000000000], [1.039, 4.41904942302, 956.28915597060], [1.161, 5.16181311538, 831.85574074960], [0.916, 3.17245716108, 508.35032409220], [0.870, 5.79387813500, 1169.58825140860], [0.916, 1.87129662931, 1148.24761040620], [0.955, 0.66801367802, 1361.54670584420], [0.788, 1.47515450553, 1272.68102562720], [0.966, 5.47457968043, 220.41264243880], [0.788, 2.42252866885, 117.31986822020], [0.712, 0.49655897030, 1073.60902419080], [0.656, 3.53022740783, 302.16477565500], [0.681, 2.84507174340, 191.95845443560], [0.771, 2.19893222018, 942.06206196900], [0.765, 5.31147257700, 551.03160609700], [0.667, 3.72432305249, 88.86568021700], [0.534, 1.83172084748, 647.01083331480], [0.553, 0.85896003802, 330.61896365820], [0.543, 5.26057584439, 21.34064100240], [0.584, 3.82243061802, 618.55664531160], [0.512, 4.44485521707, 110.20632121940], [0.612, 1.59320941864, 3.18139373770], [0.631, 1.83863158533, 10.29494073850], [0.491, 1.52912023181, 405.25754987360], [0.521, 0.24011424451, 433.71173787680], ], # R5 [ [11.188, 4.75249399945, 536.80451209540], [4.255, 5.91516229170, 522.57741809380], [2.079, 5.56781555864, 515.46387109300], [1.908, 4.29659647286, 543.91805909620], [1.875, 3.69357495838, 7.11354700080], [1.590, 5.49312796166, 1066.49547719000], [1.612, 4.13222808529, 1059.38193018920], [1.240, 3.77981722506, 14.22709400160], [1.033, 4.50671820436, 529.69096509460], ], ] """This table contains Jupiter's periodic terms (all of them) from the planetary theory VSOP87 for the radius vector at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in pages 432-434.""" ORBITAL_ELEM = [ [34.351519, 3036.3027748, 0.0002233, 0.000000037], # L [5.202603209, 0.0000001913, 0.0, 0.0], # a [0.04849793, 0.000163225, -0.0000004714, -0.00000000201], # e [1.303267, -0.0054965, 0.00000466, -0.000000002], # i [100.464407, 1.0209774, 0.00040315, 0.000000404], # Omega [14.331207, 1.6126352, 0.00103042, -0.000004464] # pie ] """This table contains the parameters to compute Jupiter's orbital elements for the mean equinox of date. Based in Table 31.A, page 213""" ORBITAL_ELEM_J2000 = [ [34.351519, 3034.9056606, -0.00008501, 0.000000016], # L [1.303267, -0.0019877, 0.0000332, 0.000000097], # i [100.464407, 0.1767232, 0.000907, -0.000007272], # Omega [14.331207, 0.2155209, 0.00072211, -0.000004485] # pie ] """This table contains the parameters to compute Jupiter's orbital elements for the standard equinox J2000.0. Based on Table 31.B, page 215""" class Jupiter(object): """ Class Jupiter models that planet. """ @staticmethod def geometric_heliocentric_position(epoch, tofk5=True): """This method computes the geometric heliocentric position of planet Jupiter for a given epoch, using the VSOP87 theory. :param epoch: Epoch to compute Jupiter position, as an Epoch object :type epoch: :py:class:`Epoch` :param tofk5: Whether or not the small correction to convert to the FK5 system will be applied or not :type tofk5: bool :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2018, 10, 27.0) >>> l, b, r = Jupiter.geometric_heliocentric_position(epoch) >>> print(round(l.to_positive(), 4)) 241.5873 >>> print(round(b, 4)) 0.8216 >>> print(round(r, 5)) 5.36848 """ return geometric_vsop_pos(epoch, VSOP87_L, VSOP87_B, VSOP87_R, tofk5) @staticmethod def apparent_heliocentric_position(epoch): """This method computes the apparent heliocentric position of planet Jupiter for a given epoch, using the VSOP87 theory. :param epoch: Epoch to compute Jupiter position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. """ return apparent_vsop_pos(epoch, VSOP87_L, VSOP87_B, VSOP87_R) @staticmethod def orbital_elements_mean_equinox(epoch): """This method computes the orbital elements of Jupiter for the mean equinox of the date for a given epoch. :param epoch: Epoch to compute orbital elements, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the following six orbital elements: - Mean longitude of the planet (Angle) - Semimajor axis of the orbit (float, astronomical units) - eccentricity of the orbit (float) - inclination on the plane of the ecliptic (Angle) - longitude of the ascending node (Angle) - argument of the perihelion (Angle) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2065, 6, 24.0) >>> l, a, e, i, ome, arg = Jupiter.orbital_elements_mean_equinox(epoch) >>> print(round(l, 6)) 222.433723 >>> print(round(a, 8)) 5.20260333 >>> print(round(e, 7)) 0.0486046 >>> print(round(i, 6)) 1.29967 >>> print(round(ome, 5)) 101.13309 >>> print(round(arg, 6)) -85.745532 """ return orbital_elements(epoch, ORBITAL_ELEM, ORBITAL_ELEM) @staticmethod def orbital_elements_j2000(epoch): """This method computes the orbital elements of Jupiter for the standard equinox J2000.0 for a given epoch. :param epoch: Epoch to compute orbital elements, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the following six orbital elements: - Mean longitude of the planet (Angle) - Semimajor axis of the orbit (float, astronomical units) - eccentricity of the orbit (float) - inclination on the plane of the ecliptic (Angle) - longitude of the ascending node (Angle) - argument of the perihelion (Angle) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2065, 6, 24.0) >>> l, a, e, i, ome, arg = Jupiter.orbital_elements_j2000(epoch) >>> print(round(l, 6)) 221.518802 >>> print(round(a, 8)) 5.20260333 >>> print(round(e, 7)) 0.0486046 >>> print(round(i, 6)) 1.30198 >>> print(round(ome, 5)) 100.58051 >>> print(round(arg, 6)) -86.107875 """ return orbital_elements(epoch, ORBITAL_ELEM, ORBITAL_ELEM_J2000) @staticmethod def geocentric_position(epoch): """This method computes the geocentric position of Jupiter (right ascension and declination) for the given epoch, as well as the elongation angle. :param epoch: Epoch to compute geocentric position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the right ascension, the declination and the elongation angle as Angle objects :rtype: tuple :raises: TypeError if input value is of wrong type. >>> epoch = Epoch(1992, 12, 20.0) >>> ra, dec, elon = Jupiter.geocentric_position(epoch) >>> print(ra.ra_str(n_dec=1)) 12h 47' 9.6'' >>> print(dec.dms_str(n_dec=1)) -3d 41' 55.3'' >>> print(elon.dms_str(n_dec=1)) 76d 2' 26.0'' """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Compute the heliocentric position of Jupiter l, b, r = Jupiter.geometric_heliocentric_position(epoch, tofk5=False) # Compute the heliocentric position of the Earth l0, b0, r0 = Earth.geometric_heliocentric_position(epoch, tofk5=False) # Convert to radians lr = l.rad() br = b.rad() l0r = l0.rad() b0r = b0.rad() # Compute first iteration x = r * cos(br) * cos(lr) - r0 * cos(b0r) * cos(l0r) y = r * cos(br) * sin(lr) - r0 * cos(b0r) * sin(l0r) z = r * sin(br) - r0 * sin(b0r) delta = sqrt(x * x + y * y + z * z) tau = 0.0057755183 * delta # Adjust the epoch for light-time epoch -= tau # Compute again Jupiter coordinates with this correction l, b, r = Jupiter.geometric_heliocentric_position(epoch, tofk5=False) # Compute second iteration lr = l.rad() br = b.rad() x = r * cos(br) * cos(lr) - r0 * cos(b0r) * cos(l0r) y = r * cos(br) * sin(lr) - r0 * cos(b0r) * sin(l0r) z = r * sin(br) - r0 * sin(b0r) # Compute longitude and latitude lamb = atan2(y, x) beta = atan2(z, sqrt(x * x + y * y)) # Now, let's compute the aberration effect t = (epoch - JDE2000) / 36525 e = 0.016708634 + t * (-0.000042037 - t * 0.0000001267) pie = 102.93735 + t * (1.71946 + t * 0.00046) pie = radians(pie) lon = l0 + 180.0 lon = lon.rad() k = 20.49552 # The constant of aberration deltal1 = k * (-cos(lon - lamb) + e * cos(pie - lamb)) / cos(beta) deltab1 = -k * sin(beta) * (sin(lon - lamb) - e * sin(pie - lamb)) deltal1 = Angle(0, 0, deltal1) deltab1 = Angle(0, 0, deltab1) # Correction to FK5 system lamb = Angle(lamb, radians=True) lamb = lamb.to_positive() beta = Angle(beta, radians=True) l_prime = lamb - t * (1.397 + t * 0.00031) deltal2 = Angle(0, 0, -0.09033) a = 0.03916 * (cos(l_prime.rad()) + sin(l_prime.rad())) a = a * tan(b.rad()) deltal2 += Angle(0, 0, a) deltab2 = 0.03916 * (cos(l_prime.rad()) - sin(l_prime.rad())) deltab2 = Angle(0, 0, deltab2) # Apply the corrections lamb = lamb + deltal1 + deltal2 beta = beta + deltab1 + deltab2 # Correction for nutation dpsi = nutation_longitude(epoch) lamb += dpsi e = true_obliquity(epoch) ra, dec = ecliptical2equatorial(lamb, beta, e) # Let's compute the elongation angle lons, lats, rs = Sun.apparent_geocentric_position(epoch) lambr = lamb.rad() lsr = lons.rad() betar = beta.rad() elon = acos(cos(betar) * cos(lambr - lsr)) elon = Angle(elon, radians=True) return ra, dec, elon @staticmethod def conjunction(epoch): """This method computes the time of the conjunction closest to the given epoch. :param epoch: Epoch close to the desired conjunction :type epoch: :py:class:`Epoch` :returns: The time when the conjunction happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(1993, 10, 1.0) >>> conj = Jupiter.conjunction(epoch) >>> y, m, d = conj.get_date() >>> print(y) 1993 >>> print(m) 10 >>> print(round(d, 4)) 18.3341 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Jupiter's conjunction a = 2451671.186 b = 398.884046 m0 = 121.898 m1 = 33.140229 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 # Compute an auxiliary angle aa = 82.74 + 40.76 * t aa = Angle(aa).rad() # Convert to radians corr = (0.1027 + t * (0.0002 - t * 0.00009) + sin(m) * (-2.2637 + t * (0.0163 - t * 0.00003)) + cos(m) * (-6.154 + t * (-0.021 + t * 0.00008)) + sin(2.0 * m) * (-0.2021 + t * (-0.0017 + t * 0.00001)) + cos(2.0 * m) * (0.131 - t * 0.0008) + sin(3.0 * m) * (0.0086) + cos(3.0 * m) * (0.0087 + t * 0.0002) + sin(aa) * (0.0 + t * (0.0144 - t * 0.00008)) + cos(aa) * (0.3642 + t * (-0.0019 - t * 0.00029))) to_return = jde0 + corr return Epoch(to_return) @staticmethod def opposition(epoch): """This method computes the time of the opposition closest to the given epoch. :param epoch: Epoch close to the desired opposition :type epoch: :py:class:`Epoch` :returns: The time when the opposition happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(-6, 9, 1.0) >>> oppo = Jupiter.opposition(epoch) >>> y, m, d = oppo.get_date() >>> print(y) -6 >>> print(m) 9 >>> print(round(d, 4)) 15.2865 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Jupiter's opposition a = 2451870.628 b = 398.884046 m0 = 318.4681 m1 = 33.140229 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 # Compute an auxiliary angle aa = 82.74 + 40.76 * t aa = Angle(aa).rad() # Convert to radians corr = (-0.1029 - t * t * 0.00009 + sin(m) * (-1.9658 + t * (-0.0056 + t * 0.00007)) + cos(m) * (6.1537 + t * (0.021 - t * 0.00006)) + sin(2.0 * m) * (-0.2081 - t * 0.0013) + cos(2.0 * m) * (-0.1116 - t * 0.001) + sin(3.0 * m) * (0.0074 + t * 0.0001) + cos(3.0 * m) * (-0.0097 - t * 0.0001) + sin(aa) * (0.0 + t * (0.0144 - t * 0.00008)) + cos(aa) * (0.3642 + t * (-0.0019 - t * 0.00029))) to_return = jde0 + corr return Epoch(to_return) @staticmethod def station_longitude_1(epoch): """This method computes the time of the 1st station in longitude (i.e. when the planet is stationary and begins to move westward - retrograde - among the starts) closest to the given epoch. :param epoch: Epoch close to the desired opposition :type epoch: :py:class:`Epoch` :returns: Time when the 1st station in longitude happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(2018, 11, 1.0) >>> sta1 = Jupiter.station_longitude_1(epoch) >>> y, m, d = sta1.get_date() >>> print(y) 2018 >>> print(m) 3 >>> print(round(d, 4)) 9.1288 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Jupiter's opposition a = 2451870.628 b = 398.884046 m0 = 318.4681 m1 = 33.140229 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 # Compute an auxiliary angle aa = 82.74 + 40.76 * t aa = Angle(aa).rad() # Convert to radians corr = (-60.367 + t * (-0.0001 - t * 0.00009) + sin(m) * (-2.3144 + t * (-0.0124 + t * 0.00007)) + cos(m) * (6.7439 + t * (0.0166 - t * 0.00006)) + sin(2.0 * m) * (-0.2259 - t * 0.001) + cos(2.0 * m) * (-0.1497 - t * 0.0014) + sin(3.0 * m) * (0.0105 + t * 0.0001) + cos(3.0 * m) * (-0.0098) + sin(aa) * (0.0 + t * (0.0144 - t * 0.00008)) + cos(aa) * (0.3642 + t * (-0.0019 - t * 0.00029))) to_return = jde0 + corr return Epoch(to_return) @staticmethod def station_longitude_2(epoch): """This method computes the time of the 2nd station in longitude (i.e. when the planet is stationary and begins to move eastward - prograde - among the starts) closest to the given epoch. :param epoch: Epoch close to the desired opposition :type epoch: :py:class:`Epoch` :returns: Time when the 1st station in longitude happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(2018, 11, 1.0) >>> sta2 = Jupiter.station_longitude_2(epoch) >>> y, m, d = sta2.get_date() >>> print(y) 2018 >>> print(m) 7 >>> print(round(d, 4)) 10.6679 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Jupiter's opposition a = 2451870.628 b = 398.884046 m0 = 318.4681 m1 = 33.140229 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 # Compute an auxiliary angle aa = 82.74 + 40.76 * t aa = Angle(aa).rad() # Convert to radians corr = (60.3023 + t * (0.0002 - t * 0.00009) + sin(m) * (0.3506 + t * (-0.0034 + t * 0.00004)) + cos(m) * (5.3635 + t * (0.0247 - t * 0.00007)) + sin(2.0 * m) * (-0.1872 - t * 0.0016) + cos(2.0 * m) * (-0.0037 - t * 0.0005) + sin(3.0 * m) * (0.0012 + t * 0.0001) + cos(3.0 * m) * (-0.0096 - t * 0.0001) + sin(aa) * (0.0 + t * (0.0144 - t * 0.00008)) + cos(aa) * (0.3642 + t * (-0.0019 - t * 0.00029))) to_return = jde0 + corr return Epoch(to_return) @staticmethod def perihelion_aphelion(epoch, perihelion=True): """This method computes the time of Perihelion (or Aphelion) closer to a given epoch. :param epoch: Epoch close to the desired Perihelion (or Aphelion) :type epoch: :py:class:`Epoch` :param peihelion: If True, the epoch of the closest Perihelion is computed, if False, the epoch of the closest Aphelion is found. :type bool: :returns: The epoch of the desired Perihelion (or Aphelion) :rtype: :py:class:`Epoch` :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2019, 2, 23.0) >>> e = Jupiter.perihelion_aphelion(epoch) >>> y, m, d, h, mi, s = e.get_full_date() >>> print(y) 2023 >>> print(m) 1 >>> print(d) 20 >>> print(h) 11 >>> epoch = Epoch(1981, 6, 1.0) >>> e = Jupiter.perihelion_aphelion(epoch, perihelion=False) >>> y, m, d, h, mi, s = e.get_full_date() >>> print(y) 1981 >>> print(m) 7 >>> print(d) 28 >>> print(h) 6 """ if not isinstance(epoch, Epoch): raise TypeError("Invalid input value") # First approximation k = 0.0843 * (epoch.year() - 2011.2) if perihelion: k = round(k) else: k = round(k + 0.5) - 0.5 jde = 2455636.936 + k * (4332.897065 - k * 0.0001367) # Compute the epochs a month before and after jde_before = jde - 30.0 jde_after = jde + 30.0 # Compute the Sun-Jupiter distance for each epoch l, b, r_b = Jupiter.geometric_heliocentric_position(Epoch(jde_before)) l, b, r = Jupiter.geometric_heliocentric_position(Epoch(jde)) l, b, r_a = Jupiter.geometric_heliocentric_position(Epoch(jde_after)) # Call an interpolation object m = Interpolation([jde_before, jde, jde_after], [r_b, r, r_a]) sol = m.minmax() return Epoch(sol) @staticmethod def passage_nodes(epoch, ascending=True): """This function computes the time of passage by the nodes (ascending or descending) of Jupiter, nearest to the given epoch. :param epoch: Epoch closest to the node passage :type epoch: :py:class:`Epoch` :param ascending: Whether the time of passage by the ascending (True) or descending (False) node will be computed :type ascending: bool :returns: Tuple containing: - Time of passage through the node (:py:class:`Epoch`) - Radius vector when passing through the node (in AU, float) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2019, 1, 1) >>> time, r = Jupiter.passage_nodes(epoch) >>> year, month, day = time.get_date() >>> print(year) 2025 >>> print(month) 9 >>> print(round(day, 1)) 15.6 >>> print(round(r, 4)) 5.1729 """ if not isinstance(epoch, Epoch): raise TypeError("Invalid input types") # Get the orbital parameters l, a, e, i, ome, arg = Jupiter.orbital_elements_mean_equinox(epoch) # Compute the time of passage through perihelion t = Jupiter.perihelion_aphelion(epoch) # Get the time of passage through the node time, r = passage_nodes_elliptic(arg, e, a, t, ascending) return time, r @staticmethod def magnitude(sun_dist, earth_dist): """This function computes the approximate magnitude of Jupiter. :param sun_dist: Distance from Jupiter to Sun, in Astronomical Units :type sun_dist: float :param earth_dist: Distance Jupiter to Earth, in Astronomical Units :type earth_dist: float :returns: Jupiter's magnitude :rtype: float :raises: TypeError if input values are of wrong type. """ if not (isinstance(sun_dist, float) and isinstance(earth_dist, float)): raise TypeError("Invalid input types") m = -8.93 + 5.0 * log10(sun_dist * earth_dist) return round(m, 1) def main(): # Let's define a small helper function def print_me(msg, val): print("{}: {}".format(msg, val)) # Let's show some uses of Jupiter class print("\n" + 35 * "*") print("*** Use of Jupiter class") print(35 * "*" + "\n") # Let's now compute the heliocentric position for a given epoch epoch = Epoch(2018, 10, 27.0) lon, lat, r = Jupiter.geometric_heliocentric_position(epoch) print_me("Geometric Heliocentric Longitude", lon.to_positive()) print_me("Geometric Heliocentric Latitude", lat) print_me("Radius vector", r) print("") # Compute the geocentric position for 1992/12/20: epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Jupiter.geocentric_position(epoch) print_me("Right ascension", ra.ra_str(n_dec=1)) print_me("Declination", dec.dms_str(n_dec=1)) print_me("Elongation", elon.dms_str(n_dec=1)) print("") # Print mean orbital elements for Jupiter at 2065.6.24 epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Jupiter.orbital_elements_mean_equinox(epoch) print_me("Mean longitude of the planet", round(l, 6)) # 222.433723 print_me("Semimajor axis of the orbit (UA)", round(a, 8)) # 5.20260333 print_me("Eccentricity of the orbit", round(e, 7)) # 0.0486046 print_me("Inclination on plane of the ecliptic", round(i, 6)) # 1.29967 print_me("Longitude of the ascending node", round(ome, 5)) # 101.13309 print_me("Argument of the perihelion", round(arg, 6)) # -85.745532 print("") # Compute the time of the conjunction close to 1993/10/1 epoch = Epoch(1993, 10, 1.0) conj = Jupiter.conjunction(epoch) y, m, d = conj.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Conjunction date", date) # Compute the time of the opposition close to -6/9/1 epoch = Epoch(-6, 9, 1.0) oppo = Jupiter.opposition(epoch) y, m, d = oppo.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Opposition date", date) print("") # Compute the time of the station in longitude #1 close to 2018/11/1 epoch = Epoch(2018, 11, 1.0) sta1 = Jupiter.station_longitude_1(epoch) y, m, d = sta1.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Date of station in longitude #1", date) # Compute the time of the station in longitude #2 close to 2018/11/1 epoch = Epoch(2018, 11, 1.0) sta2 = Jupiter.station_longitude_2(epoch) y, m, d = sta2.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Date of station in longitude #2", date) print("") # Find the epoch of the Aphelion closer to 1981/6/1 epoch = Epoch(1981, 6, 1.0) e = Jupiter.perihelion_aphelion(epoch, perihelion=False) y, m, d, h, mi, s = e.get_full_date() peri = str(y) + '/' + str(m) + '/' + str(d) + ' at ' + str(h) + ' hours' print_me("The Aphelion closest to 1981/6/1 will happen on", peri) print("") # Compute the time of passage through an ascending node epoch = Epoch(2019, 1, 1) time, r = Jupiter.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) print("Time of passage through ascending node: {}/{}/{}".format(y, m, d)) # 2025/9/15.6 print("Radius vector at ascending node: {}".format(round(r, 4))) # 5.1729 if __name__ == "__main__": main() pymeeus-0.3.6/pymeeus/Mars.py000066400000000000000000011222551355545537700162050ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from math import sin, cos, tan, acos, atan2, sqrt, radians, log10 from pymeeus.Angle import Angle from pymeeus.Epoch import Epoch, JDE2000 from pymeeus.Interpolation import Interpolation from pymeeus.Coordinates import ( geometric_vsop_pos, apparent_vsop_pos, orbital_elements, nutation_longitude, true_obliquity, ecliptical2equatorial, passage_nodes_elliptic ) from pymeeus.Earth import Earth from pymeeus.Sun import Sun """ .. module:: Mars :synopsis: Class to model Mars planet :license: GNU Lesser General Public License v3 (LGPLv3) .. moduleauthor:: Dagoberto Salazar """ VSOP87_L = [ # L0 [ [620347711.583, 0.00000000000, 0.00000000000], [18656368.100, 5.05037100303, 3340.61242669980], [1108216.792, 5.40099836958, 6681.22485339960], [91798.394, 5.75478745111, 10021.83728009940], [27744.987, 5.97049512942, 3.52311834900], [10610.230, 2.93958524973, 2281.23049651060], [12315.897, 0.84956081238, 2810.92146160520], [8926.772, 4.15697845939, 0.01725365220], [8715.688, 6.11005159792, 13362.44970679920], [6797.552, 0.36462243626, 398.14900340820], [7774.867, 3.33968655074, 5621.84292321040], [3575.079, 1.66186540141, 2544.31441988340], [4161.101, 0.22814975330, 2942.46342329160], [3075.250, 0.85696597082, 191.44826611160], [2628.122, 0.64806143570, 3337.08930835080], [2937.543, 6.07893711408, 0.06731030280], [2389.420, 5.03896401349, 796.29800681640], [2579.842, 0.02996706197, 3344.13554504880], [1528.140, 1.14979306228, 6151.53388830500], [1798.808, 0.65634026844, 529.69096509460], [1264.356, 3.62275092231, 5092.15195811580], [1286.232, 3.06795924626, 2146.16541647520], [1546.408, 2.91579633392, 1751.53953141600], [1024.907, 3.69334293555, 8962.45534991020], [891.567, 0.18293899090, 16703.06213349900], [858.760, 2.40093704204, 2914.01423582380], [832.718, 2.46418591282, 3340.59517304760], [832.724, 4.49495753458, 3340.62968035200], [712.899, 3.66336014788, 1059.38193018920], [748.724, 3.82248399468, 155.42039943420], [723.863, 0.67497565801, 3738.76143010800], [635.557, 2.92182704275, 8432.76438481560], [655.163, 0.48864075176, 3127.31333126180], [550.472, 3.81001205408, 0.98032106820], [552.746, 4.47478863016, 1748.01641306700], [425.972, 0.55365138172, 6283.07584999140], [415.132, 0.49662314774, 213.29909543800], [472.164, 3.62547819410, 1194.44701022460], [306.552, 0.38052862973, 6684.74797174860], [312.141, 0.99853322843, 6677.70173505060], [293.199, 4.22131277914, 20.77539549240], [302.377, 4.48618150321, 3532.06069281140], [274.028, 0.54222141841, 3340.54511639700], [281.073, 5.88163372945, 1349.86740965880], [231.185, 1.28240685294, 3870.30339179440], [283.600, 5.76885494123, 3149.16416058820], [236.114, 5.75504515576, 3333.49887969900], [274.035, 0.13372501211, 3340.67973700260], [299.396, 2.78323705697, 6254.62666252360], [204.161, 2.82133266185, 1221.84856632140], [238.857, 5.37155471672, 4136.91043351620], [188.639, 1.49103016486, 9492.14631500480], [221.225, 3.50466672203, 382.89653222320], [179.196, 1.00561112574, 951.71840625060], [172.110, 0.43943041719, 5486.77784317500], [193.126, 3.35715137745, 3.59042865180], [144.305, 1.41874193418, 135.06508003540], [160.011, 3.94854735192, 4562.46099302120], [174.068, 2.41360332576, 553.56940284240], [130.993, 4.04491720264, 12303.06777661000], [138.245, 4.30145176915, 7.11354700080], [128.062, 1.80665643332, 5088.62883976680], [139.897, 3.32592516164, 2700.71514038580], [128.102, 2.20806651008, 1592.59601363280], [116.945, 3.12805282207, 7903.07341972100], [110.375, 1.05195079687, 242.72860397400], [113.486, 3.70070798123, 1589.07289528380], [100.090, 3.24343740861, 11773.37681151540], [95.592, 0.53954181149, 20043.67456019880], [98.947, 4.84558294740, 6681.24210705180], [104.541, 0.78535382076, 8827.39026987480], [84.187, 3.98970720730, 4399.99435688900], [86.931, 2.20186740523, 11243.68584642080], [71.437, 2.80307550016, 3185.19202726560], [72.091, 5.84672102525, 5884.92684658320], [73.476, 2.18428012567, 8429.24126646660], [98.946, 2.81481140371, 6681.20759974740], [68.414, 2.73834914412, 2288.34404351140], [86.751, 1.02092221563, 7079.37385680780], [65.320, 2.68118597578, 28.44918746780], [83.749, 3.20256130990, 4690.47983635860], [75.034, 0.76643418252, 6467.92575796160], [68.984, 3.76399731788, 6041.32756708560], [66.706, 0.73630620766, 3723.50895892300], [63.314, 4.52771470470, 426.59819087600], [61.683, 6.16831509419, 2274.11694950980], [52.256, 0.89941531307, 9623.68827669120], [55.488, 4.60625467020, 4292.33083295040], [51.332, 4.14823636534, 3341.59274776800], [56.629, 5.06250410206, 15.25247118500], [63.376, 0.91296240798, 3553.91152213780], [45.829, 0.78784235062, 1990.74501704100], [48.542, 3.95670418719, 4535.05943692440], [41.223, 6.02019329922, 3894.18182954220], [41.939, 3.58326425115, 8031.09226305840], [56.396, 1.68727150304, 6872.67311951120], [55.909, 3.46260833495, 263.08392337280], [51.678, 2.81307492682, 3339.63210563160], [40.671, 3.13832621829, 9595.23908922340], [38.107, 0.73401946320, 10025.36039844840], [39.495, 5.63225392160, 3097.88382272579], [44.174, 3.19529736702, 5628.95647021120], [36.716, 2.63720775102, 692.15760122680], [45.905, 0.28718981497, 5614.72937620960], [38.352, 5.82880707426, 3191.04922956520], [38.206, 2.34835984063, 162.46663613220], [32.562, 0.48400659333, 6681.29216370240], [37.135, 0.68508150774, 2818.03500860600], [31.168, 3.98160912982, 20.35531939880], [32.561, 0.89250316888, 6681.15754309680], [37.752, 4.15482955299, 2803.80791460440], [33.626, 6.11992401052, 6489.77658728800], [29.007, 2.42707385674, 3319.83703120740], [38.790, 1.35198498795, 10018.31416175040], [33.148, 1.14023770004, 5.52292430740], [27.584, 1.59691203058, 7210.91581849420], [28.686, 5.72055456734, 7477.52286021600], [34.031, 2.59544082509, 11769.85369316640], [25.380, 0.52093116112, 10.63666534980], [26.357, 1.34532646574, 3496.03282613400], [24.554, 4.00323183088, 11371.70468975820], [25.637, 0.24963523420, 522.57741809380], [27.278, 4.55645328122, 3361.38782219220], [23.764, 1.84058377256, 12832.75874170460], [22.816, 3.52628212106, 1648.44675719740], [22.274, 0.72106133721, 266.60704172180], [21.202, 3.11824472284, 2957.71589447660], [20.158, 3.67131504946, 1758.65307841680], [21.530, 6.15388757177, 3264.34635542420], [20.093, 1.08247416065, 7064.12138562280], [21.343, 4.28218757863, 4032.77002792660], [27.540, 6.08389942337, 6674.11130639880], [19.849, 2.37668920745, 10713.99488132620], [25.512, 3.43242352804, 3443.70520091840], [22.542, 5.64861703438, 2388.89402044920], [24.378, 0.96994696413, 632.78373931320], [23.079, 4.74990214223, 3347.72597370060], [17.709, 3.69742343974, 3344.20285535160], [22.662, 3.95446324417, 4989.05918389720], [22.604, 5.24082917494, 3205.54734666440], [16.811, 5.48619684111, 3.88133535800], [18.422, 4.22535881468, 2787.04302385740], [22.737, 4.98520896596, 7632.94325965020], [16.648, 2.52823633184, 14584.29827312060], [20.963, 4.27878216453, 5099.26550511660], [16.042, 1.76786752521, 3475.67750673520], [15.816, 3.13240869691, 59.37386191360], [18.113, 3.25756020453, 3337.02199804800], [19.295, 3.23911854642, 7.04623669800], [16.772, 4.39731507110, 15643.68020330980], [17.555, 4.09197396097, 74.78159856730], [13.704, 2.54117018160, 4933.20844033260], [16.011, 1.54669633224, 14054.60730802600], [13.547, 4.04152185347, 4929.68532198360], [14.566, 3.45210993051, 7373.38245462640], [13.926, 5.40797129468, 10973.55568635000], [14.246, 0.59808746067, 23.87843774780], [14.023, 1.44218648988, 10404.73381232260], [16.051, 3.79409950488, 2118.76386037840], [13.714, 3.59050634457, 15113.98923821520], [18.038, 4.25391532000, 2487.41604494780], [15.846, 0.56901288692, 103.09277421860], [13.403, 5.16920432994, 10213.28554621100], [16.069, 2.36895958451, 3265.83082813250], [12.773, 0.10483085657, 7234.79425624200], [12.199, 1.73079687044, 36.02786667740], [12.283, 5.19940030635, 10021.85453375160], [11.945, 5.47997890162, 2921.12778282460], [11.890, 4.76593905835, 5828.02847164760], [12.283, 3.16862882612, 10021.82002644720], [13.274, 6.17806905340, 1744.42598441520], [11.777, 5.72731550900, 0.42007609361], [12.340, 2.52146766331, 2906.90068882300], [14.458, 4.38010658432, 316.39186965660], [10.639, 3.45016942919, 639.89728631400], [10.925, 0.60397688999, 5085.03841111500], [10.645, 5.47696728127, 419.48464387520], [10.797, 1.37191539718, 10419.98628350760], [10.565, 1.09061610786, 12168.00269657460], [9.578, 4.89489266197, 3230.40610548040], [9.808, 5.83632873998, 14314.16811304980], [9.720, 6.28282606427, 9225.53927328300], [9.146, 1.10220667397, 9808.53818466140], [12.733, 1.79883375851, 13745.34623902240], [9.779, 3.60056884868, 206.18554843720], [12.156, 4.42295240981, 14712.31711645800], [8.801, 3.97218590685, 170.67287061920], [10.685, 4.33894776374, 7740.60678358880], [10.041, 1.38294666830, 3583.34103067380], [8.499, 4.29275471153, 0.42988312670], [9.882, 2.69148019691, 36.60536530420], [10.585, 0.89641284928, 23384.28698689860], [8.478, 2.86886131803, 9381.93999378540], [9.560, 4.33382353581, 131.54196168640], [8.433, 3.15239733970, 6525.80445396540], [7.517, 1.24476310635, 6894.52394883760], [6.753, 1.58869332894, 6836.64525283380], [6.666, 4.38910103043, 66.48740891440], [6.697, 5.77315870484, 5202.35827933520], [6.188, 1.57847967850, 3325.35995551480], [8.392, 2.90734956761, 43.71891230500], [6.427, 6.03333185624, 574.34479833480], [6.296, 0.06976040737, 1964.83862685400], [6.144, 5.43713363624, 1861.74585263540], [8.180, 0.43967386003, 2707.82868738660], [6.532, 1.24907069366, 12964.30070339100], [7.341, 4.95693808975, 3767.21061757580], [6.134, 3.16322441707, 6680.24453233140], [5.937, 4.22752447794, 4459.36821880260], [5.848, 4.30379700916, 7875.67186362420], [5.895, 0.77226207039, 2699.73481931760], [5.962, 3.01318151415, 3369.06161416760], [6.307, 1.77830983983, 2178.13772229200], [6.103, 4.49866000852, 6682.20517446780], [5.770, 0.96127853878, 13916.01910964160], [5.725, 4.93042706875, 2384.32327072920], [7.576, 6.16308742022, 6531.66165626500], [7.285, 0.52756973131, 10575.40668294180], [5.212, 3.48999909365, 12935.85151592320], [5.266, 4.51201042373, 6144.42034130420], [6.632, 3.48100908925, 1118.75579210280], [5.182, 3.25459432228, 2391.43681773000], [5.214, 0.01023839897, 533.21408344360], [5.436, 6.18510045571, 8425.65083781480], [5.491, 3.42235890731, 3134.42687826260], [5.773, 3.55190490896, 8969.56889691100], [5.093, 0.60873962999, 8955.34180290940], [4.798, 4.63144694279, 4569.57454002200], [5.773, 5.92316959013, 640.87760738220], [5.661, 0.75892958537, 3120.19978426100], [4.912, 1.70762118141, 13358.92658845020], [5.438, 4.29256867866, 3503.07906283200], [4.631, 3.34058594066, 3116.26763099790], [5.823, 2.39009621568, 3302.47939106200], [5.095, 1.12497131307, 5331.35744374080], [4.409, 1.38708732950, 17256.63153634140], [4.193, 0.19116539271, 9830.38901398780], [4.164, 0.43798301495, 1066.49547719000], [4.220, 1.69427060019, 13524.91634293140], [5.192, 3.63500646439, 536.80451209540], [5.664, 0.50446281443, 5305.45105355380], [5.264, 5.40031180025, 3355.86489788480], [5.403, 5.96867227489, 3074.00538497800], [4.046, 0.83826342101, 10021.90459040220], [4.153, 3.14497570817, 8439.87793181640], [4.820, 1.09025983917, 13365.97282514820], [4.906, 3.73078406569, 1228.96211332220], [4.576, 0.99344843456, 6158.64743530580], [4.211, 3.87091723842, 3312.16323923200], [4.917, 6.25051681717, 17654.78053974960], [3.597, 6.07298181151, 10818.13528691580], [3.547, 1.87663674277, 17395.21973472580], [3.734, 1.37011069213, 3973.39616601300], [4.422, 2.89974680697, 6247.51311552280], [3.975, 4.03441621102, 1052.26838318840], [4.466, 4.59188422424, 5518.75014899180], [3.445, 4.26610076208, 3178.14579056760], [3.607, 4.24527056399, 8329.67161059700], [3.511, 1.95133364438, 10177.25767953360], [3.300, 0.68865737747, 149.56319713460], [3.235, 3.90171358031, 27.40155609680], [3.946, 5.81982010903, 6261.74020952440], [3.387, 0.14377701728, 10014.72373309860], [3.374, 0.74722238154, 6048.44111408640], [3.090, 3.98540766861, 2648.45482547300], [3.821, 5.23987859516, 5724.93569742900], [3.026, 0.34314724795, 220.41264243880], [4.052, 1.24671617482, 10021.76996979660], [2.937, 0.73100893561, 2.75151061100], [3.084, 3.79925632319, 169.58018313300], [4.040, 2.91258200196, 22747.29071487440], [3.246, 4.90760526525, 6702.00024889200], [3.223, 0.92640008610, 16865.52876963120], [2.879, 1.47180601483, 3346.13535100720], [3.723, 0.49978317761, 1.48447270830], [2.798, 3.26910698548, 9168.64089834740], [3.347, 0.68791690253, 3863.18984479360], [3.440, 2.77706064625, 6660.44945790720], [2.798, 2.79673379094, 16858.48253293320], [2.753, 4.41190782119, 3415.39402526710], [2.703, 0.19222683184, 3237.51965248120], [2.719, 3.26628341377, 3914.95722503460], [2.941, 3.76169133143, 6784.31762761820], [3.078, 5.48104322207, 3335.08950239240], [2.701, 5.08537226206, 6688.33840040040], [2.606, 4.83032556909, 4672.66731424060], [2.883, 2.64068086362, 3320.25710730100], [3.089, 4.39619824300, 1332.05488754080], [3.438, 1.93467064449, 10551.52824519400], [3.433, 0.20933510815, 6604.95878212400], [2.513, 2.88151502604, 17924.91069982040], [2.683, 3.68680362407, 3603.69635007260], [2.696, 2.66931776730, 10184.30391623160], [2.386, 1.05710815775, 3607.21946842160], [2.444, 3.46901444423, 6298.32832117640], [2.566, 5.55941956468, 6546.15977336420], [2.354, 0.85896789940, 3351.24909204960], [2.304, 6.07210985790, 1214.73501932060], [2.387, 4.30419979225, 3360.96774609859], [3.109, 2.18099805904, 16173.37116840440], [2.907, 3.43894993113, 2693.60159338500], [2.550, 4.18354174372, 3546.79797513700], [2.991, 2.37500894603, 13517.87010623340], [2.508, 5.99249607455, 5729.50644714900], [2.202, 5.58486973955, 664.75604513000], [2.467, 2.81052575497, 15110.46611986620], [2.154, 3.59696831702, 6677.63442474780], [2.166, 3.35965682842, 589.06482700820], [2.112, 4.57048853017, 6127.65545055720], [2.178, 3.21663279493, 20199.09495963300], [2.260, 3.62776666288, 7799.98064550240], [2.703, 5.89441421026, 6438.49624942560], [2.201, 4.69972051344, 17277.40693183380], [2.131, 2.51801264340, 1545.35398297880], [2.093, 4.03688419630, 6684.81528205140], [2.249, 5.26171743929, 5618.31980486140], [2.117, 4.80404492675, 3657.00429635640], [2.265, 3.87401620754, 110.20632121940], [2.521, 4.21237950687, 2494.52959194860], [2.492, 6.10452779411, 3329.97576135000], [2.154, 4.59093274516, 5625.36604155940], [1.929, 1.21920197307, 21.85082932640], [2.343, 0.90613584736, 227.47613278900], [1.871, 2.03707390080, 56.89837493560], [1.894, 4.12432529517, 3399.98628861340], [2.271, 3.78951734652, 7910.18696672180], [1.876, 3.02034887080, 4885.96640967860], [2.145, 4.74972617629, 18984.29263000960], [2.035, 2.75110234296, 128.01884333740], [1.770, 2.73496011079, 6606.44325483230], [1.733, 1.70571779606, 6.68366387410], [1.743, 2.22986352012, 17085.95866572220], [1.723, 1.98207274526, 735.87651353180], [1.814, 0.92405242552, 4555.34744602040], [1.661, 3.07319305915, 1692.16566950240], [2.332, 5.05223613332, 20618.01935853360], [1.653, 3.86316179052, 699.27114822760], [1.890, 4.14080522607, 5459.37628707820], [1.680, 3.49750704538, 3347.65866339780], [1.909, 2.11478314309, 6816.28993343500], [1.918, 3.31232891649, 3333.56619000180], [1.707, 4.88386665097, 3407.09983561420], [1.577, 3.51777131580, 13362.43245314700], [1.827, 1.14937084769, 2807.39834325620], [2.094, 1.78938870686, 20597.24396304120], [1.577, 5.54854302324, 13362.46696045140], [1.677, 4.39073937265, 8270.29774868340], [1.561, 0.80246904730, 3017.10701004240], [1.552, 2.66876850182, 3024.22055704320], [1.708, 2.09721350898, 2814.44457995420], [2.109, 1.48733908496, 2679.37949991880], [1.547, 2.12956399169, 661.23292678100], [1.764, 5.90517079295, 3326.38533269820], [1.503, 4.34389183170, 13936.79450513400], [1.504, 0.83367652471, 4775.76008845920], [1.543, 5.82417982389, 3344.49376205780], [1.458, 1.42630589706, 15508.61512327440], [1.648, 2.88801518612, 8273.82086703240], [1.527, 1.10261249454, 2675.85638156980], [1.800, 5.17144672709, 38.13303563780], [1.439, 0.48751113425, 76.26607127560], [1.478, 4.63008666184, 19800.94595622480], [1.770, 2.18315009072, 2301.58581590939], [1.712, 2.60291779744, 29.42950853600], [1.416, 2.46912016889, 2597.62236616720], [1.835, 3.93223068469, 6843.69148953180], [1.437, 3.48241890037, 3281.23856478620], [1.385, 4.18004525683, 2284.75361485960], [1.479, 3.88994194685, 6034.21402008480], [1.469, 2.91808856545, 12722.55242048520], [1.824, 3.94139541752, 18454.60166491500], [1.368, 1.71899681607, 13760.59871020740], [1.406, 2.42916192473, 853.19638175200], [1.361, 4.69126219798, 11081.21921028860], [1.375, 4.90787845983, 3304.58456002240], [1.544, 3.23251603238, 156.40072050240], [1.543, 1.13497136095, 3336.73109134180], [1.385, 2.90281983822, 1581.95934828300], [1.311, 6.21748423079, 2547.83753823240], [1.377, 2.56537541792, 568.82187402740], [1.474, 4.65215247212, 394.62588505920], [1.619, 0.07481583409, 1435.14766175940], [1.369, 0.08979359617, 7895.95987272020], [1.272, 5.84659079053, 21.33564046700], [1.331, 3.80007277718, 13119.72110282519], [1.202, 5.90681878458, 187.92514776260], [1.284, 5.30205682052, 6571.01853218020], [1.468, 5.91503888421, 3339.12795399150], [1.497, 2.57629850836, 151.89728108520], [1.270, 4.08996241400, 4356.27544458400], [1.159, 0.00546309207, 799.82112516540], [1.154, 1.81024985603, 158.94351778320], [1.170, 4.15567553953, 14.22709400160], [1.349, 0.39391022745, 2540.79130153440], [1.403, 4.89956428847, 4039.88357492740], [1.188, 3.46422365287, 1015.66301788420], [1.136, 5.54132891775, 13553.89797291080], [1.282, 4.52288421340, 3929.67725370800], [1.124, 1.40102701439, 13149.15061136120], [1.254, 3.84775964741, 3980.50971301380], [1.121, 5.04552583589, 23141.55838292460], [1.088, 0.89388884633, 3340.19235060619], [1.476, 4.20852908107, 16460.33352952499], [1.084, 5.70551481838, 3760.09707057500], [1.197, 1.24543578245, 26724.89941359840], [1.253, 5.82286965998, 3344.54457996290], [1.078, 6.24742453183, 17.81252211800], [1.462, 2.27467510211, 369.69981594040], [1.044, 4.34158344243, 2277.70737816160], [1.099, 4.08747611117, 802.36392244620], [1.122, 4.31726854418, 107.66352393860], [1.148, 0.42666214138, 949.17560896980], [1.183, 0.31560034120, 1162.47470440780], [1.130, 3.46061330657, 5732.04924442980], [1.059, 1.34075999078, 2149.68853482420], [1.126, 5.22902222299, 194.97138446060], [0.977, 3.44426658417, 9779.10867612540], [1.134, 0.13507173479, 12566.15169998280], [1.185, 3.65682936623, 6456.88005769770], [0.962, 4.85370284827, 3510.19260983280], [1.033, 2.47380728164, 31.97230581680], [1.172, 1.72927931309, 6923.95345737360], [0.986, 1.05152205629, 16335.83780453660], [1.292, 6.02388659607, 3316.73398895200], [0.932, 1.56812178735, 111.18664228760], [1.130, 2.06879370733, 3376.64029337720], [0.924, 0.82106390115, 3364.49086444760], [1.005, 5.48594935121, 11236.57229942000], [0.936, 1.58837554752, 10235.13637553740], [1.063, 1.93321644244, 87.30820453981], [0.945, 5.10393817688, 8013.27974094040], [0.957, 4.41421752360, 433.71173787680], [0.921, 1.71021166461, 2067.93140107260], [0.910, 1.91562889347, 401.67212175720], [0.931, 4.61327789373, 5415.65737477320], [1.033, 3.98512631089, 10596.18207843420], [0.908, 5.30549216988, 7107.82304427560], [0.945, 0.21610469082, 9872.27408296480], [0.991, 2.76931703924, 5938.23479286700], [0.918, 4.37217510741, 1854.63230563460], [0.889, 1.81025662091, 2409.24933984800], [1.058, 3.63303046818, 7255.56965173440], [0.860, 2.78826625605, 5621.86017686260], [0.860, 0.75749461239, 5621.82566955820], [0.850, 3.82228424021, 272.67295735160], [0.851, 0.25287875945, 11766.26326451460], [0.853, 1.84243320985, 2142.64229812620], [1.030, 0.42255009123, 1596.18644228460], [0.826, 1.26069501589, 20206.14119633100], [0.835, 4.64394754967, 127.95153303460], [1.046, 3.50232998647, 9866.41688066520], [0.824, 2.42928138519, 11.04570026390], [1.090, 6.06536924506, 3341.03250279340], [0.808, 1.17345081945, 6460.81221096080], [0.821, 0.19617131185, 22743.40937951640], [0.804, 5.03144428114, 2.54279728080], [1.074, 2.80025232939, 3077.52850332700], [0.794, 4.57067003887, 5223.69391980220], [0.822, 0.90150471199, 8646.06348025360], [0.884, 1.71007411939, 3.93215326310], [0.850, 1.24977903471, 12295.95422960920], [0.926, 3.02847055739, 3377.21779200400], [0.779, 1.97930055918, 5408.54382777240], [0.960, 6.16414205869, 8542.97070603500], [0.785, 4.63077378309, 3341.04230982650], [0.752, 3.51125131831, 10020.85695903120], [0.749, 2.50286751020, 2295.45759051220], [0.801, 4.54004277501, 1039.02661079040], [0.735, 3.91703254169, 12310.18132361080], [0.784, 3.24368310213, 3384.33133900480], [0.719, 3.35536995801, 11780.49035851620], [0.940, 3.58974561600, 23539.70738633280], [0.865, 1.12444569157, 206.70073729660], [0.731, 5.61232905415, 16062.18452611680], [0.823, 2.65316808033, 3169.93955608060], [0.903, 4.86743346013, 931.36308685180], [0.705, 1.46305394620, 792.77488846740], [0.754, 2.89691411536, 3296.89351439480], [0.736, 2.21038016464, 146.81168652360], [0.785, 2.32844966721, 3340.18254357310], [0.685, 2.34948834397, 1.18064265210], [0.677, 4.33803507050, 3877.41693879520], [0.729, 3.56726385957, 485.97205278960], [0.668, 5.16798891078, 12721.57209941700], [0.713, 4.80558699772, 4142.97634914600], [0.842, 1.59708732155, 16304.91313009080], [0.698, 1.91829605833, 6665.97238221460], [0.698, 4.64681188157, 11216.28429032400], [0.684, 3.88514563357, 846.08283475120], [0.666, 2.23927960017, 20735.83216142559], [0.638, 2.05380863176, 16699.53901514999], [0.726, 5.04566216294, 3329.56672643590], [0.697, 0.30680314664, 19676.45023123640], [0.650, 3.23944472757, 9588.12554222260], [0.736, 2.24443728739, 11250.79939342160], [0.692, 1.76465916332, 51.28033786241], [0.645, 0.07661067442, 52.26031491280], [0.685, 2.72118140264, 6643.09181776180], [0.684, 1.26157751115, 142.17862703620], [0.635, 3.85231847116, 6.06591562980], [0.819, 6.04967230806, 19402.79695281660], [0.664, 3.60223930010, 1903.43681250120], [0.613, 4.96450118774, 8859.36257569160], [0.615, 5.74467417840, 6696.47732458460], [0.622, 1.64154132852, 24150.08005134500], [0.659, 0.12506816965, 8116.37251515900], [0.679, 1.94943016061, 12995.22537783680], [0.616, 4.94607504516, 9485.03276800400], [0.793, 2.84922599989, 29.49181830340], [0.597, 5.72067567055, 3113.13629391080], [0.763, 0.42513533173, 3873.82651014340], [0.587, 1.31684217558, 9499.25986200560], [0.592, 4.34796024028, 3826.58447948940], [0.652, 5.53658742492, 9065.54812412880], [0.583, 0.59190068342, 26084.02180621620], [0.603, 0.77135566630, 3342.09689940810], [0.701, 3.35897774328, 6709.67404086740], [0.574, 1.08976979801, 6357.71943674220], [0.750, 4.84737198179, 10022.81760116760], [0.588, 5.65927128604, 2171.02417529120], [0.632, 3.84852695407, 16276.46394262300], [0.632, 1.43230388645, 16706.58525184800], [0.780, 1.15181502540, 377.37360791580], [0.554, 4.18192049239, 382.87927857100], [0.568, 0.03816333919, 6414.61781167780], [0.569, 2.57704345512, 35.56273446860], [0.566, 0.62804830762, 3189.56475685690], [0.687, 5.61456944029, 155.35308913140], [0.563, 2.57358138188, 19406.67828817460], [0.693, 1.15645091892, 966.97087743560], [0.576, 1.60357663736, 3192.53370227350], [0.621, 2.23214771591, 3274.12501778540], [0.586, 6.17266280012, 9602.35263622420], [0.541, 0.53968808391, 13171.00144068760], [0.570, 3.11852290115, 2221.85663459700], [0.542, 0.41889651002, 1641.33321019660], [0.532, 0.16606105669, 5511.63660199100], [0.530, 3.78205188174, 7270.28968040780], [0.575, 5.48929613719, 2075.04494807340], [0.670, 3.67090656417, 6475.03930496240], [0.509, 4.21526585284, 7380.49600162720], [0.510, 1.59587338243, 13362.38239649640], [0.494, 2.13711598060, 2604.73591316800], [0.534, 1.03109772656, 1478.86657406440], [0.506, 5.92145494356, 685.04405422600], [0.469, 0.83917541691, 3041.48603243060], [0.468, 1.97135671591, 2412.77245819700], [0.468, 4.57635781664, 11670.28403729680], [0.559, 1.47641018288, 8671.96987044060], [0.475, 2.07517976424, 5835.14201864840], [0.466, 2.92801596791, 2277.29834324750], [0.478, 6.13550464878, 4825.54491639400], [0.502, 0.77928275348, 4407.10790388980], [0.462, 3.80503324215, 11140.59307220220], [0.499, 3.25557381873, 1744.49329471800], [0.525, 0.74022979976, 1265.56747862640], [0.521, 6.27577138682, 3981.49003408200], [0.482, 0.14820337530, 14158.74771361560], [0.460, 2.03348517376, 25685.87280280800], [0.510, 4.27704405425, 3472.15438838620], [0.444, 1.95486223268, 3226.21331978640], [0.575, 0.59007504383, 2766.26762836500], [0.437, 5.63861950911, 8958.93223156120], [0.492, 6.10071747922, 2285.16264977370], [0.572, 5.10308842466, 8564.30634650200], [0.430, 4.12851356192, 13.24177239800], [0.544, 4.78254843814, 9380.95967271720], [0.430, 3.83861916944, 1765.76662541760], [0.499, 4.26055736809, 6652.77566593180], [0.541, 0.84245625839, 4981.94563689640], [0.591, 2.01874828234, 27490.69247804480], [0.438, 1.36437546581, 12509.25332504720], [0.470, 4.70961176845, 3723.49170527080], [0.421, 1.76100140625, 956.28915597060], [0.413, 0.49206034039, 13355.33615979840], [0.412, 0.29353415123, 2810.93871525740], [0.412, 3.24865417750, 18451.07854656599], [0.412, 1.70721395764, 7314.00859271280], [0.412, 4.54594776716, 2810.90420795300], [0.448, 3.04254429984, 5636.07001721200], [0.510, 1.18739936388, 13362.51701710200], [0.408, 1.32068176489, 20809.46762464520], [0.427, 1.16100742040, 19004.64794940840], [0.420, 3.49180180953, 1655.56030419820], [0.433, 0.55429134487, 9945.57120882380], [0.424, 4.60854671688, 6518.75821726740], [0.415, 5.67120343816, 99.56965586960], [0.476, 5.94537443289, 48835.19385644859], [0.405, 5.63206200287, 3450.81874791920], [0.495, 4.38317490235, 2480.30249794700], [0.415, 3.61905205961, 2089.78223039900], [0.395, 0.25208772249, 1375.77379984580], [0.421, 2.26337694295, 13892.14067189380], [0.391, 5.25566087245, 10042.61267559180], [0.504, 4.91016850189, 8965.97846825920], [0.417, 3.45088934666, 279.78650435240], [0.389, 0.98703891513, 7203.80227149340], [0.431, 2.11881719623, 56.80326216980], [0.497, 1.63121523594, 22345.26037610820], [0.377, 4.06263841184, 10124.93005431800], [0.377, 3.16019395941, 224.34479570190], [0.378, 5.82532048605, 6675.70192909220], [0.377, 0.05833226835, 905.45669666480], [0.445, 0.33560120738, 515.46387109300], [0.426, 2.66458973231, 4076.48894023160], [0.489, 0.75760372851, 3561.02506913860], [0.389, 0.50283826580, 2825.14855560680], [0.396, 5.14198726837, 5195.24473233440], [0.414, 3.12530321804, 10001.06188460700], [0.502, 5.02356488339, 73.29712585900], [0.432, 3.31538359140, 5617.91076994730], [0.359, 4.97622870666, 5820.91492464680], [0.359, 5.42072227300, 6019.99192661860], [0.449, 3.79544854612, 4996.17273089800], [0.374, 2.85563965649, 2111.65031337760], [0.426, 0.24129917209, 5625.77507647350], [0.423, 3.60507971235, 8226.57883637840], [0.402, 4.51813719510, 4392.88080988820], [0.391, 4.26714089799, 21795.21409161479], [0.447, 4.25776540974, 18052.92954315780], [0.355, 4.17584780659, 6740.59871531320], [0.353, 1.81574804066, 6686.74777770700], [0.462, 3.22304237134, 2011.10033643980], [0.341, 3.22071023668, 4253.18267036540], [0.475, 4.28822688035, 367.22432896240], [0.462, 2.91312544527, 418.92439890060], [0.416, 4.83203726375, 8535.85715903420], [0.431, 3.22440150226, 21265.52312652020], [0.333, 3.99300815003, 1353.39052800780], [0.340, 0.71636465254, 15664.03552270859], [0.416, 2.58443168474, 5753.38488489680], [0.356, 2.35639379021, 4.57074972000], [0.330, 4.04831945983, 3.10304225540], [0.381, 4.06283076724, 1062.90504853820], [0.431, 5.42246026973, 26482.17080962440], [0.328, 4.06276954550, 6944.30877677240], [0.334, 5.10221163477, 22324.90505670940], [0.400, 2.28211698182, 3209.07046501340], [0.420, 2.44159662565, 6155.05700665400], [0.375, 1.09229714548, 4246.06912336460], [0.449, 4.38183542571, 5106.37905211740], [0.330, 2.55172725319, 19513.98359510420], [0.319, 4.05704496382, 5430.39465709880], [0.310, 4.99907184482, 5095.67507646480], [0.344, 0.62691832180, 9389.05354078620], [0.319, 3.31673970253, 596.17837400900], [0.305, 4.66942910910, 6756.00645196690], [0.409, 6.07568936266, 50.83245930580], [0.377, 5.42211267415, 1190.92389187560], [0.342, 2.67821304845, 6148.01076995600], [0.298, 5.91093444215, 9886.77220006400], [0.299, 5.44077050156, 10028.95082710020], [0.315, 1.03304445564, 3490.17562383440], [0.369, 3.93279262125, 1879.55837475340], [0.304, 4.56372485787, 7483.58877584580], [0.330, 3.29725079066, 286.96236112060], [0.290, 3.43850024020, 6418.14093002680], [0.289, 2.82766045300, 3171.03224356680], [0.317, 4.13345374602, 1883.08149310240], [0.294, 0.01906732590, 202.25339517410], [0.310, 4.37565854379, 2796.69436760360], [0.364, 0.54935210242, 290.48547946960], [0.291, 2.39413982848, 29026.48522950779], [0.286, 5.76562894312, 5642.19824260920], [0.392, 3.01171327788, 10721.10842832700], [0.318, 4.93376925851, 1197.97012857360], [0.315, 2.84437840100, 10610.90210710760], [0.299, 1.18299169304, 550.04628449340], [0.336, 4.30769818760, 5989.06725217280], [0.315, 1.41407863340, 6947.83189512140], [0.294, 6.16453752963, 8982.81066930900], [0.285, 2.82644088669, 9654.61295113700], [0.281, 0.27739627997, 8166.15734309380], [0.279, 4.08648927643, 5355.23588148860], [0.330, 3.11968019451, 41.55079098480], [0.275, 5.89019272334, 3337.86091608880], [0.275, 4.00268079937, 3620.39893105220], [0.292, 3.06830662617, 4.36203638980], [0.317, 0.01919037405, 2267.00340250900], [0.272, 1.70373580224, 3742.28454845700], [0.294, 0.16019381973, 6670.58818804980], [0.264, 2.07967576148, 3735.23831175900], [0.262, 4.49437120405, 6887.41040183680], [0.307, 3.03375977801, 6660.86953400080], [0.280, 0.47728086796, 5401.43028077160], [0.268, 0.46331887242, 6578.13207918100], [0.312, 3.62016422039, 255.97037637200], [0.278, 5.62032972822, 3378.74546233760], [0.268, 2.97528422526, 21947.11137270000], [0.303, 2.71946492092, 3313.21087060300], [0.263, 3.85883671333, 28628.33622609960], [0.257, 0.25607724431, 19146.75926614180], [0.282, 2.29169514758, 2008.55753915900], [0.301, 0.83275594655, 2806.98930834210], [0.264, 3.78635346388, 3936.79080070880], [0.254, 1.28062508539, 95.97922721780], [0.250, 5.58493858560, 412.37109687440], [0.284, 4.71065509252, 5621.91023351320], [0.286, 5.11854366190, 5621.77561290760], [0.254, 5.77068701321, 5813.29118932200], [0.311, 2.67573060947, 912.57024366560], [0.252, 4.19548440341, 24.85875881600], [0.255, 1.80023727978, 3193.80074017620], [0.247, 2.94199704738, 310.84079886840], [0.261, 5.68285399692, 3133.91168940320], [0.255, 4.46589323429, 5490.30096152400], [0.247, 2.28207487665, 246.25172232300], [0.257, 5.64335704456, 10706.88133432540], [0.246, 0.26910281348, 22.76849660940], [0.241, 0.03931394254, 9070.11887384880], [0.283, 1.30585259585, 4025.65648092580], [0.272, 1.28327911416, 1442.26120876020], [0.294, 4.02082336381, 2814.85361486830], [0.249, 4.92144829429, 31022.75317085620], [0.237, 3.07683243726, 9947.05568153210], [0.236, 6.05766380360, 948.19528790160], [0.309, 3.45153658664, 25287.72379939980], [0.232, 4.99538565545, 1505.28780909299], [0.275, 1.20294105507, 6691.86151874940], [0.305, 2.73902403412, 176.69373013380], [0.231, 5.13610567818, 6997.61672305620], [0.237, 0.90339496046, 8.09386806900], [0.229, 0.63250047970, 23017.06265793620], [0.249, 6.05357589804, 2060.81785407180], [0.270, 2.14769161882, 2973.38809773740], [0.241, 4.63019900075, 1612.95133303160], [0.227, 5.94537053649, 2942.48067694380], [0.269, 5.93687481153, 4005.36847182980], [0.227, 3.91459879933, 2942.44616963940], [0.238, 5.14570745178, 721.13923120620], [0.275, 1.06902528739, 3343.36393731080], [0.232, 3.52110290510, 6674.17861670160], [0.277, 0.19619249083, 270.19747037360], [0.274, 0.30235979008, 5607.61582920880], [0.233, 5.75237138576, 604.84974070480], [0.214, 3.38626276995, 647.01083331480], [0.282, 0.29694635625, 12323.42309600880], [0.282, 3.18114716742, 6364.83298374300], [0.264, 4.64751563064, 1346.34429130980], [0.280, 4.64995184564, 6701.58017279840], [0.246, 3.03036675631, 3304.00706139560], [0.213, 4.80555095681, 8830.91338822380], [0.220, 1.54642908481, 23546.75362303080], [0.214, 1.35475764936, 184.84990797020], [0.228, 4.29420876593, 2970.91261075940], [0.229, 2.53361265404, 3710.31224264020], [0.273, 1.89943168433, 270.13016007080], [0.284, 3.28345980607, 16063.16484718500], [0.211, 5.84341192825, 1971.95217385480], [0.214, 0.22905754741, 5.19919116580], [0.246, 4.55971876123, 6040.34724601740], [0.229, 1.24432891752, 3568.08855948880], [0.216, 3.20098680120, 362.12113673080], [0.201, 2.45025935972, 20426.57109242200], [0.223, 2.07804482295, 17101.21113690720], [0.271, 3.49210901141, 3436.59165391760], [0.226, 0.42945734871, 557.09252119140], [0.264, 5.05794940070, 2938.94030494260], [0.207, 6.03491870748, 22487.37169284160], [0.197, 5.62923956977, 5209.47182633600], [0.211, 2.26445749553, 765.79306444640], [0.202, 0.88670673933, 767.84881934860], [0.212, 1.85965510753, 4782.87363546000], [0.194, 4.77420671032, 6850.80503653260], [0.192, 0.51565572072, 323.50541665740], [0.209, 4.79794980231, 14047.49376102520], [0.193, 2.56057288512, 18606.49894600020], [0.209, 1.46088434217, 5.85720229960], [0.214, 0.97578687412, 17468.85519794540], [0.196, 4.08789826861, 3262.86188271590], [0.198, 3.99111216230, 10018.24685144760], [0.235, 1.11133081576, 625.67019231240], [0.197, 0.48692287381, 15106.87569121440], [0.214, 5.33581901309, 955.24152459960], [0.199, 0.40088144456, 7586.68155006440], [0.251, 5.57906426342, 138.58819838440], [0.208, 4.11480858445, 1755.06264976500], [0.210, 2.30499661227, 53.30794628380], [0.253, 1.27099771143, 309.27832265580], [0.242, 3.71426781511, 3212.59358336240], [0.178, 3.06961783443, 1437.17561419860], [0.203, 0.28410501881, 582.99891137840], [0.190, 0.10457198807, 26087.90314157420], [0.178, 0.53068485806, 7366.26890762560], [0.245, 4.20195166994, 8436.28750316460], [0.176, 3.66697456425, 6688.27109009760], [0.177, 4.48104044431, 8799.98871377800], [0.181, 3.57461078885, 15121.10278521600], [0.198, 3.55065962909, 24606.13555322000], [0.187, 3.45440079747, 1329.51209026000], [0.176, 5.81532365473, 12406.16055082860], [0.235, 1.28568802052, 4427.39591298580], [0.179, 1.55718466444, 3362.46325602620], [0.174, 1.61086801253, 30065.51184029820], [0.199, 0.07164714815, 375.76573157020], [0.174, 4.58412775793, 3283.71405176420], [0.171, 5.82189798695, 23937.85638974100], [0.182, 2.57146189845, 418.50432280700], [0.168, 5.13131619552, 21393.54196985760], [0.183, 4.93161962050, 9468.26787725700], [0.167, 1.48091400654, 2619.47319549360], [0.169, 5.12437031125, 3223.29255847960], [0.188, 3.41823914376, 5032.77809620220], [0.181, 0.50010974122, 2125.87740737920], [0.164, 1.71077130702, 15849.86575174700], [0.202, 6.21085922593, 3909.43430072720], [0.171, 5.86158194602, 625.62513619720], [0.165, 3.85569118220, 13207.02930736500], [0.163, 2.04373367430, 3347.29609057390], [0.160, 2.83784244321, 5888.44996493220], [0.212, 2.32801112252, 3232.94890276120], [0.163, 4.23488695195, 31968.94865279940], [0.159, 1.48046671186, 249.90446074220], [0.160, 0.21960307161, 12942.96506292400], [0.220, 3.90787704883, 9638.94074787620], [0.161, 2.94093367568, 3370.04193523580], [0.159, 5.59017475732, 1442.27846241240], [0.221, 3.82548751198, 1954.71715036360], [0.192, 4.62595272276, 3336.68027343670], [0.164, 1.59200641542, 386.41965057220], [0.169, 5.45784867095, 259.56080502380], [0.201, 0.95077053594, 29424.63423291600], [0.174, 1.15216485688, 6382.09845913040], [0.163, 1.16606667991, 4289.78803566960], [0.187, 3.22135956460, 2751.54759969160], [0.162, 4.79372588575, 24889.57479599160], [0.192, 0.88040946364, 5244.04923920100], [0.160, 2.85034784370, 9374.82644678460], [0.172, 2.38601254063, 2281.24775016280], [0.202, 4.12164786769, 7321.12213971360], [0.156, 4.55171204694, 27682.14074415640], [0.170, 4.62851491273, 10824.20120254560], [0.157, 0.91363725609, 4503.08713110760], [0.156, 5.58255618318, 10448.43547097540], [0.157, 0.92229160815, 15636.56665630900], [0.171, 5.43820628341, 11904.91877320180], [0.180, 1.89091405241, 13575.74880223720], [0.198, 4.42539692212, 10025.42770875120], [0.158, 4.12087914642, 11240.16272807180], [0.211, 2.42218772392, 8749.15625447220], [0.183, 1.47934835951, 6677.34351804160], [0.197, 1.43469282909, 14061.72085502680], [0.170, 4.32424842659, 742.99006053260], [0.170, 2.92905324873, 9093.99731159660], [0.160, 2.79797608932, 1461.05405194640], [0.174, 5.37738922471, 3318.76159737340], [0.172, 0.35524089578, 2281.21324285840], [0.147, 2.76602235522, 4193.80880845180], [0.151, 4.23962231148, 3368.01398279660], [0.157, 1.01295201512, 24336.00539314920], [0.165, 0.58335652806, 15906.76412668260], [0.149, 5.69553079999, 31570.79964939120], [0.154, 5.28504381510, 1481.40937134520], [0.163, 1.81288628510, 18849.22754997420], [0.145, 3.57053080979, 3497.01314720220], [0.156, 3.56978076425, 21791.69097326579], [0.143, 0.56704903096, 13212.88650966460], [0.155, 0.08429188155, 6657.34641565180], [0.184, 2.54999403339, 24076.44458812540], [0.146, 1.16594990123, 526.16784674560], [0.144, 4.19229335185, 2771.79055267240], [0.169, 3.10771037057, 239.20548562500], [0.144, 6.26688878164, 6679.74038069130], [0.174, 2.37509025280, 3397.51080163540], [0.163, 3.88047919138, 16703.04487984680], [0.161, 1.73958633312, 2185.25126929280], [0.164, 0.62146994730, 1538.24043597800], [0.182, 6.16856014864, 6685.10618875760], [0.140, 4.08200595943, 4186.69526145100], [0.192, 4.47709998867, 57.87869600380], [0.151, 3.06451266512, 838.96928775040], [0.139, 1.12767399649, 6682.70932610790], [0.187, 4.97174626997, 6681.65473652630], [0.150, 5.69209290362, 9360.60435331840], [0.160, 5.66336382679, 10927.29397676420], [0.137, 3.46860408347, 5562.46906129680], [0.192, 5.27908098216, 34363.36559755600], [0.137, 5.87023088486, 2945.98654164060], [0.180, 1.07686767816, 15806.14683944200], [0.135, 0.34109799474, 7322.10246078180], [0.169, 2.27408583150, 379.37341387420], [0.172, 3.83276777655, 6621.85099148600], [0.134, 0.89486611090, 13286.18363552360], [0.168, 3.24434245132, 11614.43329373220], [0.135, 6.03727673544, 1214.80232962340], [0.150, 0.81912738038, 3416.87849797540], [0.136, 5.06627117467, 14421.83163698840], [0.138, 5.19336961955, 13363.43002786740], [0.163, 5.91124428824, 16703.07938715119], [0.181, 3.31978654659, 139.69813952280], [0.162, 4.05905033891, 1795.25844372100], [0.132, 0.40901506100, 1083.26036793700], [0.156, 0.12304144640, 1107.13880568480], [0.158, 6.25022915072, 6666.99775939800], [0.131, 3.95250083817, 3.45580804620], [0.147, 4.94673462086, 15010.89646399660], [0.140, 6.13853404667, 12729.66596748600], [0.131, 5.43398849473, 25665.51748340920], [0.135, 5.06017183369, 11876.46958573400], [0.128, 2.86969332730, 6549.68289171320], [0.174, 5.18169887171, 28230.18722269139], [0.179, 3.25589354429, 4922.57177498280], [0.139, 5.33624615245, 23958.63178523340], [0.127, 5.78406495652, 14577.18472611980], [0.128, 1.27276688747, 8584.66166590080], [0.133, 0.39052474466, 12410.73130054860], [0.134, 1.09641189843, 8962.43809625800], [0.125, 3.20445201519, 29.88204361020], [0.136, 3.62250122667, 3511.28529731900], [0.162, 5.36465149996, 2472.67876262220], [0.150, 0.40179894287, 1111.64224510200], [0.129, 1.94909076932, 19645.52555679060], [0.172, 5.21328160366, 6747.71226231400], [0.126, 4.39378462616, 21548.96236929180], [0.146, 3.85987749053, 13361.46938573100], [0.156, 5.24740844581, 6645.19698672220], [0.137, 4.94588047257, 20995.39296644940], [0.131, 1.72431469184, 11925.27409260060], [0.136, 2.04268940441, 10654.62101941260], [0.140, 1.54439148652, 8219.46528937760], [0.127, 6.16695075115, 10016.31435579200], [0.155, 5.47145482987, 2.96894541660], [0.132, 6.25626202928, 13227.38462676380], [0.121, 3.74135485334, 10294.51023745100], [0.134, 3.12718351732, 8962.47260356240], [0.122, 0.77282907794, 4936.79886898440], [0.125, 4.23213631052, 15650.79375031060], [0.157, 1.79175545524, 16489.76303806100], [0.155, 4.15655698197, 56.38318607620], [0.134, 1.53268827347, 708.98980227659], [0.136, 4.01025697673, 9797.49248439750], [0.156, 4.61556268820, 3354.83952070140], [0.131, 4.47476808853, 11776.89992986440], [0.118, 1.17466010141, 4606.17990532620], [0.128, 0.12648796247, 6681.64492949320], [0.122, 0.13511377940, 8322.55806359620], [0.119, 1.29139116350, 10544.41469819320], [0.128, 4.44966050740, 13465.54248101780], [0.119, 4.01709629990, 14481.20549890200], [0.147, 1.81590279650, 685.11136452880], [0.137, 4.78402836071, 3613.28538405140], [0.151, 1.48428558337, 9698.33186344200], [0.136, 2.47757608387, 10156.90236013480], [0.123, 2.42353206298, 6.13322593260], [0.117, 5.40635440024, 688.63448287780], [0.153, 5.00372030984, 14556.89671702380], [0.133, 3.15773785434, 1125.86933910360], [0.153, 1.94292660454, 6533.14612897330], [0.124, 4.94608245253, 12825.64519470380], [0.117, 1.13528750738, 4452.25467180180], [0.115, 3.34121813462, 10001.48196070061], [0.115, 3.44586362144, 7696.88787128380], [0.117, 0.72489390402, 27.46886639960], [0.132, 2.41318250916, 6717.25272007700], [0.118, 0.35995031424, 27832.03821928320], [0.157, 1.73929012934, 11560.07771607740], [0.148, 2.14023976341, 15265.88651930040], [0.113, 1.29183863745, 26880.31981303260], [0.151, 0.95890610457, 6530.17718355670], [0.153, 5.62679784282, 9911.63095888000], [0.157, 0.09791378159, 138.51749687070], [0.119, 2.16883964744, 7082.89697515680], [0.113, 5.43102427558, 422.02744115600], [0.130, 2.13493506322, 117.81280289200], [0.140, 2.51194591630, 28.98162997940], [0.128, 1.23822751200, 6680.80477730600], [0.111, 4.60294776614, 25135.82651831460], [0.118, 0.34226497704, 4140.43355186520], [0.112, 4.02233737541, 6314.00052443720], [0.134, 3.35926214730, 11247.20896476980], [0.120, 6.09430372868, 4106.40549114620], [0.117, 0.03006245187, 7.67379197540], [0.109, 3.62630036582, 3344.11829139661], [0.109, 1.94277745743, 16702.99482319620], [0.114, 4.87315937546, 6151.51663465280], [0.109, 5.65707270595, 3344.15279870100], [0.108, 0.72637519191, 10.56935504700], [0.128, 5.77326416186, 13369.56325380000], [0.147, 4.73848506543, 11610.91017538320], [0.145, 4.95495312886, 9859.37064396720], [0.111, 3.28808788953, 257.01800774300], [0.112, 4.79777726412, 12140.60114047780], [0.109, 3.73199687068, 13635.12266415080], [0.117, 1.20057736014, 6705.10329114740], [0.149, 4.91688353237, 277.03499374140], [0.108, 3.37299798972, 6717.83021870380], [0.106, 0.53379407701, 5085.10572141780], [0.125, 4.62770076269, 9329.67967887260], [0.107, 4.60288570375, 1957.72507985320], [0.113, 4.04786119569, 6953.89781075120], [0.106, 0.75378922686, 149.89747512680], [0.114, 0.62074562387, 6151.55114195720], [0.108, 5.22204692781, 1556.56814695540], [0.104, 1.02502614223, 4878.85286267780], [0.133, 1.15811543786, 816.65332621520], [0.134, 1.69834857217, 183.86958690200], [0.104, 2.58832774275, 14591.41182012140], [0.107, 4.42117075795, 7.13080065300], [0.126, 0.03750399181, 16.83220104979], [0.102, 1.20624870972, 11986.67590695340], [0.102, 2.97579561878, 29822.78323632420], [0.116, 4.73049067619, 13366.04013545100], [0.130, 4.10484632841, 35.60779058380], [0.113, 3.69200525056, 44.65383324020], [0.111, 5.12900291511, 146.79443287140], [0.126, 1.82187459534, 26887.36604973060], [0.121, 6.08309355316, 7100.70949727480], [0.105, 6.16606590276, 9175.75444534820], [0.132, 2.97955203077, 1250.83019630080], [0.106, 5.08419485009, 8742.04270747140], [0.120, 0.59116561391, 31172.65064598300], [0.112, 3.70888430091, 10050.28646756720], [0.100, 1.82077956276, 12012.58229714040], [0.107, 4.86100312387, 7899.55030137200], [0.099, 0.72997085174, 18977.17908300880], [0.107, 5.25025570307, 63.73589830340], [0.099, 2.79139996703, 17932.02424682120], [0.097, 4.94370173613, 28109.21461605200], [0.122, 4.18676567644, 19617.07636932279], [0.121, 3.14207351411, 9278.84721956680], [0.112, 1.43537110436, 16232.74503031800], [0.096, 2.57929371627, 12715.43887348440], [0.096, 2.51396484677, 3535.58381116040], [0.112, 6.19137312195, 6685.15700666270], [0.109, 1.53428110338, 16703.12944380180], [0.096, 4.29245810274, 7906.59653807000], [0.096, 3.08847844641, 3468.63127003720], [0.095, 6.09186084700, 10037.08975128440], [0.094, 1.79812841802, 20047.19767854780], [0.110, 4.24859410294, 3337.07205469860], [0.093, 2.17945548408, 16066.06586147480], [0.115, 5.44548079869, 11353.89216764020], [0.098, 1.89605054783, 33406.12426699800], [0.101, 3.00793005829, 3528.53757446240], [0.096, 5.40659912420, 5749.86176654780], [0.113, 3.93443805059, 7167.19690618920], [0.092, 3.58985964414, 6724.94376570460], [0.119, 3.90561570260, 11346.77862063940], [0.097, 2.57280790230, 1747.60737815290], [0.118, 3.82111723459, 9072.66167112960], [0.096, 0.72646224606, 3152.68727893721], [0.092, 6.23928508055, 24491.42579258340], [0.099, 1.86991802881, 72.05573335480], [0.094, 1.51091806861, 9801.42463766060], [0.091, 4.94377681711, 8756.26980147300], [0.095, 2.58771497236, 11663.17049029600], [0.093, 0.66092443320, 30.99198474860], [0.088, 2.47386826588, 17232.75309859360], [0.100, 0.19616913512, 11883.58313273480], [0.094, 0.61277732908, 73.63546321960], [0.091, 6.04139177526, 153.92523352440], [0.095, 0.30865798871, 29168.59654624120], [0.110, 6.27936643935, 3337.10656200300], [0.087, 2.09287965409, 10264.56588407340], [0.089, 3.27633365389, 3002.36972771680], [0.091, 1.89622049447, 37895.42629036740], [0.118, 3.88268323672, 1236.07566032300], [0.094, 2.27819061990, 4845.90023579280], [0.085, 3.07438636612, 9983.70424446160], [0.086, 3.94463425808, 16.76489074700], [0.099, 4.58890225582, 3774.32416457660], [0.086, 1.27758598252, 34513.26307268280], [0.118, 6.10625309129, 454.90936652730], [0.096, 6.08772700197, 1755.47168467910], [0.085, 4.73193631802, 4576.68808702280], [0.116, 0.88573303872, 16511.61386738740], [0.083, 3.13948373813, 10191.41746323240], [0.083, 0.36972674664, 9755.23023837760], [0.112, 2.26524635842, 10006.58480891440], [0.087, 4.25461508452, 8.16813658240], [0.087, 5.31716927554, 1868.85939963620], [0.115, 3.30507830050, 14157.70008224460], [0.087, 2.90507350729, 36.99559061100], [0.083, 3.58400049244, 12928.73796892240], [0.086, 2.46839611271, 113.72943956840], [0.096, 2.99829695985, 6510.55198278040], [0.084, 1.34333260788, 4133.38731516720], [0.093, 2.41895388985, 20040.15144184979], [0.085, 5.92093268818, 12299.54465826100], [0.082, 4.71321236549, 7733.49323658800], [0.081, 5.26971110105, 12199.97500239140], [0.080, 4.34410099751, 7218.02936549500], [0.095, 0.02613500045, 2.90101428980], [0.094, 6.22018441621, 20043.69181385099], [0.085, 4.66573809999, 8638.94993325280], [0.079, 2.89839604813, 22854.59602180400], [0.104, 0.94882888784, 2735.76268599500], [0.080, 1.68097745917, 12839.87228870540], [0.085, 1.95515305721, 4686.95671800959], [0.094, 0.58147434179, 14128.24277124560], [0.091, 1.16317999954, 3495.96551583120], [0.084, 4.04104644774, 9815.65173166220], [0.082, 1.83662951627, 19190.47817844680], [0.080, 4.04733274699, 3188.71514561460], [0.084, 2.71620952175, 12089.76868117200], [0.080, 2.77363158210, 9495.66943335380], [0.078, 5.77285430206, 10397.60301166960], [0.084, 0.78188080031, 7214.43893684320], [0.094, 2.14762315943, 13532.02988993220], [0.101, 5.76349087526, 1484.93248969420], [0.082, 3.11421789241, 8446.99147881720], [0.096, 5.85152670536, 3492.50970778500], [0.079, 4.69625309523, 5298.33750655300], [0.097, 3.97960395898, 18208.34994259200], [0.105, 1.74376904536, 36.64856292950], [0.094, 4.18941238607, 20043.65730654660], [0.075, 3.46629875063, 13341.67431130680], [0.092, 2.67278833288, 6680.79497027290], [0.075, 4.59723160021, 9993.38809263160], [0.087, 0.91979096638, 8425.71814811760], [0.074, 0.42228487063, 48429.28218232440], [0.074, 0.48470953224, 11456.98494185880], [0.077, 0.10707484151, 1371.41176345600], [0.093, 1.38010528069, 3145.64104223920], [0.075, 5.28061257070, 12306.59089495900], [0.079, 3.78666386040, 7.57867920960], [0.073, 4.42902162523, 14.73728232560], [0.084, 3.41538432898, 6637.50594109460], [0.093, 3.41302342683, 1596.11913198180], [0.071, 3.13537213242, 9488.62319665580], [0.079, 2.33442828498, 12465.53441274220], [0.078, 2.21525134547, 2810.98877190800], [0.099, 0.48801369293, 17499.36014031540], [0.075, 4.10299895268, 5525.86369599260], [0.071, 4.04186021414, 259.49349472100], [0.073, 2.20102876718, 30774.50164257480], [0.074, 4.93439968296, 13517.80279593060], [0.071, 5.32625652676, 6670.17915313570], [0.078, 2.17664185326, 13421.82356871280], [0.088, 5.38469204503, 17762.44406368820], [0.081, 2.48353174238, 73.60095591520], [0.092, 1.13088448190, 7747.72033058960], [0.070, 1.16361323015, 5220.17080145320], [0.084, 5.83220387910, 22.37827130260], [0.076, 5.21065604639, 4271.97551355160], [0.080, 4.01817623627, 3311.18291816379], [0.068, 2.45937697940, 6279.55273164240], [0.067, 4.31723563048, 2281.29780681340], [0.067, 4.88776321797, 4379.63903749020], [0.069, 3.57006764536, 14955.04572043200], [0.078, 2.62374773232, 2810.85415130240], [0.067, 4.76301301456, 6812.76681508600], [0.070, 5.60319851277, 13383.22510229160], [0.070, 3.05647570196, 10081.21114201300], [0.081, 4.91537623765, 3333.92876282570], [0.082, 5.49204987110, 5483.25472482600], [0.065, 3.50466797067, 9161.52735134660], [0.065, 2.79212460026, 13497.51478683460], [0.070, 0.93640431668, 6106.88005506480], [0.073, 2.57583496978, 6614.73744448520], [0.070, 0.84170070580, 16695.94858649819], [0.069, 1.10040627005, 2544.33167353560], [0.063, 6.05841309176, 6453.74872061060], [0.069, 2.67053540192, 2641.34127847220], [0.086, 1.73112264739, 6286.59896834040], [0.062, 5.49002783256, 4957.08687808040], [0.072, 3.38857910283, 3184.21170619740], [0.069, 5.35281990892, 2544.29716623120], [0.064, 4.79175268505, 3181.66890891660], [0.060, 6.18449904353, 3361.94806716680], [0.065, 1.48236627574, 4819.47900076420], [0.054, 3.66018290396, 2917.53735417280], [0.064, 4.72286914683, 2281.16318620780], [0.053, 4.65521663671, 3448.27595063840], [0.060, 0.77450276964, 3319.27678623280], [0.051, 1.45142985881, 3547.31316399640], [0.051, 4.81258158513, 4403.51747523800], [0.050, 0.37366902835, 3322.79990458180], [0.050, 4.68787711774, 3253.30422216000], [0.067, 4.63578431535, 4694.00295470760], [0.049, 3.17471347671, 5452.26274007740], [0.051, 2.54791773443, 4001.84535348080], [0.048, 2.81171553464, 3372.58473251660], [0.054, 4.45945188023, 10284.92120347220], [0.053, 3.85131213520, 9758.75335672660], [0.051, 1.11244863072, 6901.63749583840], [0.062, 1.42198009630, 6830.78805053420], [0.055, 5.61672988180, 45494.58142974879], [0.054, 0.61701959453, 4716.38622654560], [0.054, 4.28556326526, 2910.49111747480], [0.045, 3.14626081312, 13951.51453380740], [0.050, 4.16235480519, 12979.55317457600], [0.046, 1.66182208107, 7768.00833968560], [0.045, 5.07701425888, 14951.52260208300], [0.043, 4.31723459530, 5881.40372823420], [0.045, 2.39713581676, 8852.24902869080], [0.043, 2.10202660495, 3337.15661865360], [0.048, 0.19934255781, 1905.46476494040], [0.056, 5.25687695855, 12808.88030395680], [0.049, 2.06320966659, 4296.90158267040], [0.042, 6.07282126953, 4295.85395129940], [0.043, 1.74571613780, 3130.83644961080], [0.050, 2.27112469544, 3427.92063123960], [0.050, 0.30214747765, 3358.42494881780], [0.043, 5.05297177283, 3229.42578441220], [0.054, 6.11998016428, 16894.51039961060], [0.043, 1.90603004035, 3451.79906898740], [0.039, 0.50727886431, 10011.20061474960], [0.052, 3.17851184154, 2324.94940881560], [0.038, 4.88249540246, 3499.55594448300], [0.039, 5.28113083211, 3343.15522398060], [0.039, 4.98185580267, 3468.56395973440], [0.047, 2.16244218985, 10027.36020440680], [0.037, 5.84953090935, 6791.43117461900], [0.048, 5.03779546898, 7064.10413197060], [0.038, 0.58076516432, 8966.38750317330], [0.051, 3.36181117037, 8976.68244391180], [0.042, 4.13725767158, 8336.78515759780], [0.038, 5.75425648893, 4531.53631857540], [0.038, 3.55681323215, 5351.71276313960], [0.040, 2.79414141035, 3067.93946934820], [0.040, 4.99798468494, 10042.19259949820], [0.037, 1.82286411009, 10017.95594474140], [0.036, 6.02115369796, 6474.52411610300], [0.044, 3.01299253859, 7417.10136693140], [0.045, 2.33470159894, 3123.79021291280], [0.039, 4.91767933978, 8034.61538140740], ], # L1 [ [334085627474.342, 0.00000000000, 0.00000000000], [1458227.051, 3.60426053609, 3340.61242669980], [164901.343, 3.92631250962, 6681.22485339960], [19963.338, 4.26594061030, 10021.83728009940], [3452.399, 4.73210386365, 3.52311834900], [2485.480, 4.61277567318, 13362.44970679920], [841.551, 4.45858256765, 2281.23049651060], [537.566, 5.01589727492, 398.14900340820], [521.041, 4.99422678175, 3344.13554504880], [432.614, 2.56066402860, 191.44826611160], [429.656, 5.31646162367, 155.42039943420], [381.747, 3.53881289437, 796.29800681640], [314.129, 4.96335266049, 16703.06213349900], [282.804, 3.15967518204, 2544.31441988340], [205.664, 4.56891455660, 2146.16541647520], [168.805, 1.32894813366, 3337.08930835080], [157.587, 4.18501035954, 1751.53953141600], [133.686, 2.23325104196, 0.98032106820], [116.561, 2.21347652545, 1059.38193018920], [117.591, 6.02407213861, 6151.53388830500], [113.595, 5.42803224317, 3738.76143010800], [133.563, 5.97421903927, 1748.01641306700], [91.098, 1.09627836591, 1349.86740965880], [83.301, 5.29636626272, 6684.74797174860], [113.876, 2.12869455089, 1194.44701022460], [80.776, 4.42813405865, 529.69096509460], [79.531, 2.24864266330, 8962.45534991020], [72.505, 5.84208163240, 242.72860397400], [72.946, 2.50189460554, 951.71840625060], [71.487, 3.85636094435, 2914.01423582380], [85.342, 3.90854841008, 553.56940284240], [67.582, 5.02327686473, 382.89653222320], [65.089, 1.01802439311, 3340.59517304760], [65.089, 3.04879603978, 3340.62968035200], [61.508, 4.15183159800, 3149.16416058820], [48.477, 4.87362121538, 213.29909543800], [46.584, 1.31452419914, 3185.19202726560], [56.520, 3.88813699320, 4136.91043351620], [47.613, 1.18238046057, 3333.49887969900], [41.343, 0.71385375517, 1592.59601363280], [40.055, 5.31611875491, 20043.67456019880], [40.272, 2.72542480614, 7.11354700080], [32.886, 5.41067411968, 6283.07584999140], [28.244, 0.04534124888, 9492.14631500480], [22.294, 5.88516997273, 3870.30339179440], [22.431, 5.46592525433, 20.35531939880], [22.612, 0.83775884934, 3097.88382272579], [21.418, 5.37934044204, 3340.54511639700], [23.335, 6.16762213077, 3532.06069281140], [26.579, 3.88960724782, 1221.84856632140], [22.797, 1.54504711003, 2274.11694950980], [20.431, 2.36353950189, 1589.07289528380], [20.186, 3.36375535766, 5088.62883976680], [26.554, 5.11271747607, 2700.71514038580], [19.675, 2.57805423988, 12303.06777661000], [19.468, 0.49216434489, 6677.70173505060], [21.104, 3.52525428062, 15.25247118500], [21.425, 4.97081508139, 3340.67973700260], [18.505, 5.57863503922, 1990.74501704100], [17.811, 6.12537931996, 4292.33083295040], [16.472, 2.60291845066, 3341.59274776800], [16.599, 1.25519718278, 3894.18182954220], [19.455, 2.53112676345, 4399.99435688900], [15.000, 1.03464802434, 2288.34404351140], [20.029, 4.73119428749, 4690.47983635860], [15.381, 2.47009470350, 4535.05943692440], [19.964, 5.78652958398, 7079.37385680780], [15.307, 2.26515985343, 3723.50895892300], [14.705, 3.36979890389, 6681.24210705180], [13.535, 2.12334410410, 5486.77784317500], [12.950, 5.61929676688, 10025.36039844840], [12.682, 2.95022113262, 3496.03282613400], [13.644, 1.97739547259, 5614.72937620960], [13.013, 1.51424752315, 5628.95647021120], [14.705, 1.33902715586, 6681.20759974740], [11.353, 6.23438193885, 135.06508003540], [13.275, 3.42243595774, 5621.84292321040], [10.867, 5.28184140482, 2818.03500860600], [11.850, 3.12701832949, 426.59819087600], [10.472, 2.73581537999, 2787.04302385740], [11.132, 5.84178807242, 2803.80791460440], [11.764, 2.58551521265, 8432.76438481560], [11.854, 5.47630686910, 3553.91152213780], [8.490, 1.91378007528, 11773.37681151540], [9.708, 4.52957217749, 6489.77658728800], [8.562, 3.16141186861, 162.46663613220], [10.958, 4.15771850822, 2388.89402044920], [8.133, 1.61295625304, 2957.71589447660], [8.840, 4.23294294197, 7477.52286021600], [8.034, 5.69983564288, 6041.32756708560], [8.344, 2.18273563186, 23.87843774780], [7.696, 5.71877332978, 9623.68827669120], [8.695, 4.43542512603, 5092.15195811580], [8.434, 3.16292250873, 3347.72597370060], [6.664, 5.07517838003, 8031.09226305840], [8.650, 4.33256981793, 3339.63210563160], [7.372, 6.17831593269, 3583.34103067380], [5.726, 3.68120120299, 8429.24126646660], [6.186, 3.54165967734, 692.15760122680], [5.438, 1.05129689580, 4933.20844033260], [6.108, 1.66240879939, 6525.80445396540], [5.154, 1.14703246368, 28.44918746780], [4.850, 5.29254832907, 6681.29216370240], [5.467, 6.12511022569, 2487.41604494780], [4.866, 3.10475368803, 5.52292430740], [6.360, 2.11896608283, 5884.92684658320], [5.223, 0.37446264120, 12832.75874170460], [4.710, 0.23326120326, 36.02786667740], [4.954, 2.44806818502, 5099.26550511660], [4.861, 5.60505298870, 6467.92575796160], [4.706, 0.02998416568, 7210.91581849420], [4.845, 5.70115105957, 6681.15754309680], [5.496, 2.01006612503, 522.57741809380], [4.964, 1.51006845561, 1744.42598441520], [4.443, 0.31208413867, 10018.31416175040], [5.381, 0.18359380473, 2942.46342329160], [4.075, 3.95582108330, 3.88133535800], [5.462, 0.19274227117, 7632.94325965020], [4.110, 1.59535768711, 7234.79425624200], [4.287, 2.87635993968, 2810.92146160520], [5.276, 2.22638595594, 3127.31333126180], [4.450, 4.17005729081, 2906.90068882300], [5.144, 5.66878565669, 23384.28698689860], [3.844, 2.26442183160, 2699.73481931760], [3.514, 1.76463961051, 1758.65307841680], [3.351, 2.66194137496, 4929.68532198360], [4.299, 4.43057446968, 640.87760738220], [3.140, 1.75866226873, 9595.23908922340], [3.716, 2.91969220147, 15643.68020330980], [3.249, 6.13937134379, 10419.98628350760], [3.077, 2.56115174488, 7064.12138562280], [3.208, 2.32519453080, 5085.03841111500], [2.930, 1.27797225349, 574.34479833480], [2.771, 1.75664216142, 639.89728631400], [3.325, 2.58945297384, 2118.76386037840], [3.187, 2.86646751510, 7740.60678358880], [2.780, 0.43157089331, 5828.02847164760], [2.824, 0.98500544471, 3191.04922956520], [3.016, 1.86555882509, 7.04623669800], [3.364, 1.52847138842, 6674.11130639880], [2.672, 3.70855172347, 10021.85453375160], [2.636, 3.11790581052, 6836.64525283380], [2.672, 1.67778079449, 10021.82002644720], [2.563, 3.77294986894, 2921.12778282460], [2.509, 0.30454165124, 3475.67750673520], [2.400, 0.96972421975, 3319.83703120740], [2.262, 2.81394314950, 7875.67186362420], [2.395, 2.96002707485, 6682.20517446780], [2.210, 0.61263930586, 10973.55568635000], [2.248, 4.12382007742, 59.37386191360], [2.426, 5.91508357946, 5331.35744374080], [2.158, 2.17583545077, 15113.98923821520], [1.941, 5.47668312685, 11371.70468975820], [1.903, 5.11165653855, 1066.49547719000], [2.370, 3.87889340214, 3355.86489788480], [2.299, 1.15914205086, 3320.25710730100], [1.944, 5.89081872133, 6894.52394883760], [1.843, 3.07643314617, 3325.35995551480], [1.809, 4.97905218276, 1648.44675719740], [2.136, 1.91364787635, 8969.56889691100], [2.099, 3.00410255642, 6254.62666252360], [1.915, 3.55907431740, 3767.21061757580], [1.991, 5.37274107053, 206.18554843720], [1.685, 5.49701299817, 266.60704172180], [1.646, 1.31923405548, 3264.34635542420], [1.732, 1.81361103995, 536.80451209540], [1.723, 3.25900379342, 7903.07341972100], [1.564, 5.75428852012, 3360.96774609859], [1.589, 1.73273563259, 3134.42687826260], [1.690, 2.43213510013, 3120.19978426100], [1.549, 1.54016426558, 8425.65083781480], [1.536, 5.88431472627, 20.77539549240], [1.460, 4.89733072879, 9830.38901398780], [2.023, 5.94808387002, 13365.97282514820], [1.991, 3.11613326265, 3361.38782219220], [1.401, 2.24482184868, 3344.20285535160], [1.365, 4.58006320751, 10818.13528691580], [1.392, 5.48931017516, 170.67287061920], [1.360, 3.07974035205, 6127.65545055720], [1.345, 1.18653158091, 14584.29827312060], [1.717, 5.62501515015, 6158.64743530580], [1.408, 1.82072980335, 3337.02199804800], [1.736, 2.01921900546, 10575.40668294180], [1.402, 4.50079374387, 5729.50644714900], [1.266, 5.91088435118, 9808.53818466140], [1.433, 6.05024653324, 12964.30070339100], [1.223, 0.82796258263, 419.48464387520], [1.393, 1.05117949107, 6438.49624942560], [1.272, 1.50116723856, 8439.87793181640], [1.143, 4.89747373731, 220.41264243880], [1.183, 3.52587190041, 6688.33840040040], [1.132, 6.19236255633, 6144.42034130420], [1.154, 2.23058485970, 8955.34180290940], [1.129, 3.44264300692, 10177.25767953360], [1.152, 5.29913300616, 27.40155609680], [1.274, 4.58421238440, 6247.51311552280], [1.093, 2.82623332360, 4569.57454002200], [1.303, 0.44350560735, 87.30820453981], [1.335, 2.14204457730, 11243.68584642080], [1.102, 1.96260837539, 6298.32832117640], [1.066, 2.89865914321, 10404.73381232260], [1.027, 4.79269049654, 3914.95722503460], [1.015, 0.22847818730, 3230.40610548040], [1.041, 3.73274497451, 10213.28554621100], [1.154, 4.14326179244, 6261.74020952440], [1.306, 3.67645557029, 2301.58581590939], [1.145, 5.12292846748, 4562.46099302120], [1.275, 5.14333847164, 2693.60159338500], [0.914, 1.22398892152, 103.09277421860], [0.955, 1.52875141393, 3369.06161416760], [0.908, 0.48223420834, 13358.92658845020], [0.892, 1.35161136807, 1214.73501932060], [0.998, 3.29665881950, 3178.14579056760], [0.980, 1.69212466625, 43.71891230500], [0.919, 2.45445889752, 13916.01910964160], [0.899, 5.94990531529, 12168.00269657460], [0.891, 5.63297246408, 10021.90459040220], [0.922, 3.91483430303, 9225.53927328300], [0.930, 0.24073004700, 6923.95345737360], [0.923, 1.10396074450, 29.42950853600], [0.816, 4.65198282005, 2707.82868738660], [0.791, 6.08595583868, 2384.32327072920], [0.820, 4.80968546763, 533.21408344360], [0.758, 2.06012386134, 12935.85151592320], [0.738, 1.03564559078, 14314.16811304980], [0.908, 0.69862047595, 16173.37116840440], [0.700, 4.08788234610, 5202.35827933520], [0.829, 2.01062325398, 9866.41688066520], [0.887, 6.04145842617, 10021.76996979660], [0.768, 1.39532897827, 8273.82086703240], [0.873, 4.45446600602, 3316.73398895200], [0.673, 3.02440642752, 1039.02661079040], [0.660, 2.83410276989, 107.66352393860], [0.838, 0.39195370222, 10551.52824519400], [0.708, 3.27560955336, 18984.29263000960], [0.658, 6.01853128902, 26724.89941359840], [0.685, 1.98132615912, 1228.96211332220], [0.595, 0.10260171285, 111.18664228760], [0.563, 1.59138368358, 2391.43681773000], [0.555, 2.70801962190, 4555.34744602040], [0.696, 2.89276686038, 2648.45482547300], [0.587, 4.56017988729, 6680.24453233140], [0.540, 2.86002662919, 5459.37628707820], [0.530, 5.64877399946, 6034.21402008480], [0.520, 0.20012848836, 13760.59871020740], [0.552, 5.08766140543, 1903.43681250120], [0.512, 3.21411265909, 11081.21921028860], [0.641, 5.19459033638, 6048.44111408640], [0.677, 3.87723948458, 13517.87010623340], [0.534, 0.23224033336, 51.28033786241], [0.670, 3.69368226469, 3335.08950239240], [0.486, 2.41879628327, 3364.49086444760], [0.500, 4.31447859057, 3344.49376205780], [0.481, 1.56481992611, 1964.83862685400], [0.504, 2.47456295599, 3863.18984479360], [0.523, 0.65856269237, 853.19638175200], [0.481, 0.12971954679, 66.48740891440], [0.535, 2.98601678918, 8270.29774868340], [0.450, 2.02303462834, 13362.43245314700], [0.448, 5.59827312967, 149.56319713460], [0.519, 2.75931838722, 3503.07906283200], [0.534, 4.77352933347, 1118.75579210280], [0.450, 4.05380888708, 13362.46696045140], [0.439, 4.83194205477, 3116.26763099790], [0.567, 5.67483490268, 227.47613278900], [0.459, 3.44555998004, 6702.00024889200], [0.545, 2.01193901951, 7910.18696672180], [0.425, 2.79854459343, 433.71173787680], [0.429, 4.30113040289, 16858.48253293320], [0.409, 0.05448009540, 3304.58456002240], [0.434, 5.70806855136, 21.85082932640], [0.399, 4.93233684937, 9779.10867612540], [0.532, 1.31038986189, 6660.44945790720], [0.398, 5.31345458361, 13119.72110282519], [0.459, 2.53671963587, 74.78159856730], [0.384, 2.29906801437, 12310.18132361080], [0.467, 5.12562716972, 1596.18644228460], [0.516, 5.84767782422, 1052.26838318840], [0.414, 4.75409582610, 3981.49003408200], [0.365, 3.73271671549, 5518.75014899180], [0.367, 0.13506394328, 56.89837493560], [0.459, 0.15582180531, 9381.93999378540], [0.392, 2.15845463651, 3980.50971301380], [0.396, 1.48538591462, 17924.91069982040], [0.456, 0.64517343174, 6816.28993343500], [0.358, 5.87219240658, 3607.21946842160], [0.490, 0.65766946042, 3376.64029337720], [0.365, 1.91816243676, 3347.65866339780], [0.397, 1.80006148744, 7895.95987272020], [0.336, 2.14687780119, 6677.63442474780], [0.340, 2.88185925998, 17256.63153634140], [0.334, 6.13670038311, 5724.93569742900], [0.339, 4.08527025169, 664.75604513000], [0.432, 2.52188285182, 18454.60166491500], [0.336, 4.22863444521, 6696.47732458460], [0.342, 5.96724705923, 3546.79797513700], [0.326, 4.02557052581, 6872.67311951120], [0.323, 5.05444843838, 3237.51965248120], [0.324, 2.89151245241, 8329.67161059700], [0.321, 6.25886976298, 10235.13637553740], [0.333, 2.57725424455, 6684.81528205140], [0.356, 6.27424874986, 8671.96987044060], [0.319, 5.05665355586, 36.60536530420], [0.305, 3.88755666972, 7107.82304427560], [0.322, 6.28125601341, 16706.58525184800], [0.334, 3.15240620873, 11216.28429032400], [0.287, 6.16467002771, 3973.39616601300], [0.283, 2.67802456636, 3877.41693879520], [0.283, 1.66293157090, 1692.16566950240], [0.276, 2.94210551399, 3415.39402526710], [0.275, 0.53418048945, 17395.21973472580], [0.355, 3.31406527401, 10022.81760116760], [0.311, 1.50310910269, 6660.86953400080], [0.269, 1.84517097065, 11780.49035851620], [0.270, 4.42425307819, 310.84079886840], [0.275, 3.58464612058, 128.01884333740], [0.275, 2.22523539580, 3017.10701004240], [0.312, 5.15950395287, 7255.56965173440], [0.299, 0.72552273097, 155.35308913140], [0.353, 5.70047798350, 16460.33352952499], [0.267, 5.97864271046, 9499.25986200560], [0.270, 0.77063210836, 11236.57229942000], [0.339, 3.36092148900, 5625.36604155940], [0.315, 2.33795159922, 3281.23856478620], [0.247, 3.71002922076, 7373.38245462640], [0.328, 0.18162415648, 5618.31980486140], [0.247, 6.27486009856, 15508.61512327440], [0.292, 0.14989609091, 16304.91313009080], [0.326, 4.53606745007, 2178.13772229200], [0.286, 5.47710043383, 9168.64089834740], [0.246, 1.49838712480, 15110.46611986620], [0.262, 2.58821936465, 3336.73109134180], [0.244, 0.84015413449, 16062.18452611680], [0.245, 0.37772563756, 12721.57209941700], [0.250, 2.26824758119, 6784.31762761820], [0.248, 6.22740483254, 13149.15061136120], [0.255, 4.93078809107, 14158.74771361560], [0.240, 6.15843594225, 19800.94595622480], [0.249, 5.47044926479, 4407.10790388980], [0.235, 5.38750866169, 76.26607127560], [0.258, 6.10384464886, 2480.30249794700], [0.306, 5.35546231697, 2766.26762836500], [0.236, 5.25670707064, 13171.00144068760], [0.224, 4.52466909993, 12566.15169998280], [0.220, 5.83694256642, 13936.79450513400], [0.271, 1.42460945147, 14054.60730802600], [0.213, 0.21127914063, 1505.28780909299], [0.267, 5.16501015011, 3205.54734666440], [0.212, 4.26202838353, 6546.15977336420], [0.211, 6.21401684263, 3253.30422216000], [0.233, 3.72007597749, 3346.13535100720], [0.274, 2.91986569135, 10713.99488132620], [0.201, 3.36695295492, 6.68366387410], [0.223, 3.08788599159, 401.67212175720], [0.234, 2.24268269202, 110.20632121940], [0.264, 2.08178742740, 6475.03930496240], [0.231, 4.53806384480, 9602.35263622420], [0.213, 2.85452302656, 5415.65737477320], [0.195, 0.99589439506, 5642.19824260920], [0.259, 0.00464351114, 9380.95967271720], [0.197, 3.32573550633, 3657.00429635640], [0.228, 5.33299975472, 3561.02506913860], [0.193, 1.25502846507, 6606.44325483230], [0.199, 1.13665869139, 685.04405422600], [0.227, 4.49610509002, 589.06482700820], [0.217, 5.48740879816, 10596.18207843420], [0.192, 4.26501800444, 3333.56619000180], [0.188, 1.44301618203, 4885.96640967860], [0.178, 4.82506490541, 9070.11887384880], [0.184, 5.69637552141, 3351.24909204960], [0.187, 0.76021337348, 16699.53901514999], [0.226, 0.82767654373, 3265.83082813250], [0.204, 6.20933387021, 394.62588505920], [0.176, 3.89567349231, 10028.95082710020], [0.174, 3.68843293982, 735.87651353180], [0.173, 2.44269377255, 3603.69635007260], [0.177, 1.24154853329, 12722.55242048520], [0.184, 4.77203925989, 286.96236112060], [0.171, 4.67140116008, 20199.09495963300], [0.170, 5.13753345526, 1332.05488754080], [0.201, 2.37863157745, 16276.46394262300], [0.209, 0.57156268506, 11250.79939342160], [0.164, 1.98441291396, 10014.72373309860], [0.191, 0.60250751218, 56.80326216980], [0.171, 6.22556266993, 17277.40693183380], [0.166, 1.05948008727, 19513.98359510420], [0.163, 1.59661610701, 1437.17561419860], [0.165, 3.36308723589, 6665.97238221460], [0.184, 3.20554894393, 263.08392337280], [0.212, 3.10485836003, 4039.88357492740], [0.176, 3.41768939214, 9468.26787725700], [0.163, 1.39275730949, 8982.81066930900], [0.213, 3.39734274482, 931.36308685180], [0.189, 4.54004144896, 8542.97070603500], [0.191, 1.15555618959, 3169.93955608060], [0.155, 1.41249963094, 22.76849660940], [0.153, 5.14168081601, 156.40072050240], [0.159, 3.64996617906, 8013.27974094040], [0.151, 1.93804487507, 3384.33133900480], [0.157, 0.58554505759, 158.94351778320], [0.173, 2.72517427493, 2807.39834325620], [0.159, 0.67192454133, 13892.14067189380], [0.150, 2.66045714174, 19004.64794940840], [0.192, 5.73782632783, 206.70073729660], [0.143, 3.19213280913, 6843.69148953180], [0.194, 1.32358882667, 19402.79695281660], [0.143, 2.36478163720, 13207.02930736500], [0.140, 1.88800568840, 11766.26326451460], [0.144, 0.69018080218, 17085.95866572220], [0.183, 5.98085295555, 13362.51701710200], [0.161, 2.92764155222, 5.85720229960], [0.162, 6.07051064413, 6701.58017279840], [0.192, 0.86266150575, 2814.44457995420], [0.182, 5.26446797092, 3873.82651014340], [0.137, 0.41563614709, 5820.91492464680], [0.144, 3.02314051168, 708.98980227659], [0.184, 4.61314496499, 3329.97576135000], [0.131, 3.48156082643, 367.22432896240], [0.173, 3.09922849765, 12295.95422960920], [0.135, 2.23311632892, 15664.03552270859], [0.147, 1.95810911154, 5732.04924442980], [0.158, 1.48909254724, 29.49181830340], [0.127, 5.55534080040, 3368.01398279660], [0.129, 1.78002583252, 22743.40937951640], [0.132, 2.81496895377, 21795.21409161479], [0.127, 5.73090203501, 3340.19235060619], [0.164, 1.87613918877, 6709.67404086740], [0.123, 3.61238958991, 22324.90505670940], [0.129, 4.92064308735, 2540.79130153440], [0.121, 6.16922638434, 20206.14119633100], [0.122, 5.79901866314, 1854.63230563460], [0.133, 0.50941998058, 3274.12501778540], [0.151, 1.61342807879, 1107.13880568480], [0.165, 2.02795177586, 290.48547946960], [0.125, 0.52719797619, 2604.73591316800], [0.144, 5.68526782434, 8827.39026987480], [0.126, 3.80246508251, 765.79306444640], [0.116, 1.79450246249, 647.01083331480], [0.126, 2.00195272473, 699.27114822760], [0.147, 6.22619740782, 6040.34724601740], [0.119, 2.05840518265, 15121.10278521600], [0.114, 2.74877091470, 6460.81221096080], [0.155, 1.78154091696, 21265.52312652020], [0.146, 3.37351237411, 1861.74585263540], [0.118, 4.07281676691, 418.50432280700], [0.116, 0.10434606071, 13362.38239649640], [0.129, 0.78419803719, 3427.92063123960], [0.152, 0.32620694442, 3443.70520091840], [0.110, 0.56398082486, 661.23292678100], [0.111, 4.05380946072, 568.82187402740], [0.108, 3.17700641574, 3448.27595063840], [0.138, 4.47698517191, 3326.38533269820], [0.108, 4.89922372003, 9588.12554222260], [0.114, 4.80828825403, 6657.34641565180], [0.108, 4.10637483972, 13553.89797291080], [0.125, 0.33573243959, 18849.22754997420], [0.115, 3.18885465852, 2409.24933984800], [0.104, 3.23074163851, 3472.15438838620], [0.104, 0.09799515047, 30065.51184029820], [0.112, 1.64487733528, 10001.06188460700], [0.143, 3.53781769283, 6518.75821726740], [0.113, 5.20979306912, 2125.87740737920], [0.104, 2.77582098882, 38.13303563780], [0.133, 5.88513337452, 5835.14201864840], [0.105, 4.11662579413, 6675.70192909220], [0.102, 0.60100887043, 10264.56588407340], [0.101, 3.78636130664, 10042.61267559180], [0.139, 1.80936944447, 12323.42309600880], [0.101, 2.47217208753, 7380.49600162720], [0.130, 2.53454569863, 11769.85369316640], [0.100, 5.72291104291, 14.22709400160], [0.135, 4.20237564510, 4672.66731424060], [0.133, 0.34413768012, 16489.76303806100], [0.098, 1.44874403589, 3370.04193523580], [0.131, 1.31336606248, 3313.21087060300], [0.111, 3.12463539337, 309.27832265580], [0.101, 3.15369992044, 24150.08005134500], [0.102, 6.13479937096, 2277.70737816160], [0.099, 0.10085261274, 12839.87228870540], [0.134, 2.91637947295, 57.87869600380], [0.104, 3.30283052330, 3399.98628861340], [0.108, 4.92699760221, 802.36392244620], [0.106, 2.89298330043, 7799.98064550240], [0.112, 3.12761163915, 5989.06725217280], [0.094, 3.42562596561, 3510.19260983280], [0.102, 0.94285421551, 3209.07046501340], [0.096, 0.79636181668, 3024.22055704320], [0.093, 1.08979608844, 14577.18472611980], [0.097, 3.56551535742, 14421.83163698840], [0.092, 5.02279637510, 2494.52959194860], [0.123, 5.83481108101, 7747.72033058960], [0.111, 3.31406538379, 11610.91017538320], [0.118, 5.00845322960, 1581.95934828300], [0.091, 2.36839307589, 11140.59307220220], [0.099, 2.93269536697, 2067.93140107260], [0.124, 3.15220420912, 22345.26037610820], [0.090, 0.85462370851, 17232.75309859360], [0.125, 1.54866979468, 1435.14766175940], [0.113, 4.57220387105, 14712.31711645800], [0.103, 0.11158194413, 11.04570026390], [0.113, 2.41110151532, 5244.04923920100], [0.091, 1.77184730280, 2221.85663459700], [0.114, 1.92696878615, 8226.57883637840], [0.118, 0.29322259611, 2945.98654164060], [0.089, 4.49875865671, 21947.11137270000], [0.104, 1.36766858693, 4032.77002792660], [0.116, 4.67476277278, 272.67295735160], [0.105, 3.73327973850, 4989.05918389720], [0.095, 0.34653808205, 13517.80279593060], [0.086, 2.70925448214, 7218.02936549500], [0.112, 5.27572276726, 17499.36014031540], [0.114, 3.37335971932, 2938.94030494260], [0.090, 0.26623024836, 9485.03276800400], [0.086, 3.66786582491, 6997.61672305620], [0.087, 4.07823608680, 18606.49894600020], [0.117, 5.61863859185, 16511.61386738740], [0.084, 2.80171829534, 8584.66166590080], [0.086, 5.87459621301, 73.60095591520], [0.090, 1.07789160729, 10721.10842832700], [0.084, 0.78729386249, 146.81168652360], [0.112, 2.31690430881, 9638.94074787620], [0.083, 5.90575201511, 16858.41522263039], [0.082, 4.31690557700, 9374.82644678460], [0.083, 1.41315204958, 22854.59602180400], [0.084, 0.90320571725, 2171.02417529120], [0.082, 1.59442952041, 9947.05568153210], [0.082, 0.44163602941, 4782.87363546000], [0.086, 5.18335054161, 12410.73130054860], [0.085, 3.61669636863, 8965.97846825920], [0.097, 5.35511765140, 4996.17273089800], [0.085, 2.36814442737, 1062.90504853820], [0.078, 1.75580354602, 2060.81785407180], [0.087, 0.98702744399, 10156.90236013480], [0.098, 0.35294347682, 23546.75362303080], [0.101, 1.03298143418, 20040.15144184979], [0.088, 0.56201084357, 17101.21113690720], [0.082, 2.65765057749, 12979.55317457600], [0.085, 1.07007237991, 10706.88133432540], [0.082, 0.80588396320, 20735.83216142559], [0.092, 4.87180501294, 9389.05354078620], [0.078, 3.22869264518, 11925.27409260060], [0.074, 5.59171946181, 8535.85715903420], [0.080, 0.42260849968, 956.28915597060], [0.082, 1.47379060963, 16.83220104979], [0.073, 3.76950560688, 8859.36257569160], [0.073, 4.59130182630, 362.12113673080], [0.072, 5.15373872266, 9872.27408296480], [0.098, 2.47740242208, 5401.43028077160], [0.071, 0.08395696279, 15849.86575174700], [0.078, 0.04212599783, 16703.12944380180], [0.075, 3.77172360793, 4845.90023579280], [0.072, 2.01742377451, 1329.51209026000], [0.076, 0.30413402871, 72.05573335480], [0.097, 5.15109318550, 1.48447270830], [0.070, 0.33648335823, 23141.55838292460], [0.068, 0.34828385806, 20047.19767854780], [0.078, 1.42772075938, 16063.16484718500], [0.081, 2.37498404818, 16703.04487984680], [0.069, 3.66727984195, 13363.43002786740], [0.067, 1.77194706681, 18451.07854656599], [0.073, 0.41181711796, 33406.12426699800], [0.067, 3.15946840380, 8799.98871377800], [0.067, 4.07602260745, 10448.43547097540], [0.068, 1.78981361818, 224.34479570190], [0.066, 1.01449371817, 4193.80880845180], [0.067, 4.89249339125, 12082.65513417120], [0.081, 0.61914094848, 949.17560896980], [0.066, 3.39914635235, 10184.30391623160], [0.064, 5.50528849889, 4936.79886898440], [0.064, 1.82608235490, 3077.52850332700], [0.069, 2.48571574894, 10018.24685144760], [0.064, 2.80447322320, 20809.46762464520], [0.068, 0.97907335430, 6717.25272007700], [0.087, 2.45966764758, 7321.12213971360], [0.062, 1.69131771765, 632.78373931320], [0.081, 4.40575713075, 16703.07938715119], [0.063, 3.63625395496, 25685.87280280800], [0.075, 5.54907590704, 16872.64231663200], [0.061, 0.33159827734, 12012.58229714040], [0.063, 3.16314818302, 11670.28403729680], [0.062, 0.23148800541, 7314.00859271280], [0.078, 1.65377731167, 11614.43329373220], [0.068, 1.10866475394, 6155.05700665400], [0.068, 4.45713540461, 9175.75444534820], [0.081, 3.66553577428, 15265.88651930040], [0.068, 5.59792852411, 377.37360791580], [0.059, 6.25689995147, 41427.48698317880], [0.072, 3.39739853142, 685.11136452880], [0.062, 0.11206359088, 14047.49376102520], [0.057, 4.31819630987, 95.97922721780], [0.070, 5.98596344975, 6531.66165626500], [0.066, 5.93804470886, 3490.17562383440], [0.056, 5.11205539684, 7322.10246078180], [0.056, 3.36788837326, 4379.63903749020], [0.056, 2.20908914878, 6688.27109009760], [0.057, 4.57828186723, 10037.08975128440], [0.057, 0.04695703833, 24889.57479599160], [0.065, 2.70973517401, 19617.07636932279], [0.068, 3.51423189318, 14556.89671702380], [0.056, 5.94452825242, 21548.96236929180], [0.056, 3.94541346495, 25665.51748340920], [0.055, 0.45166365461, 16702.99482319620], [0.062, 0.05229160039, 14061.72085502680], [0.055, 1.14774475393, 4459.36821880260], [0.065, 6.21442820689, 6947.83189512140], [0.056, 5.01712943722, 485.97205278960], [0.065, 1.51615558729, 5511.63660199100], [0.072, 4.90742373357, 25287.72379939980], [0.057, 5.31542907454, 28628.33622609960], [0.055, 4.02023620788, 4005.36847182980], [0.054, 5.51196184505, 44.65383324020], [0.053, 0.46840976995, 19645.52555679060], [0.053, 4.51539970261, 9886.77220006400], [0.069, 3.37092084432, 41.55079098480], [0.072, 4.66520155151, 6685.10618875760], [0.052, 2.05209599225, 7366.26890762560], [0.052, 6.25882226723, 12509.25332504720], [0.060, 0.33350021257, 13575.74880223720], [0.059, 5.94433755684, 625.67019231240], [0.050, 2.65624501709, 10124.93005431800], [0.068, 2.92105834159, 10025.42770875120], [0.051, 2.88289068067, 39601.89191244960], [0.069, 1.09637075565, 24076.44458812540], [0.052, 2.65290577481, 15650.79375031060], [0.052, 3.28683313010, 6756.00645196690], [0.054, 5.34683925496, 6578.13207918100], [0.054, 2.77410607136, 6705.10329114740], [0.049, 2.65700209900, 6944.30877677240], [0.053, 5.67436244967, 1883.08149310240], [0.048, 5.68336050679, 8646.06348025360], [0.051, 0.11390643300, 17402.33328172660], [0.065, 1.03099992649, 4106.40549114620], [0.060, 1.00159365247, 151.89728108520], [0.050, 3.84651247899, 45494.58142974879], [0.047, 3.03959709242, 5408.54382777240], [0.063, 4.16165369755, 8186.51266249260], [0.046, 2.69368087378, 16547.64173406480], [0.051, 2.99576014378, 3774.32416457660], [0.044, 2.00664763411, 6418.14093002680], [0.045, 4.01853755929, 19406.67828817460], [0.058, 3.14474753550, 4025.65648092580], [0.050, 2.59881540437, 6621.85099148600], [0.043, 4.87912487459, 6414.61781167780], [0.042, 5.20400092044, 4447.75123238460], [0.051, 1.99634375899, 5032.77809620220], [0.043, 1.28813888865, 6643.09181776180], [0.040, 0.96801618560, 14591.41182012140], [0.039, 1.84985100829, 10001.48196070061], [0.039, 5.69967200167, 6106.88005506480], [0.038, 3.27498743518, 18052.92954315780], [0.039, 2.84167905068, 6652.77566593180], [0.044, 0.57891618854, 16865.52876963120], [0.043, 4.61937364869, 3341.03250279340], [0.042, 6.02555835659, 6691.86151874940], [0.034, 4.97734992350, 6670.58818804980], [0.033, 1.39167727215, 4825.54491639400], [0.035, 6.02955363644, 3568.08855948880], [0.035, 0.31961016732, 6645.19698672220], [0.032, 5.63043769073, 3511.28529731900], [0.031, 5.42978464210, 9945.57120882380], [0.038, 5.66461657503, 3416.87849797540], [0.030, 0.98518793666, 20426.57109242200], [0.038, 0.12870962242, 6604.95878212400], [0.037, 5.48374357342, 3311.18291816379], [0.032, 6.11106979810, 4392.88080988820], [0.031, 3.18481282781, 3341.04230982650], [0.034, 2.32358226279, 9072.66167112960], [0.039, 4.11042361929, 3312.16323923200], [0.027, 0.57810321636, 3391.89276456221], [0.029, 2.48646403166, 9815.65173166220], [0.031, 0.44265747667, 3451.79906898740], [0.027, 6.13498177783, 3362.46325602620], [0.027, 6.21846173482, 5223.69391980220], [0.027, 2.94945830517, 7203.80227149340], [0.027, 3.26179855800, 8756.26980147300], [0.027, 3.94385271700, 23958.63178523340], [0.033, 3.77237326006, 12808.88030395680], [0.030, 4.75096367323, 15906.76412668260], [0.031, 0.88248871193, 3340.18254357310], [0.025, 0.31303295413, 6571.01853218020], [0.031, 4.29076841627, 10020.85695903120], [0.026, 2.22427360058, 10050.28646756720], [0.025, 0.67881122439, 23937.85638974100], [0.031, 1.72899093511, 13745.34623902240], [0.024, 0.20355912395, 3229.42578441220], [0.032, 3.37195631109, 2284.75361485960], ], # L2 [ [58015.791, 2.04979463279, 3340.61242669980], [54187.645, 0.00000000000, 0.00000000000], [13908.426, 2.45742359888, 6681.22485339960], [2465.104, 2.80000020929, 10021.83728009940], [398.379, 3.14118428289, 13362.44970679920], [222.022, 3.19436080019, 3.52311834900], [120.957, 0.54325292454, 155.42039943420], [61.517, 3.48529427371, 16703.06213349900], [53.638, 3.54191121461, 3344.13554504880], [34.268, 6.00188499119, 2281.23049651060], [31.665, 4.14015171788, 191.44826611160], [29.839, 1.99870679845, 796.29800681640], [23.168, 4.33403365928, 242.72860397400], [21.659, 3.44532466378, 398.14900340820], [16.044, 6.11000472441, 2146.16541647520], [20.370, 5.42191375400, 553.56940284240], [14.927, 6.09541783564, 3185.19202726560], [16.227, 0.65678953303, 0.98032106820], [14.317, 2.61851897591, 1349.86740965880], [14.416, 4.01923812101, 951.71840625060], [11.934, 3.86122163021, 6684.74797174860], [15.648, 1.22086121940, 1748.01641306700], [11.260, 4.71822363671, 2544.31441988340], [13.352, 0.60189008414, 1194.44701022460], [10.396, 0.25038714677, 382.89653222320], [9.468, 0.68170713564, 1059.38193018920], [9.229, 3.83209092321, 20043.67456019880], [9.005, 3.88271826102, 3738.76143010800], [7.501, 5.46498630412, 1751.53953141600], [6.497, 5.47773072872, 1592.59601363280], [6.311, 2.34104793674, 3097.88382272579], [6.859, 2.57522504136, 3149.16416058820], [5.870, 1.14783576679, 7.11354700080], [6.681, 2.37843690339, 4136.91043351620], [4.647, 4.42957708526, 6151.53388830500], [4.166, 3.68631477611, 5614.72937620960], [4.764, 2.89684755585, 3333.49887969900], [4.045, 6.12493402657, 5628.95647021120], [3.653, 4.06679068397, 1990.74501704100], [3.618, 2.46868561769, 529.69096509460], [3.277, 0.68101740787, 8962.45534991020], [3.253, 2.79565340390, 3894.18182954220], [3.091, 4.56861203364, 3496.03282613400], [2.921, 5.41458945995, 2914.01423582380], [2.921, 1.23050883841, 2787.04302385740], [2.784, 1.38911141844, 4292.33083295040], [2.620, 1.04061894134, 3341.59274776800], [2.888, 3.41062353663, 3337.08930835080], [2.418, 0.96341462666, 4535.05943692440], [2.357, 4.84628239765, 9492.14631500480], [2.593, 5.74934234498, 3340.59517304760], [2.191, 3.26449527357, 213.29909543800], [2.594, 1.49510566123, 3340.62968035200], [2.344, 4.18104725028, 10025.36039844840], [2.630, 4.67640929857, 3583.34103067380], [2.602, 2.64911714813, 2388.89402044920], [1.830, 0.97181050149, 1589.07289528380], [2.416, 1.04749173375, 4399.99435688900], [2.386, 4.27072575550, 7079.37385680780], [2.187, 0.16036551231, 6525.80445396540], [2.344, 0.01425578204, 4690.47983635860], [1.617, 4.95614491689, 5088.62883976680], [1.633, 1.10703599922, 12303.06777661000], [2.126, 0.48290227706, 2700.71514038580], [1.629, 4.94267977718, 1221.84856632140], [1.504, 0.11031912519, 2957.71589447660], [1.759, 3.81170701376, 3723.50895892300], [1.401, 3.85907867678, 6283.07584999140], [1.338, 5.29685392418, 6677.70173505060], [1.763, 2.51660121293, 2810.92146160520], [1.392, 2.73498041122, 7477.52286021600], [1.431, 2.97747408389, 6489.77658728800], [1.236, 3.77245965590, 2699.73481931760], [1.234, 1.88931735265, 6681.24210705180], [1.513, 2.92614134711, 640.87760738220], [1.234, 6.14168429036, 6681.20759974740], [1.408, 1.54395721611, 3347.72597370060], [1.038, 5.82880072933, 4933.20844033260], [1.156, 1.50825464304, 426.59819087600], [1.362, 4.17794297520, 23384.28698689860], [1.135, 3.77506455273, 3870.30339179440], [0.916, 3.81726339298, 5092.15195811580], [0.853, 3.82520490669, 3340.54511639700], [1.077, 5.05062828760, 5621.84292321040], [1.074, 3.81446920470, 3553.91152213780], [0.847, 3.41702696402, 3340.67973700260], [0.920, 1.91108056416, 3532.06069281140], [0.738, 4.25786145387, 9623.68827669120], [0.908, 4.12911006922, 162.46663613220], [0.647, 3.10301033831, 7234.79425624200], [0.800, 5.20674574801, 87.30820453981], [0.657, 1.57895580467, 2487.41604494780], [0.650, 2.78932995437, 574.34479833480], [0.659, 5.16655918817, 12832.75874170460], [0.712, 5.79288230676, 3339.63210563160], [0.660, 0.25125103909, 8969.56889691100], [0.527, 4.62218528897, 10419.98628350760], [0.607, 3.84724721085, 5486.77784317500], [0.500, 4.66323134619, 6836.64525283380], [0.509, 0.32548381735, 8031.09226305840], [0.613, 1.72250879737, 7632.94325965020], [0.516, 1.37906978509, 7740.60678358880], [0.469, 1.31324778369, 7875.67186362420], [0.442, 5.34515135225, 10018.31416175040], [0.496, 4.49656852602, 692.15760122680], [0.544, 1.44465369200, 15643.68020330980], [0.467, 1.40928870138, 6682.20517446780], [0.547, 4.42021065522, 5331.35744374080], [0.433, 1.25048504108, 4929.68532198360], [0.409, 3.80689273098, 6681.29216370240], [0.403, 1.57190239310, 6127.65545055720], [0.401, 4.59976459753, 7210.91581849420], [0.406, 0.60945437905, 11773.37681151540], [0.367, 0.97726583907, 6041.32756708560], [0.361, 0.13117924893, 639.89728631400], [0.411, 4.21323421517, 6681.15754309680], [0.441, 4.49050100878, 13365.97282514820], [0.474, 5.18562524130, 2301.58581590939], [0.334, 2.21001303889, 10021.85453375160], [0.370, 5.02880065186, 6923.95345737360], [0.333, 0.18229887483, 10021.82002644720], [0.342, 2.49988747611, 6438.49624942560], [0.320, 1.32374476890, 2118.76386037840], [0.330, 2.98027481579, 5729.50644714900], [0.340, 0.51409045792, 9866.41688066520], [0.283, 4.03219455446, 8955.34180290940], [0.281, 3.33891891806, 9830.38901398780], [0.271, 1.53144358045, 1039.02661079040], [0.252, 3.04356928941, 10818.13528691580], [0.270, 2.22972724035, 5828.02847164760], [0.259, 4.24406546278, 6894.52394883760], [0.237, 5.07818982743, 8429.24126646660], [0.263, 2.00552313665, 3767.21061757580], [0.241, 4.06396704332, 7064.12138562280], [0.250, 0.45422818547, 6298.32832117640], [0.240, 1.94655459341, 6688.33840040040], [0.209, 0.03043017984, 3914.95722503460], [0.218, 4.53201818250, 26724.89941359840], [0.246, 3.85272742042, 4562.46099302120], [0.254, 1.19313236635, 8432.76438481560], [0.231, 1.70340106651, 2942.46342329160], [0.209, 3.82345999055, 6467.92575796160], [0.175, 3.26444055581, 3981.49003408200], [0.210, 3.55052707697, 10575.40668294180], [0.162, 5.95176683701, 310.84079886840], [0.165, 5.04267055142, 10177.25767953360], [0.198, 0.80464315638, 15113.98923821520], [0.188, 1.99007233842, 3127.31333126180], [0.188, 4.55406803143, 12964.30070339100], [0.163, 2.14874886056, 10973.55568635000], [0.154, 4.35708331036, 3360.96774609859], [0.169, 2.40504327781, 3355.86489788480], [0.164, 5.53875620970, 16173.37116840440], [0.144, 0.30186831602, 1903.43681250120], [0.161, 3.18977924032, 6674.11130639880], [0.135, 1.65570006128, 3325.35995551480], [0.143, 6.25825818399, 9595.23908922340], [0.158, 6.14255608340, 8273.82086703240], [0.170, 5.98413937993, 3320.25710730100], [0.124, 1.74571336137, 11081.21921028860], [0.146, 2.22851709304, 3178.14579056760], [0.126, 5.02927593525, 3475.67750673520], [0.123, 4.99342648375, 13760.59871020740], [0.141, 4.56735815490, 10021.76996979660], [0.118, 5.42945437851, 13358.92658845020], [0.116, 4.22080571309, 5884.92684658320], [0.119, 4.09962692144, 10021.90459040220], [0.124, 1.79723243306, 18984.29263000960], [0.135, 1.00085140609, 18454.60166491500], [0.106, 5.76342924005, 2288.34404351140], [0.103, 0.63812052706, 12310.18132361080], [0.100, 4.37946945260, 9808.53818466140], [0.104, 4.01151451052, 13916.01910964160], [0.125, 4.94825577002, 10551.52824519400], [0.098, 5.91086068785, 14584.29827312060], [0.126, 1.55752034021, 8270.29774868340], [0.098, 2.52869810530, 3191.04922956520], [0.095, 5.50808311620, 3319.83703120740], [0.108, 1.67115668669, 11216.28429032400], [0.090, 1.71281301325, 1505.28780909299], [0.088, 0.42472333366, 11371.70468975820], [0.089, 4.83867235269, 16706.58525184800], [0.106, 1.78998252916, 10022.81760116760], [0.087, 5.89602688150, 16858.48253293320], [0.085, 0.55423657166, 13362.43245314700], [0.091, 1.61117547913, 24093.27678917520], [0.083, 0.55328893146, 3344.20285535160], [0.083, 1.06830368571, 3364.49086444760], [0.084, 6.22980173043, 3369.06161416760], [0.085, 2.58442459869, 13362.46696045140], [0.079, 3.08636079495, 2818.03500860600], [0.077, 1.53791408869, 5459.37628707820], [0.075, 3.34890581175, 9070.11887384880], [0.097, 2.99973987655, 3316.73398895200], [0.084, 5.55309637085, 3427.92063123960], [0.089, 4.16432726564, 6158.64743530580], [0.078, 3.72375730390, 13171.00144068760], [0.083, 0.11917380846, 3337.02199804800], [0.073, 4.91632010974, 13362.38239649640], [0.076, 4.52961122356, 708.98980227659], [0.071, 5.37905772348, 10264.56588407340], [0.084, 1.93007660929, 9468.26787725700], [0.073, 5.28498987702, 4845.90023579280], [0.080, 4.81193020727, 13149.15061136120], [0.076, 4.77873149036, 8671.96987044060], [0.069, 0.86312560839, 13207.02930736500], [0.070, 1.22001285505, 2274.11694950980], [0.070, 0.53977528244, 13119.72110282519], [0.070, 0.09801356525, 1437.17561419860], [0.069, 2.23597403243, 7107.82304427560], [0.074, 0.67876411085, 16460.33352952499], [0.068, 0.54393617190, 12935.85151592320], [0.084, 5.11617356640, 13892.14067189380], [0.078, 5.27206373031, 853.19638175200], [0.065, 4.74504626032, 6144.42034130420], [0.065, 2.89744951086, 7903.07341972100], [0.089, 5.44755326514, 13517.87010623340], [0.073, 3.81554166604, 3503.07906283200], [0.066, 0.47312197978, 3980.50971301380], [0.065, 1.38901912957, 3253.30422216000], [0.086, 5.44050231013, 6816.28993343500], [0.072, 3.44697351738, 14158.74771361560], [0.086, 4.50213985772, 13362.51701710200], [0.074, 1.34701853675, 3361.38782219220], [0.076, 6.04002959430, 5085.03841111500], [0.065, 0.07623776004, 5099.26550511660], [0.066, 2.09160717290, 14421.83163698840], [0.077, 2.75740817982, 19402.79695281660], [0.059, 3.61679189501, 7322.10246078180], [0.060, 4.67079289372, 10235.13637553740], [0.064, 6.17220244155, 9381.93999378540], [0.066, 0.35824154106, 7255.56965173440], [0.059, 4.52818219212, 9499.25986200560], [0.065, 1.86765892646, 11610.91017538320], [0.074, 3.12276411101, 1107.13880568480], [0.060, 1.35069679183, 19800.94595622480], [0.055, 0.64581579779, 6677.63442474780], [0.055, 0.65206957868, 7373.38245462640], [0.055, 0.41979092764, 9779.10867612540], [0.074, 3.85276242820, 2766.26762836500], [0.056, 2.49261586879, 5642.19824260920], [0.055, 2.62555306434, 14314.16811304980], [0.054, 3.95212835807, 4032.77002792660], [0.055, 0.51062350773, 15110.46611986620], [0.053, 5.88757767795, 21265.52312652020], [0.051, 5.99253934388, 21947.11137270000], [0.049, 5.16723732129, 20047.19767854780], [0.067, 1.53758821512, 9380.95967271720], [0.057, 5.34893894346, 17101.21113690720], [0.049, 1.92678602770, 12721.57209941700], [0.046, 2.31590320480, 10028.95082710020], [0.052, 4.92463460288, 16304.91313009080], [0.050, 1.69803302925, 9225.53927328300], [0.045, 2.91271003676, 8982.81066930900], [0.044, 4.38728556203, 12168.00269657460], [0.047, 4.44933635857, 6872.67311951120], [0.043, 2.13295656057, 22324.90505670940], [0.050, 1.34759191325, 8439.87793181640], [0.044, 0.89037464728, 20752.66436247540], [0.041, 2.76164156557, 6696.47732458460], [0.042, 4.45031185062, 10404.73381232260], [0.044, 3.20262780268, 22743.40937951640], [0.042, 3.54559408987, 30376.35263916660], [0.042, 0.82118836477, 20597.24396304120], [0.052, 4.59037852162, 22345.26037610820], [0.042, 3.79872109079, 28628.33622609960], [0.041, 2.36253602080, 16062.18452611680], [0.050, 1.48377570574, 6040.34724601740], [0.041, 5.33088551342, 765.79306444640], [0.039, 1.57984331116, 24889.57479599160], [0.038, 0.21571600948, 9168.64089834740], [0.038, 3.47667842127, 1066.49547719000], [0.052, 0.81427285458, 9638.94074787620], [0.041, 0.04356010851, 6660.86953400080], [0.046, 0.89345529755, 16703.04487984680], [0.044, 0.85335841824, 17468.85519794540], [0.039, 0.27098916103, 11614.43329373220], [0.036, 3.93388136028, 33716.96506586640], [0.047, 3.90896957151, 5244.04923920100], [0.034, 2.37310468308, 10213.28554621100], [0.034, 4.85454495742, 14469.58851248400], [0.035, 1.96497348634, 6702.00024889200], [0.033, 2.14488758889, 13363.43002786740], [0.046, 2.92422266239, 16703.07938715119], [0.035, 1.78692835372, 2648.45482547300], [0.033, 4.24484480826, 8584.66166590080], [0.043, 6.09391349922, 6660.44945790720], [0.035, 5.72426647579, 16699.53901514999], [0.031, 1.95254273311, 6665.97238221460], [0.028, 5.88548900893, 19513.98359510420], [0.030, 4.38908125588, 12295.95422960920], [0.029, 6.25276686131, 17924.91069982040], [0.025, 4.89000247975, 30065.51184029820], [0.026, 2.43119321236, 6518.75821726740], [0.028, 3.97032105354, 4407.10790388980], [0.025, 1.88631752737, 4379.63903749020], [0.028, 3.06196380356, 6247.51311552280], [0.029, 5.98057498931, 6680.24453233140], [0.032, 4.65556810177, 6701.58017279840], [0.026, 0.76018385758, 3863.18984479360], [0.023, 0.31107548102, 8827.39026987480], [0.022, 1.11553014451, 6684.81528205140], [0.020, 4.81193192299, 15508.61512327440], [0.019, 5.11656455993, 12012.58229714040], [0.026, 1.07254469525, 8425.65083781480], [0.021, 2.68436255141, 6261.74020952440], [0.022, 2.15631095909, 3335.08950239240], [0.017, 0.03684125273, 3877.41693879520], [0.017, 2.84467149903, 3344.49376205780], [0.020, 5.41519706836, 3205.54734666440], ], # L3 [ [1482.423, 0.44434694876, 3340.61242669980], [662.095, 0.88469178686, 6681.22485339960], [188.268, 1.28799982497, 10021.83728009940], [41.474, 1.64850786997, 13362.44970679920], [22.661, 2.05267665262, 155.42039943420], [25.994, 0.00000000000, 0.00000000000], [8.024, 1.99858757687, 16703.06213349900], [10.454, 1.58006906385, 3.52311834900], [4.900, 2.82452457966, 242.72860397400], [3.782, 2.01914272515, 3344.13554504880], [3.176, 4.59144897927, 3185.19202726560], [3.134, 0.65044714325, 553.56940284240], [1.684, 5.53835848782, 951.71840625060], [1.511, 5.71795850828, 191.44826611160], [1.448, 0.45869142895, 796.29800681640], [1.442, 2.34368495577, 20043.67456019880], [1.302, 5.36284013048, 0.98032106820], [1.169, 4.14601161433, 1349.86740965880], [1.133, 2.38180830662, 6684.74797174860], [1.037, 1.76892750558, 382.89653222320], [0.894, 5.33688328934, 1194.44701022460], [0.807, 2.74798886181, 1748.01641306700], [0.640, 6.10665147849, 3496.03282613400], [0.558, 1.85212342360, 398.14900340820], [0.567, 5.85922384979, 7.11354700080], [0.647, 3.17645475605, 3583.34103067380], [0.452, 5.98109989317, 2787.04302385740], [0.508, 1.01139298015, 3149.16416058820], [0.519, 4.93376176788, 6525.80445396540], [0.405, 1.27295444059, 2281.23049651060], [0.399, 2.32888685659, 3738.76143010800], [0.472, 0.84411483892, 4136.91043351620], [0.333, 5.42704539231, 1059.38193018920], [0.313, 3.70599897858, 3097.88382272579], [0.281, 5.74581724084, 3341.59274776800], [0.287, 2.69304799864, 10025.36039844840], [0.237, 5.68519881994, 4535.05943692440], [0.215, 2.49494803822, 1990.74501704100], [0.260, 2.67996877129, 23384.28698689860], [0.269, 1.10390153866, 2388.89402044920], [0.186, 4.86408411823, 2957.71589447660], [0.176, 3.86618588087, 1592.59601363280], [0.177, 0.85374318134, 3894.18182954220], [0.191, 4.58805692093, 3337.08930835080], [0.185, 5.80899316550, 4399.99435688900], [0.143, 1.15592612974, 7477.52286021600], [0.173, 2.70622920014, 7079.37385680780], [0.146, 1.37569151302, 6489.77658728800], [0.121, 3.24333934982, 9492.14631500480], [0.116, 5.71639819530, 12303.06777661000], [0.111, 2.69566947038, 6151.53388830500], [0.103, 3.53587741373, 6923.95345737360], [0.097, 5.23712981002, 8962.45534991020], [0.089, 0.05951324220, 6127.65545055720], [0.093, 5.29818155587, 9866.41688066520], [0.084, 5.68544044325, 4292.33083295040], [0.091, 6.16223680965, 6682.20517446780], [0.081, 4.32723330620, 4933.20844033260], [0.077, 5.63189824170, 1589.07289528380], [0.102, 6.26937663026, 3347.72597370060], [0.076, 3.05724276091, 13365.97282514820], [0.063, 3.12770931753, 10419.98628350760], [0.062, 1.45647168723, 7234.79425624200], [0.069, 4.82266605869, 6677.70173505060], [0.064, 1.73713448446, 3870.30339179440], [0.058, 4.85723088492, 5486.77784317500], [0.058, 6.09849516790, 7875.67186362420], [0.063, 4.14716431158, 3340.59517304760], [0.065, 6.17932665318, 3340.62968035200], [0.057, 1.48905992502, 5729.50644714900], [0.060, 6.08710604997, 7740.60678358880], [0.056, 1.96253427165, 3553.91152213780], [0.059, 0.89874385953, 3339.63210563160], [0.053, 3.04776975379, 26724.89941359840], [0.061, 3.63390789623, 12832.75874170460], [0.059, 0.22989746040, 6681.24210705180], [0.053, 3.97996929188, 5092.15195811580], [0.059, 4.48255178273, 6681.20759974740], [0.045, 3.88055745121, 10264.56588407340], [0.058, 4.85371375265, 5621.84292321040], [0.049, 4.03623343126, 16173.37116840440], [0.061, 2.90942510134, 5331.35744374080], [0.043, 1.80990718340, 9830.38901398780], [0.044, 4.10828944542, 4690.47983635860], [0.044, 3.49332765553, 13760.59871020740], [0.048, 1.81207342615, 3723.50895892300], [0.041, 1.59906754314, 10818.13528691580], [0.041, 2.05797417369, 6681.29216370240], [0.038, 3.38619280993, 16706.58525184800], [0.041, 2.53336616026, 6681.15754309680], [0.041, 1.79026132252, 3340.54511639700], [0.050, 4.70324784090, 8273.82086703240], [0.037, 3.37898394417, 30065.51184029820], [0.039, 2.65566008587, 6894.52394883760], [0.035, 2.58475025674, 9623.68827669120], [0.037, 6.07442797404, 4929.68532198360], [0.042, 3.04642561189, 12964.30070339100], [0.037, 5.23784488646, 6298.32832117640], [0.043, 6.17835198533, 15643.68020330980], [0.034, 2.44806511268, 7210.91581849420], [0.038, 0.26295105909, 10022.81760116760], [0.028, 0.74281728305, 10021.85453375160], [0.028, 4.99536302577, 10021.82002644720], [0.034, 5.04118058624, 8969.56889691100], [0.025, 2.59849002421, 8955.34180290940], [0.030, 1.14354290938, 2146.16541647520], [0.027, 0.26980783576, 18984.29263000960], [0.025, 0.39810308575, 6688.33840040040], [0.024, 5.64558695441, 13207.02930736500], [0.027, 6.24398988438, 5088.62883976680], [0.024, 0.25455613132, 11081.21921028860], [0.023, 0.53673547304, 3333.49887969900], [0.024, 1.80155161992, 6674.11130639880], [0.029, 4.39953507920, 10018.31416175040], [0.023, 2.91040060956, 10551.52824519400], [0.022, 1.20895727897, 529.69096509460], [0.026, 0.08254324904, 7632.94325965020], [0.026, 1.81668969835, 6283.07584999140], [0.021, 0.67232850824, 6836.64525283380], [0.017, 5.19518401928, 2914.01423582380], [0.017, 5.16488977775, 8031.09226305840], [0.021, 3.62973082412, 5884.92684658320], [0.018, 5.06870872024, 2544.31441988340], [0.014, 2.50522181917, 7064.12138562280], [0.017, 0.41835598950, 9468.26787725700], [0.011, 2.21363101654, 6438.49624942560], [0.013, 1.38424462832, 3340.67973700260], [0.012, 3.28248484262, 8671.96987044060], [0.014, 0.23027665815, 3767.21061757580], ], # L4 [ [113.969, 3.14159265359, 0.00000000000], [28.725, 5.63662412043, 6681.22485339960], [24.447, 5.13868481454, 3340.61242669980], [11.187, 6.03161074431, 10021.83728009940], [3.190, 3.56267988299, 155.42039943420], [3.252, 0.13228350651, 13362.44970679920], [0.787, 0.49340783377, 16703.06213349900], [0.776, 1.31734531594, 242.72860397400], [0.494, 3.06356214498, 3185.19202726560], [0.374, 2.15785846355, 553.56940284240], [0.331, 6.23159792887, 3.52311834900], [0.197, 0.44350153983, 3344.13554504880], [0.181, 0.81531283571, 20043.67456019880], [0.168, 3.73509781785, 3496.03282613400], [0.086, 0.79259553758, 6684.74797174860], [0.115, 1.66898531261, 3583.34103067380], [0.092, 3.40530361815, 6525.80445396540], [0.064, 4.47443580658, 2787.04302385740], [0.045, 5.17216217058, 3097.88382272579], [0.041, 1.21875027733, 23384.28698689860], [0.036, 5.53975653407, 3149.16416058820], [0.039, 5.40966345885, 4136.91043351620], [0.028, 4.85378781404, 6127.65545055720], [0.027, 0.42811091036, 3738.76143010800], [0.032, 1.22337093927, 10025.36039844840], [0.025, 1.56348878811, 26724.89941359840], [0.029, 2.40178626971, 3894.18182954220], [0.023, 4.16371253947, 3341.59274776800], [0.022, 5.98429191667, 7477.52286021600], [0.019, 2.03228980685, 6923.95345737360], [0.020, 3.79275573433, 9866.41688066520], [0.021, 4.27532111122, 6836.64525283380], [0.015, 1.56315497374, 13365.97282514820], [0.011, 1.33261955275, 2281.23049651060], [0.009, 6.15390464542, 6489.77658728800], [0.007, 4.23894194106, 4535.05943692440], ], # L5 [ [0.710, 4.04089996521, 6681.22485339960], [0.868, 3.14159265359, 0.00000000000], [0.510, 4.49214901625, 10021.83728009940], [0.357, 5.07435505061, 155.42039943420], [0.223, 3.51351884241, 3340.61242669980], [0.199, 4.85313666795, 13362.44970679920], [0.100, 6.09089356066, 242.72860397400], [0.069, 5.19017483537, 16703.06213349900], [0.064, 1.55783055571, 3185.19202726560], [0.035, 3.68246171643, 553.56940284240], [0.025, 5.22079788019, 3496.03282613400], [0.024, 0.17861991485, 3583.34103067380], [0.019, 5.59184714460, 20043.67456019880], [0.014, 5.95565787085, 23384.28698689860], [0.012, 1.93859256739, 6525.80445396540], ], ] """This table contains Mars' periodic terms (all of them) from the planetary theory VSOP87 for the heliocentric longitude at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in pages 421-424.""" VSOP87_B = [ # B0 [ [3197134.986, 3.76832042432, 3340.61242669980], [298033.234, 4.10616996243, 6681.22485339960], [289104.742, 0.00000000000, 0.00000000000], [31365.538, 4.44651052853, 10021.83728009940], [3484.100, 4.78812547889, 13362.44970679920], [442.999, 5.65233015876, 3337.08930835080], [443.401, 5.02642620491, 3344.13554504880], [399.109, 5.13056814700, 16703.06213349900], [292.506, 3.79290644595, 2281.23049651060], [181.982, 6.13648011704, 6151.53388830500], [163.159, 4.26399626634, 529.69096509460], [159.678, 2.23194610246, 1059.38193018920], [139.323, 2.41796344238, 8962.45534991020], [149.297, 2.16501209917, 5621.84292321040], [142.686, 1.18215016110, 3340.59517304760], [142.685, 3.21292180820, 3340.62968035200], [82.544, 5.36667872319, 6684.74797174860], [73.640, 5.09187524843, 398.14900340820], [72.660, 5.53775710437, 6283.07584999140], [86.377, 5.74429648412, 3738.76143010800], [83.276, 5.98866315739, 6677.70173505060], [60.116, 3.67960808826, 796.29800681640], [63.111, 0.73049113369, 5884.92684658320], [62.338, 4.85071999184, 2942.46342329160], [46.951, 5.54339723804, 3340.54511639700], [46.953, 5.13486627234, 3340.67973700260], [46.630, 5.47361665459, 20043.67456019880], [45.588, 2.13262507507, 2810.92146160520], [41.269, 0.20003189001, 9492.14631500480], [47.199, 4.52184736343, 3149.16416058820], [38.540, 4.08008443274, 4136.91043351620], [33.069, 4.06581918329, 1751.53953141600], [29.694, 5.92218297386, 3532.06069281140], [32.736, 2.62071056958, 2914.01423582380], [29.521, 2.75342566734, 12303.06777661000], [28.169, 2.06282533993, 5486.77784317500], [28.618, 4.94710527914, 3870.30339179440], [26.603, 3.55085844020, 6681.24210705180], [26.603, 1.52008675291, 6681.20759974740], [23.336, 2.27624532707, 1589.07289528380], [26.052, 2.60064548916, 4399.99435688900], [22.637, 2.27507466406, 1194.44701022460], [18.887, 6.04416196149, 7079.37385680780], [14.846, 3.41358603159, 5088.62883976680], [19.947, 2.67365368471, 8432.76438481560], [14.682, 5.89211938785, 9623.68827669120], [14.152, 2.42512744356, 3333.49887969900], [13.310, 2.62839773036, 426.59819087600], [14.008, 1.67425558329, 6254.62666252360], [15.104, 2.81013535571, 3496.03282613400], [13.011, 5.70759434129, 10025.36039844840], [12.080, 1.51804981987, 3185.19202726560], [13.183, 0.04521207632, 10018.31416175040], [11.554, 5.57418971820, 191.44826611160], [11.196, 0.55829576311, 5092.15195811580], [11.530, 2.13314819584, 11773.37681151540], [10.435, 5.72414012635, 6467.92575796160], [9.846, 0.86942245495, 1592.59601363280], [9.761, 1.09342288660, 2544.31441988340], [8.754, 5.47281660412, 6681.29216370240], [8.937, 4.83790385610, 6489.77658728800], [8.652, 4.72118876809, 213.29909543800], [8.797, 2.86597575792, 3341.59274776800], [8.384, 2.65895230037, 4535.05943692440], [8.213, 4.82608134710, 3553.91152213780], [8.799, 1.52910882795, 3339.63210563160], [8.103, 1.00994045172, 9225.53927328300], [8.754, 5.88131160438, 6681.15754309680], [7.209, 4.41679446871, 7477.52286021600], [8.560, 4.79003986337, 4690.47983635860], [6.087, 1.89071507516, 9595.23908922340], [6.974, 0.53246284561, 12832.75874170460], [5.584, 6.18909308524, 4292.33083295040], [5.038, 6.06393121994, 7210.91581849420], [5.126, 0.11856805000, 4562.46099302120], [4.863, 1.33051301524, 3894.18182954220], [5.592, 3.97792577165, 3127.31333126180], [4.965, 5.74589127183, 1990.74501704100], [5.530, 5.81711987294, 23384.28698689860], [4.184, 3.88899446923, 10021.85453375160], [4.184, 1.85821885540, 10021.82002644720], [4.685, 1.11750235736, 3319.83703120740], [3.954, 2.65573703692, 4929.68532198360], [5.174, 3.62343554596, 2700.71514038580], [4.639, 6.14089337232, 7.11354700080], [4.686, 3.27731664264, 3361.38782219220], [4.999, 3.09121636067, 15643.68020330980], [3.919, 2.96552252075, 7740.60678358880], [3.361, 1.85016770821, 2957.71589447660], [4.246, 4.19639278630, 2146.16541647520], [4.101, 6.22532797325, 10213.28554621100], [3.124, 0.08536218671, 10419.98628350760], [3.079, 2.41163389513, 3344.20285535160], [3.093, 1.98041729732, 3337.02199804800], [3.044, 4.38894419912, 1221.84856632140], [2.879, 2.93292197885, 2787.04302385740], [3.372, 4.45558202843, 6674.11130639880], [2.510, 4.06249795775, 6872.67311951120], [2.616, 1.23659420897, 4933.20844033260], [3.011, 4.33965766608, 2388.89402044920], [3.094, 2.40385309455, 2118.76386037840], [2.516, 2.30275910483, 3723.50895892300], [2.192, 1.68877598700, 639.89728631400], [2.157, 6.07600403318, 9808.53818466140], [2.686, 2.38172448359, 15113.98923821520], [2.156, 2.87771528495, 6041.32756708560], [2.495, 3.87395320804, 7903.07341972100], [2.253, 0.47469626036, 3475.67750673520], [2.443, 3.02632351975, 3767.21061757580], [1.937, 0.38000997629, 13358.92658845020], [2.213, 3.91982326360, 3205.54734666440], [2.385, 6.23883456815, 12964.30070339100], [1.806, 2.38408432339, 11243.68584642080], [2.265, 1.85773885180, 6525.80445396540], [1.642, 1.86812936557, 6680.24453233140], [1.616, 3.39954231101, 8429.24126646660], [1.646, 0.73261192032, 2274.11694950980], [1.910, 6.04319894051, 13365.97282514820], [1.492, 2.99360929050, 7875.67186362420], [1.567, 1.76860259924, 382.89653222320], [1.459, 1.40571286543, 14584.29827312060], [1.527, 5.79343536555, 6894.52394883760], [1.409, 5.17099876287, 9830.38901398780], [1.665, 3.60183854165, 2288.34404351140], [1.616, 2.19447775480, 8827.39026987480], [1.746, 0.10485504333, 3583.34103067380], [1.637, 3.20410489018, 6682.20517446780], [1.269, 2.02253791623, 155.42039943420], [1.507, 5.80795976424, 1748.01641306700], [1.296, 2.92899986522, 9381.93999378540], [1.291, 2.98932404463, 6836.64525283380], [1.377, 5.80980821450, 10021.90459040220], [1.357, 0.32856318286, 4032.77002792660], [1.377, 6.21830533138, 10021.76996979660], [1.227, 2.20421067322, 12935.85151592320], [1.080, 4.75502761725, 10818.13528691580], [1.016, 1.33950348904, 12566.15169998280], [1.083, 0.87622049125, 16173.37116840440], [0.957, 5.29505019432, 1066.49547719000], [1.035, 2.44286811558, 1052.26838318840], [1.153, 4.73786864168, 8031.09226305840], [1.042, 1.73541825729, 3369.06161416760], [0.899, 1.87265511538, 3077.52850332700], [0.892, 2.51347636401, 3603.69635007260], [0.904, 0.27361540197, 3325.35995551480], [0.883, 5.46537936740, 5614.72937620960], [0.949, 0.04595688771, 7064.12138562280], [0.872, 3.61205859852, 6702.00024889200], [0.842, 5.61713543212, 8955.34180290940], [0.842, 0.57536275896, 3191.04922956520], [0.904, 4.11832249537, 3355.86489788480], [1.044, 2.65889542110, 3312.16323923200], [0.807, 2.26443259820, 8969.56889691100], [1.046, 6.11317298058, 5331.35744374080], [0.933, 0.82551054416, 3503.07906283200], [0.946, 1.92368414869, 5628.95647021120], [0.978, 4.55697167317, 3097.88382272579], [0.846, 4.65096242323, 6438.49624942560], [0.901, 1.46788821922, 6660.44945790720], [0.739, 4.97716008834, 10014.72373309860], [0.762, 3.42576079312, 18984.29263000960], [0.934, 0.35014113954, 3264.34635542420], [0.894, 0.34991139502, 10551.52824519400], [0.665, 6.05561837558, 7632.94325965020], [0.605, 4.68480399923, 5729.50644714900], [0.593, 2.97207045977, 3178.14579056760], [0.617, 2.19529512598, 13362.43245314700], [0.579, 3.32303439858, 11081.21921028860], [0.579, 2.31217959727, 6677.63442474780], [0.572, 4.27984088783, 6546.15977336420], [0.584, 4.51625727923, 1648.44675719740], [0.626, 4.60715188203, 2487.41604494780], [0.649, 2.17894376907, 6298.32832117640], [0.617, 4.22635718375, 13362.46696045140], [0.550, 3.11161314141, 6144.42034130420], [0.551, 3.27081871281, 6127.65545055720], [0.536, 0.18973312148, 3346.13535100720], [0.557, 6.13686769377, 26724.89941359840], [0.571, 5.65341463660, 2921.12778282460], [0.552, 5.75724124958, 149.56319713460], [0.638, 4.49647258906, 3.52311834900], [0.552, 1.07795672495, 536.80451209540], [0.537, 4.19207200801, 3335.08950239240], [0.567, 2.62806466971, 2648.45482547300], [0.641, 3.24534699403, 3347.72597370060], [0.546, 2.76744357149, 5459.37628707820], [0.556, 4.98610303145, 6531.66165626500], [0.578, 2.74445077242, 6684.81528205140], [0.613, 3.01718810256, 8270.29774868340], [0.558, 5.89236366633, 6158.64743530580], [0.489, 4.59082197201, 522.57741809380], [0.445, 3.64293918046, 10713.99488132620], [0.539, 0.59284523316, 553.56940284240], [0.434, 1.99641894213, 26087.90314157420], [0.459, 4.84216944554, 1758.65307841680], [0.423, 3.77854586358, 6688.33840040040], [0.421, 3.10245838137, 8329.67161059700], [0.421, 4.43540354818, 103.09277421860], [0.502, 3.03141512630, 3360.96774609859], [0.422, 5.99158563064, 242.72860397400], [0.401, 2.06012045711, 3980.50971301380], [0.410, 5.85255605682, 3351.24909204960], [0.375, 2.50803340920, 6784.31762761820], [0.407, 0.30117328390, 16304.91313009080], [0.507, 1.35016417800, 3320.25710730100], [0.385, 1.06248122739, 7234.79425624200], [0.519, 4.61705823333, 7373.38245462640], [0.401, 0.51161484292, 17085.95866572220], [0.371, 0.41707432281, 13760.59871020740], [0.476, 0.81142637639, 6816.28993343500], [0.348, 3.36497054127, 8439.87793181640], [0.366, 6.05186692577, 3607.21946842160], [0.402, 2.67375675473, 18454.60166491500], [0.439, 0.41122589061, 10404.73381232260], [0.412, 4.81039654306, 3329.97576135000], [0.413, 0.21011211689, 13149.15061136120], [0.363, 2.19017574725, 9866.41688066520], [0.337, 5.46398740226, 6604.95878212400], [0.340, 1.73392662280, 1692.16566950240], [0.344, 3.58310197017, 7107.82304427560], [0.420, 2.77274750272, 2906.90068882300], [0.335, 2.02339633221, 3333.56619000180], [0.336, 2.78173647754, 4989.05918389720], [0.354, 5.41265456299, 951.71840625060], [0.328, 0.43464916253, 6923.95345737360], [0.422, 1.57591737080, 8273.82086703240], [0.324, 4.99165215532, 11371.70468975820], [0.351, 4.60766539695, 3074.00538497800], [0.333, 4.86991808664, 3863.18984479360], [0.319, 1.44510282827, 11769.85369316640], [0.296, 5.25637576704, 76.26607127560], [0.349, 1.62483962938, 17924.91069982040], [0.293, 2.20643287367, 3347.65866339780], [0.315, 4.55227306770, 5828.02847164760], [0.280, 1.42134291540, 6606.44325483230], [0.336, 1.56854533505, 1581.95934828300], [0.343, 0.27605726543, 10973.55568635000], [0.271, 0.08314924409, 10235.13637553740], [0.280, 0.76436434398, 853.19638175200], [0.317, 4.91466081381, 3443.70520091840], [0.257, 0.15709629188, 12168.00269657460], [0.237, 3.13380421805, 74.78159856730], [0.271, 1.83008759256, 3399.98628861340], [0.233, 3.20163702613, 10177.25767953360], [0.312, 0.28436027987, 13745.34623902240], [0.273, 4.53535816659, 3344.49376205780], [0.235, 0.67980074869, 17395.21973472580], [0.262, 3.84436620806, 9168.64089834740], [0.271, 4.94509131052, 692.15760122680], [0.254, 2.19491751584, 3281.23856478620], [0.220, 1.65400798925, 3546.79797513700], [0.283, 5.57884389098, 3973.39616601300], [0.229, 5.93153003758, 3364.49086444760], [0.223, 4.82744958322, 9779.10867612540], [0.222, 0.71788606092, 16699.53901514999], [0.219, 0.09831940529, 16706.58525184800], [0.221, 1.66596576205, 10575.40668294180], [0.259, 1.10208840059, 1744.42598441520], [0.243, 1.52425310144, 14054.60730802600], [0.273, 6.12932898811, 3336.73109134180], [0.232, 4.73422268172, 3316.73398895200], [0.210, 5.97305256642, 419.48464387520], [0.213, 5.35378111313, 1596.18644228460], [0.197, 3.32400761027, 5085.03841111500], [0.193, 0.90522037315, 14314.16811304980], [0.192, 2.63243342989, 433.71173787680], [0.188, 1.14983778034, 13892.14067189380], [0.200, 4.79567916236, 6261.74020952440], [0.204, 2.32272167710, 13916.01910964160], [0.191, 5.08454560792, 2178.13772229200], [0.191, 5.88821293073, 3340.19235060619], [0.236, 0.97341490472, 3230.40610548040], [0.200, 3.60041329896, 3304.58456002240], [0.165, 2.91701234796, 3415.39402526710], [0.191, 4.77647338120, 3341.03250279340], [0.174, 2.20549134205, 10020.85695903120], [0.161, 2.64795288862, 3304.00706139560], [0.173, 3.54115285115, 10022.81760116760], [0.154, 2.45916882835, 12722.55242048520], [0.160, 1.73968020026, 3377.21779200400], [0.196, 0.78013533938, 3376.64029337720], [0.153, 0.27328628499, 13362.38239649640], [0.190, 2.65143864216, 3657.00429635640], [0.172, 5.71092117488, 2384.32327072920], [0.157, 1.00235389487, 3209.07046501340], [0.150, 3.39592748537, 3472.15438838620], [0.165, 5.86551673354, 2803.80791460440], [0.154, 0.32136196834, 6665.97238221460], [0.178, 3.34059693754, 11216.28429032400], [0.192, 0.66079944629, 3134.42687826260], [0.161, 2.87915391245, 4392.88080988820], [0.159, 3.72249746113, 13517.87010623340], [0.168, 0.55746622745, 110.20632121940], [0.158, 5.67248197213, 4407.10790388980], [0.161, 1.76789928464, 6709.67404086740], [0.158, 5.50643845256, 13171.00144068760], [0.129, 1.21297315367, 19513.98359510420], [0.173, 0.17070148373, 3024.22055704320], [0.132, 4.25407099272, 16858.48253293320], [0.125, 2.88510294667, 17256.63153634140], [0.124, 2.59724598646, 12310.18132361080], [0.170, 4.05945259741, 2818.03500860600], [0.121, 5.23997785185, 9872.27408296480], [0.142, 3.02798835989, 3511.28529731900], [0.165, 2.53171951288, 16276.46394262300], [0.153, 6.14783670557, 13362.51701710200], [0.119, 4.15694365082, 3760.09707057500], [0.120, 0.64287725481, 4459.36821880260], [0.130, 4.95002309460, 13553.89797291080], [0.120, 0.17087854222, 8671.96987044060], [0.112, 0.16822264326, 135.06508003540], [0.137, 3.34809361979, 3341.04230982650], [0.125, 1.32195559043, 1349.86740965880], [0.111, 3.14151030451, 13524.91634293140], [0.119, 5.95361348050, 12295.95422960920], [0.131, 5.09769375731, 14158.74771361560], [0.141, 1.37128440708, 3169.93955608060], [0.112, 3.35831868034, 5989.06725217280], [0.104, 5.00696041032, 13119.72110282519], [0.110, 5.23317664736, 1375.77379984580], [0.105, 2.72692368303, 1162.47470440780], [0.104, 1.73769165705, 2221.85663459700], [0.137, 1.04576950390, 3340.18254357310], [0.106, 6.13415161313, 162.46663613220], [0.119, 2.63312561442, 7321.12213971360], [0.105, 3.09551802365, 20618.01935853360], [0.099, 4.25515697974, 23539.70738633280], [0.108, 1.01854506729, 3265.83082813250], [0.119, 4.07277528003, 10184.30391623160], [0.096, 1.81122023425, 10001.06188460700], [0.093, 3.58905885066, 5099.26550511660], [0.095, 4.94756054764, 3981.49003408200], [0.094, 5.37493368020, 13355.33615979840], [0.095, 0.13037485775, 15508.61512327440], [0.103, 0.43484130196, 1861.74585263540], [0.090, 3.76370412628, 22324.90505670940], [0.091, 3.95041101283, 10042.61267559180], [0.106, 4.30186500383, 640.87760738220], [0.109, 6.18873749839, 1478.86657406440], [0.088, 1.79608901332, 6247.51311552280], [0.102, 5.58754073056, 2766.26762836500], [0.110, 0.94707767481, 3274.12501778540], [0.084, 4.45487801845, 6696.47732458460], [0.085, 2.74791518135, 3407.09983561420], [0.087, 4.51145821088, 220.41264243880], [0.101, 5.94930983227, 8425.65083781480], [0.082, 0.01837230371, 9499.25986200560], [0.080, 0.42550989980, 18052.92954315780], [0.083, 2.96589752213, 6652.77566593180], [0.080, 4.61446168762, 3914.95722503460], [0.079, 1.50228636499, 2111.65031337760], [0.089, 3.52977975496, 9485.03276800400], [0.086, 0.41976545794, 956.28915597060], [0.088, 5.46013317934, 16460.33352952499], [0.091, 2.09965252231, 949.17560896980], [0.104, 1.72206104768, 3296.89351439480], [0.103, 1.25691413032, 3384.33133900480], [0.084, 5.78647729498, 5518.75014899180], [0.079, 1.79313426804, 38.13303563780], [0.073, 0.10667695992, 29822.78323632420], [0.087, 2.11654357529, 3450.81874791920], [0.072, 3.89476829327, 9380.95967271720], [0.075, 2.59340305340, 1964.83862685400], [0.098, 4.01577665825, 6843.69148953180], [0.074, 5.32032289064, 11766.26326451460], [0.068, 0.04775525953, 2125.87740737920], [0.069, 6.07427052412, 26482.17080962440], [0.069, 2.05018999200, 29424.63423291600], [0.084, 0.16960920719, 263.08392337280], [0.068, 5.03013252197, 9070.11887384880], [0.076, 2.00296087293, 224.34479570190], [0.078, 2.17362706851, 30220.93223973240], [0.066, 3.85497672006, 19406.67828817460], [0.066, 5.70059718737, 33561.54466643220], [0.067, 0.16600936321, 22743.40937951640], [0.065, 4.65423392949, 2807.39834325620], [0.069, 3.34387224268, 11670.28403729680], [0.087, 4.97838021880, 1118.75579210280], [0.063, 0.18907106180, 30065.51184029820], [0.064, 4.61909647015, 9886.77220006400], [0.073, 0.93706647938, 20735.83216142559], [0.060, 5.83757395809, 8646.06348025360], [0.062, 4.81389895867, 20199.09495963300], [0.059, 5.00150762621, 6414.61781167780], [0.068, 3.84252763135, 6571.01853218020], [0.062, 2.81689634717, 6944.30877677240], [0.065, 4.49078808776, 632.78373931320], [0.058, 5.64889513615, 9945.57120882380], [0.070, 2.51605694403, 9638.94074787620], [0.057, 3.28105791201, 206.18554843720], [0.057, 2.97448265957, 21795.21409161479], [0.056, 2.23565630779, 20995.39296644940], [0.057, 1.88614831237, 18451.07854656599], [0.071, 4.82445647307, 8542.97070603500], [0.061, 3.65945073900, 14421.83163698840], [0.056, 3.13789031275, 8799.98871377800], [0.057, 4.89927831599, 9602.35263622420], [0.065, 3.37109873211, 11610.91017538320], [0.067, 1.92945007459, 21265.52312652020], [0.055, 1.95164531764, 9588.12554222260], [0.057, 2.82240075154, 10124.93005431800], [0.057, 6.10407356832, 19800.94595622480], [0.055, 5.20976473824, 3237.51965248120], [0.057, 4.12235760406, 10028.95082710020], [0.055, 1.41700952855, 15906.76412668260], [0.053, 2.16328741039, 6418.14093002680], [0.060, 2.64683840328, 10018.24685144760], [0.068, 5.36539876845, 1228.96211332220], [0.051, 5.73824213507, 6048.44111408640], [0.053, 0.31937174553, 12721.57209941700], [0.051, 0.06312524105, 20206.14119633100], [0.049, 4.53401402385, 6675.70192909220], [0.051, 1.15475560534, 10156.90236013480], [0.064, 4.56332268770, 16703.07938715119], [0.060, 3.61007443614, 9468.26787725700], [0.059, 3.08413561767, 10025.42770875120], [0.064, 2.53229538141, 16703.04487984680], [0.056, 3.31988072467, 6518.75821726740], [0.047, 1.44559165677, 6643.09181776180], [0.050, 1.92342238827, 11614.43329373220], [0.047, 4.03794177027, 23958.63178523340], [0.046, 3.70927352724, 8859.36257569160], [0.060, 2.55506470511, 11780.49035851620], [0.047, 1.69256878711, 6660.86953400080], [0.044, 6.09481217162, 6460.81221096080], [0.044, 2.63040622140, 13936.79450513400], [0.053, 0.77878945764, 16865.52876963120], [0.049, 1.83368544550, 17654.78053974960], [0.048, 0.52828042378, 6686.74777770700], [0.042, 4.30347553493, 9065.54812412880], [0.042, 5.71964550673, 7203.80227149340], [0.041, 0.98427208931, 20426.57109242200], [0.051, 3.54335413699, 20597.24396304120], [0.041, 0.21219617682, 7314.00859271280], [0.038, 2.53074981011, 13207.02930736500], [0.039, 5.15577369902, 6670.58818804980], [0.051, 3.25271478667, 7799.98064550240], [0.049, 0.77060706107, 17101.21113690720], [0.038, 6.06684699984, 9389.05354078620], [0.043, 0.51983815091, 16489.76303806100], [0.036, 0.84102576439, 23937.85638974100], ], # B1 [ [350068.845, 5.36847836211, 3340.61242669980], [14116.030, 3.14159265359, 0.00000000000], [9670.755, 5.47877786506, 6681.22485339960], [1471.918, 3.20205766795, 10021.83728009940], [425.864, 3.40843812875, 13362.44970679920], [102.039, 0.77617286189, 3337.08930835080], [78.848, 3.71768293865, 16703.06213349900], [26.171, 2.48293558065, 2281.23049651060], [32.708, 3.45803723682, 5621.84292321040], [20.712, 1.44120802297, 6151.53388830500], [18.294, 6.03102943125, 529.69096509460], [15.680, 3.93075566599, 8962.45534991020], [16.975, 4.81115186866, 3344.13554504880], [13.067, 0.97324736181, 6677.70173505060], [15.622, 2.78241383265, 3340.59517304760], [15.622, 4.81318636318, 3340.62968035200], [13.771, 1.67983063909, 3532.06069281140], [12.711, 4.04546734935, 20043.67456019880], [14.268, 0.24640247719, 2942.46342329160], [12.493, 2.25620513522, 5884.92684658320], [8.800, 0.34079528233, 398.14900340820], [8.637, 1.75213704409, 2544.31441988340], [8.903, 5.95437916504, 2810.92146160520], [8.102, 0.84279830287, 6283.07584999140], [9.250, 4.35071778619, 3496.03282613400], [8.085, 4.29614034209, 6684.74797174860], [5.811, 3.55479498415, 5092.15195811580], [5.864, 3.69652093329, 5486.77784317500], [5.618, 0.03475872145, 3185.19202726560], [5.148, 0.85886443528, 3340.54511639700], [5.145, 0.45169791514, 3340.67973700260], [4.898, 4.12922007874, 1059.38193018920], [3.471, 5.07253485267, 5088.62883976680], [3.102, 3.11487063736, 3339.63210563160], [3.013, 1.00910437496, 2914.01423582380], [3.171, 1.24730004776, 3738.76143010800], [3.194, 2.86899092087, 1751.53953141600], [2.304, 1.38460565999, 3870.30339179440], [2.233, 2.91238180064, 3894.18182954220], [2.792, 4.27117916474, 8432.76438481560], [2.431, 0.14615904873, 4690.47983635860], [2.577, 2.78651098185, 6254.62666252360], [1.996, 1.51200589223, 4292.33083295040], [1.860, 5.15222219319, 796.29800681640], [2.014, 5.48528849094, 3127.31333126180], [1.922, 4.37668623732, 23384.28698689860], [2.248, 4.46756441051, 10025.36039844840], [1.782, 2.70229954651, 4136.91043351620], [1.621, 2.26742355334, 3149.16416058820], [1.452, 1.53948251192, 9492.14631500480], [1.373, 3.20232312108, 2146.16541647520], [1.332, 5.67966837010, 1592.59601363280], [1.378, 4.12087865376, 3723.50895892300], [1.215, 0.33914405698, 6674.11130639880], [1.168, 3.52407129935, 11773.37681151540], [1.179, 6.15475441355, 213.29909543800], [1.173, 1.26036608440, 3341.59274776800], [1.211, 0.97241747335, 6467.92575796160], [1.204, 0.95200561837, 10018.31416175040], [1.107, 1.44142157852, 2787.04302385740], [1.194, 0.84501638145, 1194.44701022460], [1.043, 3.98123209815, 12303.06777661000], [1.029, 1.21951732572, 4535.05943692440], [0.939, 2.99716248257, 7477.52286021600], [1.303, 1.12409937702, 4399.99435688900], [1.032, 4.26592917807, 1990.74501704100], [1.230, 0.37904885593, 6525.80445396540], [0.989, 2.37220445455, 9225.53927328300], [0.946, 3.14940196742, 6489.77658728800], [1.013, 5.90131661122, 3097.88382272579], [0.913, 2.86098924372, 2388.89402044920], [0.954, 4.90448639106, 3583.34103067380], [0.866, 4.92421595837, 6681.24210705180], [0.797, 4.53307543814, 7079.37385680780], [0.866, 2.89344915945, 6681.20759974740], [0.659, 0.33901474348, 2957.71589447660], [0.670, 3.23650405278, 9595.23908922340], [0.782, 1.56739177814, 3333.49887969900], [0.641, 4.46918721250, 6836.64525283380], [0.611, 3.97393774087, 6041.32756708560], [0.738, 3.78715624780, 4562.46099302120], [0.558, 2.92718433901, 1589.07289528380], [0.513, 0.96852780537, 9623.68827669120], [0.508, 4.07262127921, 7.11354700080], [0.512, 1.53960708348, 7740.60678358880], [0.481, 3.51023225206, 155.42039943420], [0.528, 6.06190721770, 4933.20844033260], [0.558, 2.09491968451, 2288.34404351140], [0.445, 3.42439886280, 6680.24453233140], [0.482, 4.73460866232, 13365.97282514820], [0.534, 4.88536251621, 3361.38782219220], [0.520, 6.19100285186, 6438.49624942560], [0.441, 1.82408206251, 3325.35995551480], [0.487, 2.72879191049, 3319.83703120740], [0.417, 4.48716253276, 7903.07341972100], [0.430, 0.62845892205, 5614.72937620960], [0.395, 4.89021898045, 10419.98628350760], [0.380, 1.91138845097, 3553.91152213780], [0.358, 4.21584518245, 426.59819087600], [0.409, 4.53421956625, 3360.96774609859], [0.426, 5.47172830908, 3205.54734666440], [0.330, 1.00078638665, 8955.34180290940], [0.322, 2.42607399606, 2274.11694950980], [0.316, 3.22064089430, 1221.84856632140], [0.312, 3.66073476074, 3337.02199804800], [0.310, 4.09100416919, 3344.20285535160], [0.295, 2.87635162282, 7210.91581849420], [0.329, 5.64440592793, 12832.75874170460], [0.306, 1.52567836482, 7875.67186362420], [0.284, 0.56373187712, 6681.29216370240], [0.358, 4.21258737082, 1052.26838318840], [0.347, 1.52200237477, 10213.28554621100], [0.268, 3.57749600251, 9830.38901398780], [0.346, 1.65247014273, 6682.20517446780], [0.269, 4.45182417080, 9381.93999378540], [0.285, 0.97118840317, 6681.15754309680], [0.256, 3.67744143301, 1066.49547719000], [0.269, 1.78448639785, 6127.65545055720], [0.312, 4.63751658715, 5331.35744374080], [0.317, 6.15274242841, 3320.25710730100], [0.245, 4.71030710599, 26724.89941359840], [0.249, 3.31328995337, 10818.13528691580], [0.240, 4.87364672707, 6144.42034130420], [0.239, 1.35709001659, 7064.12138562280], [0.237, 3.19837233399, 5729.50644714900], [0.278, 1.50842060340, 4929.68532198360], [0.274, 3.61160906396, 191.44826611160], [0.248, 3.93789974497, 11243.68584642080], [0.242, 2.57630671866, 3355.86489788480], [0.241, 1.89683861728, 15643.68020330980], [0.228, 0.71217112323, 9866.41688066520], [0.246, 0.16913226579, 2700.71514038580], [0.219, 0.03864812268, 522.57741809380], [0.215, 3.44260776071, 8827.39026987480], [0.206, 5.23615052385, 6923.95345737360], [0.202, 0.60277862639, 10021.82002644720], [0.226, 2.43332503270, 8429.24126646660], [0.202, 2.63373646725, 10021.85453375160], [0.199, 3.26545613445, 382.89653222320], [0.198, 4.50685315424, 242.72860397400], [0.215, 2.12744795327, 553.56940284240], [0.177, 3.92599588022, 8031.09226305840], [0.162, 3.94498519498, 2921.12778282460], [0.199, 4.22948972595, 3312.16323923200], [0.188, 0.67072289565, 6298.32832117640], [0.160, 2.90951395323, 6872.67311951120], [0.155, 1.24529852403, 3364.49086444760], [0.186, 2.44723831367, 3503.07906283200], [0.139, 5.75493557040, 7632.94325965020], [0.149, 0.49665393273, 8969.56889691100], [0.132, 4.97828413367, 1748.01641306700], [0.130, 0.66881298338, 10014.72373309860], [0.128, 2.80753554051, 14584.29827312060], [0.176, 2.37291314099, 2118.76386037840], [0.127, 1.76223414864, 11081.21921028860], [0.127, 0.26234206855, 13358.92658845020], [0.163, 5.83356697025, 639.89728631400], [0.129, 2.02607662846, 3346.13535100720], [0.155, 1.57189307640, 3767.21061757580], [0.133, 4.20989922795, 11371.70468975820], [0.114, 2.12636383988, 6688.33840040040], [0.130, 1.33114943655, 3347.72597370060], [0.110, 5.78893316282, 16173.37116840440], [0.105, 3.27202438053, 15113.98923821520], [0.117, 5.66812806862, 536.80451209540], [0.106, 1.21268139587, 7234.79425624200], [0.108, 0.94652521237, 9808.53818466140], [0.121, 4.22204758443, 6158.64743530580], [0.124, 4.92495255567, 12964.30070339100], [0.142, 3.85764234922, 6894.52394883760], [0.099, 5.62543167000, 10973.55568635000], [0.100, 2.56456804207, 3178.14579056760], [0.131, 0.08971075365, 8273.82086703240], [0.112, 3.14240135508, 3316.73398895200], [0.095, 0.64723185059, 2487.41604494780], [0.087, 4.14322802003, 3603.69635007260], [0.087, 3.50260474148, 3077.52850332700], [0.096, 5.13010621713, 3304.58456002240], [0.082, 4.87880877413, 5828.02847164760], [0.083, 2.04400907684, 18984.29263000960], [0.085, 3.33671991814, 1758.65307841680], [0.099, 3.28955694324, 17654.78053974960], [0.078, 0.89238228021, 2699.73481931760], [0.095, 0.32948273562, 3863.18984479360], [0.083, 0.80327899268, 5085.03841111500], [0.091, 1.48623539837, 8270.29774868340], [0.075, 4.91191036053, 10021.76996979660], [0.079, 4.25171159471, 7373.38245462640], [0.084, 2.16662156833, 12566.15169998280], [0.088, 2.78893554858, 11769.85369316640], [0.095, 0.29428946155, 5628.95647021120], [0.076, 5.23354729169, 13760.59871020740], [0.092, 1.40883592065, 3336.73109134180], [0.069, 3.50477916910, 10713.99488132620], [0.079, 0.61833410504, 951.71840625060], [0.070, 1.93458925881, 3475.67750673520], [0.066, 5.01996258363, 16706.58525184800], [0.067, 3.68731475523, 4032.77002792660], [0.071, 1.71691035008, 10575.40668294180], [0.086, 1.82073461894, 10404.73381232260], [0.064, 2.43149744819, 2648.45482547300], [0.062, 0.25250107112, 3980.50971301380], [0.062, 3.16420520010, 13517.87010623340], [0.078, 1.41762772678, 3.52311834900], [0.086, 3.34935714534, 1581.95934828300], [0.064, 3.75812808116, 1596.18644228460], [0.061, 1.37421861116, 419.48464387520], [0.055, 1.11154560464, 433.71173787680], [0.061, 5.33515994167, 853.19638175200], [0.059, 0.80382380790, 13362.43245314700], [0.055, 0.37478855406, 149.56319713460], [0.053, 0.55329112916, 14314.16811304980], [0.059, 0.07234691744, 6531.66165626500], [0.059, 2.83458587563, 13362.46696045140], [0.059, 4.13409540555, 4407.10790388980], [0.057, 5.57913927474, 3376.64029337720], [0.049, 4.58036235824, 10551.52824519400], [0.050, 2.01769015785, 10022.81760116760], [0.055, 1.36081433917, 21393.54196985760], [0.048, 1.59939595487, 18052.92954315780], [0.045, 4.97928157994, 8671.96987044060], [0.044, 2.58542985685, 13916.01910964160], [0.047, 1.40206686464, 8425.65083781480], [0.043, 0.21864618144, 9779.10867612540], [0.042, 6.22365857047, 3914.95722503460], [0.048, 3.44104044998, 692.15760122680], [0.043, 3.21191030055, 6247.51311552280], [0.055, 4.01321481700, 10177.25767953360], [0.053, 2.93285711320, 3981.49003408200], [0.039, 5.54634215618, 6702.00024889200], [0.041, 2.46188112193, 6660.44945790720], [0.049, 3.04236065330, 640.87760738220], [0.039, 1.62689158397, 3335.08950239240], [0.038, 3.31198341709, 1744.42598441520], [0.038, 6.16317067723, 2818.03500860600], [0.038, 4.03534957207, 103.09277421860], [0.044, 0.91040525278, 5459.37628707820], [0.049, 1.88325571471, 11216.28429032400], [0.046, 5.62762941168, 9168.64089834740], [0.035, 1.65976191407, 12168.00269657460], [0.047, 4.52334272666, 10021.90459040220], [0.039, 2.08367076229, 13745.34623902240], [0.039, 4.76186135572, 20597.24396304120], [0.039, 3.00951950244, 3344.49376205780], [0.037, 1.33065895739, 12295.95422960920], [0.040, 3.96893429107, 13171.00144068760], [0.032, 0.91212661789, 12310.18132361080], [0.032, 2.22618836835, 7107.82304427560], [0.032, 4.96078703650, 24734.15439655740], [0.037, 3.30085609301, 20995.39296644940], [0.033, 3.70858397913, 10020.85695903120], [0.031, 4.18674524484, 17256.63153634140], [0.034, 3.25657016622, 14054.60730802600], [0.032, 5.75360661734, 6546.15977336420], [0.031, 3.16209740784, 12935.85151592320], [0.037, 2.14901622101, 6665.97238221460], [0.030, 0.21926429217, 6660.86953400080], [0.030, 3.55459460301, 9070.11887384880], [0.029, 2.97927335664, 2766.26762836500], [0.029, 4.65051930186, 10235.13637553740], [0.030, 5.16882435400, 16304.91313009080], [0.032, 5.01760544488, 3191.04922956520], [0.029, 2.93988761068, 6696.47732458460], [0.029, 5.06447742493, 5099.26550511660], [0.029, 5.68073325802, 3329.97576135000], [0.029, 0.43949269085, 3351.24909204960], [0.032, 1.37056688814, 6040.34724601740], [0.032, 1.42334455474, 76.26607127560], [0.033, 0.36423446435, 6604.95878212400], [0.033, 4.85478789063, 6701.58017279840], [0.030, 3.33348460172, 3369.06161416760], [0.028, 0.60182098585, 11766.26326451460], [0.026, 1.05197848649, 13207.02930736500], [0.026, 5.03535225585, 30065.51184029820], [0.034, 3.65553061498, 14158.74771361560], [0.025, 4.60925601393, 8329.67161059700], [0.025, 2.05970140678, 17395.21973472580], [0.030, 5.22285260441, 9485.03276800400], [0.025, 4.84964369679, 1648.44675719740], [0.026, 5.47626814223, 3074.00538497800], [0.024, 2.45239543931, 17085.95866572220], [0.029, 5.36428737888, 2707.82868738660], [0.024, 5.57488544800, 10264.56588407340], [0.025, 4.22744782935, 1692.16566950240], [0.023, 6.09244870438, 20199.09495963300], [0.028, 1.30366587075, 8439.87793181640], [0.032, 2.13597148493, 9468.26787725700], ], # B2 [ [16726.690, 0.60221392419, 3340.61242669980], [4986.799, 3.14159265359, 0.00000000000], [302.141, 5.55871276021, 6681.22485339960], [25.767, 1.89662673499, 13362.44970679920], [21.452, 0.91749968618, 10021.83728009940], [11.820, 2.24240738700, 3337.08930835080], [7.985, 2.24892866611, 16703.06213349900], [2.960, 5.89425825808, 3496.03282613400], [2.445, 5.18770525274, 5621.84292321040], [1.428, 1.25238140580, 2281.23049651060], [1.779, 2.58759968520, 20043.67456019880], [1.501, 3.18533003542, 3532.06069281140], [1.259, 4.80695172904, 3185.19202726560], [1.029, 2.35029907056, 6677.70173505060], [1.109, 3.80982317372, 5884.92684658320], [0.928, 0.29719160927, 3344.13554504880], [0.860, 3.11698318930, 6151.53388830500], [0.853, 1.33003321402, 529.69096509460], [0.883, 5.18681316017, 5486.77784317500], [1.100, 1.82962075794, 2942.46342329160], [0.815, 3.40910567373, 2544.31441988340], [0.702, 5.49076132554, 8962.45534991020], [0.644, 0.31400306761, 5088.62883976680], [0.745, 4.30248377111, 3340.59517304760], [0.586, 4.48071459693, 3894.18182954220], [0.681, 5.40951261308, 2810.92146160520], [0.745, 0.05006463495, 3340.62968035200], [0.542, 4.68895461946, 3339.63210563160], [0.497, 4.65665197749, 5092.15195811580], [0.460, 1.06670343610, 3097.88382272579], [0.423, 3.08034568777, 4292.33083295040], [0.381, 2.24933115190, 6283.07584999140], [0.429, 1.70668733378, 4690.47983635860], [0.339, 2.92195933142, 23384.28698689860], [0.310, 5.63324402105, 3723.50895892300], [0.287, 1.98619629868, 398.14900340820], [0.298, 2.58990636818, 6684.74797174860], [0.323, 5.15230144390, 6525.80445396540], [0.247, 2.36923535528, 3340.54511639700], [0.247, 1.96071951597, 3340.67973700260], [0.223, 4.75562842441, 2146.16541647520], [0.240, 3.53331653789, 3583.34103067380], [0.238, 4.69268478666, 6254.62666252360], [0.198, 6.21548965568, 2787.04302385740], [0.202, 4.25439775032, 3333.49887969900], [0.158, 1.89216973387, 6674.11130639880], [0.185, 2.99350590687, 10025.36039844840], [0.177, 1.41002572971, 6438.49624942560], [0.138, 1.23172102079, 3127.31333126180], [0.153, 5.93528616595, 6836.64525283380], [0.106, 5.35414400998, 3738.76143010800], [0.102, 3.67040445208, 1059.38193018920], [0.136, 1.06039656714, 2388.89402044920], [0.093, 5.04434801864, 155.42039943420], [0.093, 2.70817394910, 8955.34180290940], [0.108, 6.13917250674, 1748.01641306700], [0.116, 5.97739483530, 2914.01423582380], [0.099, 1.50221319099, 1751.53953141600], [0.092, 2.68470906437, 1990.74501704100], [0.077, 4.01966292109, 1592.59601363280], [0.076, 4.49660101731, 4562.46099302120], [0.076, 5.67354102576, 6041.32756708560], [0.078, 0.79220883728, 2288.34404351140], [0.074, 5.84795427965, 3341.59274776800], [0.080, 5.48556941416, 8432.76438481560], [0.065, 2.11705931744, 10018.31416175040], [0.066, 5.08073805943, 2957.71589447660], [0.059, 3.79695096075, 6923.95345737360], [0.061, 4.51116100631, 4933.20844033260], [0.059, 0.27765984344, 6127.65545055720], [0.052, 5.84885902302, 4535.05943692440], [0.051, 1.45495904398, 7477.52286021600], [0.054, 1.50278239577, 6489.77658728800], [0.056, 5.23212313891, 9866.41688066520], [0.057, 4.73711357046, 2274.11694950980], [0.051, 2.48654805044, 6467.92575796160], [0.047, 3.25899585469, 26724.89941359840], [0.048, 1.12255878532, 1349.86740965880], [0.048, 2.87122326236, 242.72860397400], [0.045, 1.61358524585, 5729.50644714900], [0.043, 2.24334731490, 7.11354700080], [0.044, 4.61065704096, 11773.37681151540], [0.042, 3.32038536161, 13365.97282514820], [0.047, 5.10736479739, 8969.56889691100], [0.044, 4.64194663616, 4399.99435688900], [0.039, 5.45779680648, 8031.09226305840], [0.044, 5.21409542420, 4136.91043351620], [0.045, 4.26206063790, 796.29800681640], [0.048, 3.04342098072, 5331.35744374080], [0.042, 2.12882700518, 213.29909543800], [0.038, 2.49365585516, 951.71840625060], [0.037, 3.44816851943, 3325.35995551480], [0.038, 3.13981385980, 3149.16416058820], [0.039, 3.64984946180, 553.56940284240], [0.036, 0.54858124109, 7632.94325965020], [0.032, 4.29985057106, 3355.86489788480], [0.037, 6.26349600634, 6682.20517446780], [0.037, 3.83188032092, 3870.30339179440], [0.031, 4.94959395405, 6680.24453233140], [0.035, 6.14813219827, 3360.96774609859], [0.029, 0.54115054572, 6681.29216370240], [0.035, 1.49899662719, 3320.25710730100], [0.033, 0.19183878029, 3347.72597370060], [0.036, 3.28055425527, 1589.07289528380], [0.031, 5.66015228291, 1066.49547719000], [0.028, 4.18178455540, 7210.91581849420], [0.025, 1.21627749818, 9492.14631500480], [0.029, 2.02283118033, 7234.79425624200], [0.024, 2.96777681837, 7064.12138562280], [0.024, 2.16823248221, 10419.98628350760], [0.022, 4.67496434823, 1194.44701022460], [0.022, 5.01797528499, 9595.23908922340], [0.028, 4.19843924702, 8429.24126646660], [0.023, 6.21195010050, 7740.60678358880], [0.025, 1.45100528915, 6872.67311951120], [0.024, 1.93342510858, 2699.73481931760], [0.028, 5.87009898150, 1052.26838318840], [0.025, 2.49707182259, 2118.76386037840], [0.020, 0.15682384975, 3205.54734666440], [0.019, 3.82087005916, 12303.06777661000], [0.020, 6.26534330674, 7875.67186362420], [0.019, 0.99282533197, 522.57741809380], [0.018, 4.11668144665, 426.59819087600], [0.020, 3.28531167827, 9225.53927328300], [0.019, 5.72169822815, 11371.70468975820], [0.018, 4.76871968197, 382.89653222320], [0.017, 0.96519535826, 191.44826611160], [0.017, 0.86184324841, 10973.55568635000], [0.018, 6.22706341047, 9381.93999378540], [0.015, 0.54135050421, 640.87760738220], ], # B3 [ [606.506, 1.98050633529, 3340.61242669980], [42.611, 0.00000000000, 0.00000000000], [13.652, 1.79588228800, 6681.22485339960], [2.730, 3.45377082121, 10021.83728009940], [0.929, 3.75226159072, 3337.08930835080], [0.607, 0.10618486408, 13362.44970679920], [0.617, 1.14471772765, 3496.03282613400], [0.479, 0.70504966293, 16703.06213349900], [0.185, 3.28778562029, 3185.19202726560], [0.169, 0.29980532608, 5621.84292321040], [0.158, 1.09025317222, 20043.67456019880], [0.123, 2.55664973413, 3097.88382272579], [0.126, 4.74517022983, 3532.06069281140], [0.093, 6.03607685759, 3894.18182954220], [0.099, 4.92257049901, 2544.31441988340], [0.106, 3.41315845439, 2942.46342329160], [0.062, 6.25738949900, 3339.63210563160], [0.058, 4.64867983361, 4292.33083295040], [0.050, 3.75358626972, 6677.70173505060], [0.050, 1.89408668049, 5088.62883976680], [0.058, 3.65295480755, 6525.80445396540], [0.045, 0.38295906298, 5486.77784317500], [0.052, 3.25535694335, 4690.47983635860], [0.044, 1.89342588822, 3583.34103067380], [0.037, 0.04871920725, 2146.16541647520], [0.039, 0.91787211117, 3723.50895892300], [0.051, 5.24063514394, 5884.92684658320], [0.036, 2.79633276263, 529.69096509460], [0.032, 1.44641701752, 23384.28698689860], [0.024, 5.41362501363, 3340.59517304760], [0.023, 4.70639896508, 2787.04302385740], [0.021, 1.12581894224, 3340.62968035200], [0.021, 0.51744721589, 8962.45534991020], [0.018, 0.36433365806, 155.42039943420], [0.018, 5.53170427847, 3333.49887969900], [0.019, 4.34401282378, 6151.53388830500], [0.021, 2.94765501590, 398.14900340820], [0.020, 5.96181389299, 5092.15195811580], [0.017, 0.80891817293, 1194.44701022460], [0.011, 0.43817745316, 1059.38193018920], [0.014, 1.06654064248, 6836.64525283380], ], # B4 [ [11.334, 3.45724352586, 3340.61242669980], [13.369, 0.00000000000, 0.00000000000], [0.744, 0.50445805257, 6681.22485339960], [0.148, 1.05056602649, 10021.83728009940], [0.102, 2.66185835593, 3496.03282613400], [0.053, 5.27888218929, 3337.08930835080], [0.022, 4.09971603267, 3097.88382272579], [0.023, 1.72422342130, 3185.19202726560], [0.013, 5.41704779112, 16703.06213349900], [0.013, 2.06957065662, 13362.44970679920], [0.010, 0.95989595600, 3894.18182954220], ], # B5 [ [0.457, 4.86794125358, 3340.61242669980], [0.053, 5.30547050586, 6681.22485339960], [0.012, 5.75114070583, 10021.83728009940], [0.013, 4.17736925293, 3496.03282613400], [0.007, 0.00000000000, 0.00000000000], ], ] """This table contains Mars' periodic terms (all of them) from the planetary theory VSOP87 for the heliocentric latitude at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in pages 424-425.""" VSOP87_R = [ # R0 [ [153033488.276, 0.00000000000, 0.00000000000], [14184953.153, 3.47971283519, 3340.61242669980], [660776.357, 3.81783442097, 6681.22485339960], [46179.117, 4.15595316284, 10021.83728009940], [8109.738, 5.55958460165, 2810.92146160520], [7485.315, 1.77238998069, 5621.84292321040], [5523.193, 1.36436318880, 2281.23049651060], [3825.160, 4.49407182408, 13362.44970679920], [2306.539, 0.09081742493, 2544.31441988340], [1999.399, 5.36059605227, 3337.08930835080], [2484.385, 4.92545577893, 2942.46342329160], [1960.198, 4.74249386323, 3344.13554504880], [1167.115, 2.11261501155, 5092.15195811580], [1102.828, 5.00908264160, 398.14900340820], [899.077, 4.40790433994, 529.69096509460], [992.252, 5.83862401067, 6151.53388830500], [807.348, 2.10216647104, 1059.38193018920], [797.910, 3.44839026172, 796.29800681640], [740.980, 1.49906336892, 2146.16541647520], [692.340, 2.13378814785, 8962.45534991020], [633.144, 0.89353285018, 3340.59517304760], [725.583, 1.24516913473, 8432.76438481560], [633.140, 2.92430448169, 3340.62968035200], [574.352, 0.82896196337, 2914.01423582380], [526.187, 5.38292276228, 3738.76143010800], [629.976, 1.28738135858, 1751.53953141600], [472.776, 5.19850457873, 3127.31333126180], [348.095, 4.83219198908, 16703.06213349900], [283.702, 2.90692294913, 3532.06069281140], [279.552, 5.25749247548, 6283.07584999140], [233.827, 5.10546492529, 5486.77784317500], [219.428, 5.58340248784, 191.44826611160], [269.891, 3.76394728622, 5884.92684658320], [208.333, 5.25476080773, 3340.54511639700], [275.224, 2.90818883832, 1748.01641306700], [275.501, 1.21767967781, 6254.62666252360], [239.133, 2.03669896238, 1194.44701022460], [223.190, 4.19861593779, 3149.16416058820], [182.686, 5.08062683355, 6684.74797174860], [186.213, 5.69871555748, 6677.70173505060], [175.995, 5.95341786369, 3870.30339179440], [178.613, 4.18423025538, 3333.49887969900], [208.336, 4.84626442122, 3340.67973700260], [228.128, 3.25529020620, 6872.67311951120], [144.286, 0.21296012258, 5088.62883976680], [163.534, 3.79889068111, 4136.91043351620], [133.120, 1.53910106710, 7903.07341972100], [141.759, 2.47790321309, 4562.46099302120], [114.941, 4.31745088059, 1349.86740965880], [118.781, 2.12178071222, 1589.07289528380], [102.096, 6.18138550087, 9492.14631500480], [128.555, 5.49883294915, 8827.39026987480], [111.538, 0.55339169625, 11243.68584642080], [82.498, 1.62227044590, 11773.37681151540], [83.212, 0.61553380568, 8429.24126646660], [84.470, 0.62274593110, 1592.59601363280], [86.659, 1.74988330093, 2700.71514038580], [71.826, 2.47489899385, 12303.06777661000], [85.312, 1.61621097912, 4690.47983635860], [63.641, 2.67334126661, 426.59819087600], [68.599, 2.40197828418, 4399.99435688900], [58.559, 4.72052787516, 213.29909543800], [62.015, 1.10065866221, 1221.84856632140], [66.509, 2.21307705185, 6041.32756708560], [55.811, 1.23288325946, 3185.19202726560], [54.989, 5.72691385306, 951.71840625060], [52.418, 3.02366828926, 4292.33083295040], [55.686, 5.44686699242, 3723.50895892300], [58.959, 3.26242666052, 6681.24210705180], [44.629, 2.01473640390, 8031.09226305840], [58.959, 1.23165502899, 6681.20759974740], [42.444, 2.26551590902, 155.42039943420], [38.956, 2.57760416009, 3341.59274776800], [51.561, 5.72326937712, 7079.37385680780], [48.939, 5.61614696751, 3553.91152213780], [45.414, 5.43290921705, 6467.92575796160], [36.435, 4.43921812388, 3894.18182954220], [35.980, 1.15966567007, 2288.34404351140], [35.265, 5.49029710802, 1990.74501704100], [42.191, 1.63253742760, 5628.95647021120], [44.292, 5.00341366850, 5614.72937620960], [33.623, 5.17029029766, 20043.67456019880], [43.256, 1.03732072925, 11769.85369316640], [39.237, 1.24237122859, 3339.63210563160], [31.943, 4.59258406791, 2274.11694950980], [30.345, 2.44177670130, 11371.70468975820], [32.259, 2.38215172582, 4535.05943692440], [31.870, 4.37521442752, 3.52311834900], [29.350, 4.06034813442, 3097.88382272579], [31.972, 1.93970478412, 382.89653222320], [26.166, 5.58466944895, 9623.68827669120], [27.904, 4.25805969214, 3191.04922956520], [33.065, 0.85467740581, 553.56940284240], [27.543, 1.57668567401, 9595.23908922340], [25.159, 0.81355213242, 10713.99488132620], [22.070, 0.85747723964, 3319.83703120740], [24.772, 5.38970742761, 2818.03500860600], [23.359, 6.01453778225, 3496.03282613400], [24.732, 2.58034797703, 2803.80791460440], [19.365, 5.18528750472, 6681.29216370240], [19.122, 5.41968559451, 10025.36039844840], [19.364, 5.59378382138, 6681.15754309680], [18.330, 5.79567324240, 7064.12138562280], [18.193, 5.61307426173, 7.11354700080], [20.392, 4.53637816869, 6489.77658728800], [21.260, 6.19160142215, 14054.60730802600], [17.094, 1.55004739305, 2957.71589447660], [22.791, 3.41709388606, 7632.94325965020], [20.585, 2.98697279083, 3361.38782219220], [18.005, 2.81431094394, 4032.77002792660], [17.049, 6.15528099726, 10404.73381232260], [16.488, 3.84534700818, 10973.55568635000], [16.052, 0.92823508003, 14584.29827312060], [21.027, 2.38474290907, 4989.05918389720], [16.267, 1.92321585819, 7373.38245462640], [16.291, 6.28233085307, 7210.91581849420], [18.585, 4.07325116588, 2388.89402044920], [15.977, 4.58368417141, 3264.34635542420], [19.913, 2.73518445950, 5099.26550511660], [19.661, 1.86285979000, 3443.70520091840], [16.500, 4.14061745086, 7477.52286021600], [19.495, 6.03778234182, 10018.31416175040], [15.104, 2.65433427561, 2787.04302385740], [19.099, 0.22623441108, 13745.34623902240], [17.163, 3.18825562972, 3347.72597370060], [13.423, 2.12818658793, 3344.20285535160], [15.410, 2.20773507960, 2118.76386037840], [17.238, 3.67067776368, 3205.54734666440], [13.113, 4.27490214998, 14314.16811304980], [16.451, 2.86641622696, 14712.31711645800], [13.734, 1.68629769646, 3337.02199804800], [16.659, 4.52130808861, 6674.11130639880], [11.830, 0.19684525299, 3475.67750673520], [11.767, 3.22897247987, 5828.02847164760], [11.886, 4.82057654742, 7234.79425624200], [10.609, 1.73997337551, 639.89728631400], [11.154, 0.23859830185, 12832.75874170460], [11.030, 0.44541706440, 10213.28554621100], [10.240, 5.74758340632, 242.72860397400], [10.051, 2.45102946726, 4929.68532198360], [10.061, 0.78907665448, 9381.93999378540], [10.065, 5.37506605762, 5085.03841111500], [11.902, 0.79897698904, 3265.83082813250], [8.990, 0.96463418322, 4933.20844033260], [8.970, 4.18326774405, 9225.53927328300], [8.982, 1.98501418026, 15113.98923821520], [8.324, 1.93694866513, 1648.44675719740], [7.833, 2.04997447879, 1758.65307841680], [7.957, 3.92331072722, 2921.12778282460], [10.224, 2.66497189021, 2487.41604494780], [8.277, 0.94860765546, 2906.90068882300], [7.371, 0.84378341481, 692.15760122680], [7.545, 5.68031160782, 13916.01910964160], [7.912, 2.81294761885, 15643.68020330980], [6.958, 3.32193127272, 3230.40610548040], [7.426, 6.09656283295, 3583.34103067380], [6.402, 4.19806996774, 5202.35827933520], [6.529, 6.11929252710, 135.06508003540], [6.130, 0.00117252232, 6836.64525283380], [6.226, 6.10683955669, 17256.63153634140], [8.193, 5.24811458833, 10575.40668294180], [6.168, 3.60069207439, 10021.85453375160], [6.169, 1.56992114335, 10021.82002644720], [5.671, 0.13650306660, 13524.91634293140], [6.257, 4.50450768937, 8425.65083781480], [5.249, 2.70122358603, 4459.36821880260], [6.479, 2.74267498287, 7740.60678358880], [5.530, 6.06408145092, 10419.98628350760], [5.536, 5.74996063243, 12168.00269657460], [6.826, 4.69327545839, 17654.78053974960], [5.005, 4.68382632238, 522.57741809380], [6.328, 3.31896726895, 3767.21061757580], [4.734, 0.00755678425, 3325.35995551480], [5.032, 2.33696685608, 1052.26838318840], [4.661, 5.15051711401, 1066.49547719000], [4.724, 5.77956037309, 9808.53818466140], [5.136, 1.57259709878, 6525.80445396540], [4.522, 1.44218620352, 3369.06161416760], [6.189, 4.58996159356, 6531.66165626500], [6.205, 4.48164856516, 22747.29071487440], [5.329, 4.55145599182, 1744.42598441520], [4.511, 5.94511266539, 6894.52394883760], [4.330, 3.10901365758, 4569.57454002200], [5.366, 5.08043436437, 2707.82868738660], [5.134, 1.28568358496, 8439.87793181640], [4.127, 5.48538052912, 2699.73481931760], [5.394, 5.21695066244, 5305.45105355380], [4.449, 5.56764082611, 16865.52876963120], [3.898, 1.48782434790, 9168.64089834740], [3.863, 1.23050803930, 16858.48253293320], [3.766, 0.27090392616, 17395.21973472580], [4.683, 3.05668892586, 5518.75014899180], [4.258, 2.79090145790, 3503.07906283200], [3.864, 0.37957291785, 10177.25767953360], [3.992, 1.84424768030, 3134.42687826260], [3.643, 2.95318600206, 6144.42034130420], [3.654, 1.58063207414, 6680.24453233140], [3.931, 1.98436570971, 8969.56889691100], [3.350, 2.72637081667, 7875.67186362420], [3.623, 2.91544991631, 6682.20517446780], [4.392, 0.81931997702, 3302.47939106200], [4.062, 5.46935175827, 3120.19978426100], [3.319, 1.77193665786, 3116.26763099790], [3.510, 1.18027333874, 10184.30391623160], [4.008, 1.33675167812, 6247.51311552280], [3.603, 0.15469852619, 2178.13772229200], [3.313, 3.12853663982, 17277.40693183380], [4.138, 4.39568891039, 3074.00538497800], [3.201, 3.36492925275, 2384.32327072920], [3.991, 3.82867836910, 3355.86489788480], [4.205, 1.90532279170, 263.08392337280], [3.743, 4.25458024187, 6261.74020952440], [3.111, 1.65445053349, 20199.09495963300], [3.634, 5.55063049451, 632.78373931320], [2.892, 1.91514920700, 12935.85151592320], [3.373, 5.50812408522, 23384.28698689860], [3.312, 5.83174680245, 5331.35744374080], [3.124, 5.44069658195, 6048.44111408640], [3.813, 0.80274487430, 13517.87010623340], [3.612, 3.68140265686, 5724.93569742900], [2.813, 1.68598843422, 2391.43681773000], [2.902, 5.30666239739, 8955.34180290940], [3.225, 2.29832592489, 3312.16323923200], [3.863, 3.48188264725, 20618.01935853360], [2.738, 5.49768261369, 149.56319713460], [2.809, 4.76933217397, 1964.83862685400], [2.711, 2.69244730345, 3178.14579056760], [2.711, 2.38275660721, 2648.45482547300], [2.743, 1.09492569851, 536.80451209540], [2.821, 5.91845472246, 12964.30070339100], [2.716, 6.10377796874, 3973.39616601300], [2.487, 3.87703916286, 1861.74585263540], [2.617, 2.65526535627, 8329.67161059700], [2.938, 5.68402398615, 6158.64743530580], [2.336, 3.24847913311, 4672.66731424060], [2.318, 1.69214259672, 3914.95722503460], [2.371, 4.75067664712, 103.09277421860], [2.963, 0.23381699914, 20597.24396304120], [2.190, 6.18344448099, 3346.13535100720], [2.444, 1.92547995169, 7799.98064550240], [2.121, 4.87491216115, 9830.38901398780], [2.532, 5.39550087270, 3863.18984479360], [2.101, 2.84309138388, 3415.39402526710], [2.176, 0.58632570025, 162.46663613220], [2.106, 3.06229353931, 19800.94595622480], [2.347, 3.90795942709, 3335.08950239240], [2.031, 5.52057907797, 10021.90459040220], [1.997, 2.77243710569, 13936.79450513400], [2.139, 5.40620646615, 266.60704172180], [2.147, 0.08966987600, 13358.92658845020], [1.996, 2.62541669265, 20.77539549240], [1.961, 4.88521794174, 3237.51965248120], [2.216, 1.06829128652, 3320.25710730100], [2.131, 3.02112533027, 5625.36604155940], [2.124, 3.68620121537, 5618.31980486140], [1.938, 1.29006691721, 17924.91069982040], [2.555, 4.91826220321, 6604.95878212400], [2.561, 2.10055088914, 7910.18696672180], [1.820, 5.57528712663, 3351.24909204960], [1.786, 5.77310414452, 3607.21946842160], [1.780, 4.48010071981, 10818.13528691580], [2.106, 5.75526661975, 13365.97282514820], [1.987, 2.61151965233, 3546.79797513700], [1.799, 2.73192475257, 3360.96774609859], [1.715, 1.50805385053, 1692.16566950240], [1.752, 2.21455466761, 13119.72110282519], [1.913, 3.32230688971, 6702.00024889200], [1.724, 1.43449979531, 4885.96640967860], [2.050, 1.19293239093, 6660.44945790720], [1.774, 2.18404386388, 6784.31762761820], [1.722, 4.86031154305, 10014.72373309860], [1.773, 2.09448668554, 3603.69635007260], [1.606, 3.48105136801, 23141.55838292460], [1.621, 5.73820120882, 4555.34744602040], [1.579, 1.88769198841, 6298.32832117640], [1.530, 5.16381564230, 76.26607127560], [1.615, 3.24110713658, 3657.00429635640], [1.576, 3.52622401575, 6688.33840040040], [2.034, 2.63620520451, 16460.33352952499], [2.025, 5.92907541624, 10021.76996979660], [1.689, 4.41053057494, 5729.50644714900], [1.878, 4.53291044847, 3329.97576135000], [1.530, 4.76331644411, 7895.95987272020], [1.529, 1.35289110986, 1581.95934828300], [1.807, 1.86212004697, 2693.60159338500], [1.855, 2.38561742394, 6843.69148953180], [1.518, 3.98476157750, 6546.15977336420], [1.389, 1.82099537095, 9779.10867612540], [1.447, 2.35649936427, 6034.21402008480], [1.386, 5.55304113895, 4775.76008845920], [1.372, 1.07224580315, 12722.55242048520], [1.423, 4.46530428193, 574.34479833480], [1.424, 2.57162391016, 3399.98628861340], [1.380, 5.76156315252, 16335.83780453660], [1.338, 2.97604558638, 6127.65545055720], [1.479, 4.74310691166, 12566.15169998280], [1.706, 0.30579918494, 10551.52824519400], [1.281, 2.00285974432, 6677.63442474780], [1.350, 0.78892333409, 853.19638175200], [1.534, 4.33326399444, 640.87760738220], [1.247, 1.02503908468, 3024.22055704320], [1.289, 1.92786975543, 3347.65866339780], [1.243, 2.44217806237, 6684.81528205140], [1.453, 1.74218016403, 3333.56619000180], [1.675, 1.79693456330, 1118.75579210280], [1.491, 2.59386711806, 2494.52959194860], [1.293, 3.31710472549, 3407.09983561420], [1.188, 4.92989260576, 22743.40937951640], [1.329, 1.99426530402, 1228.96211332220], [1.373, 2.53354987340, 5459.37628707820], [1.183, 4.25338096667, 3344.49376205780], [1.231, 2.50206227837, 4356.27544458400], [1.243, 2.65176267860, 74.78159856730], [1.285, 4.34087881585, 3326.38533269820], [1.119, 1.91321862491, 3281.23856478620], [1.094, 5.50748655535, 3017.10701004240], [1.259, 3.77654662830, 11236.57229942000], [1.285, 1.38335267684, 3077.52850332700], [1.100, 1.17130732373, 6606.44325483230], [1.115, 5.81275569652, 2675.85638156980], [1.380, 5.70641426169, 2807.39834325620], [1.256, 3.35479933251, 4039.88357492740], [1.187, 2.41348693872, 10596.18207843420], [1.052, 3.33521939538, 3304.58456002240], [1.188, 5.84735836632, 3336.73109134180], [1.072, 2.78383184435, 8270.29774868340], [1.105, 3.03463252672, 3929.67725370800], [1.013, 3.52026711847, 8013.27974094040], [1.079, 0.51857999039, 2814.44457995420], [0.999, 4.72734008760, 533.21408344360], [1.131, 0.52584038526, 6816.28993343500], [1.191, 0.60874292520, 2301.58581590939], [1.313, 2.07273299121, 23539.70738633280], [0.996, 4.03971126547, 16062.18452611680], [0.954, 5.90340414098, 20206.14119633100], [0.993, 0.07132588892, 24150.08005134500], [1.051, 2.22096534870, 3980.50971301380], [1.089, 1.25512213569, 5938.23479286700], [0.912, 2.54221161167, 433.71173787680], [1.249, 0.60003625956, 16173.37116840440], [1.027, 4.95999945094, 19676.45023123640], [1.108, 4.34209448160, 3339.12795399150], [1.188, 6.21563747433, 2679.37949991880], [0.849, 0.82548606454, 2597.62236616720], [1.145, 4.48151980872, 19402.79695281660], [0.948, 1.30280088857, 8273.82086703240], [1.016, 5.14464815830, 1596.18644228460], [0.832, 5.60623652030, 3340.19235060619], [1.035, 4.71893106874, 419.48464387520], [0.903, 0.45419000582, 12995.22537783680], [1.089, 0.51294377637, 11250.79939342160], [0.840, 5.30858028008, 26084.02180621620], [0.990, 2.06776368865, 7255.56965173440], [0.808, 6.25630819993, 15508.61512327440], [0.806, 3.09007612135, 5415.65737477320], [0.782, 4.62274599734, 2547.83753823240], [0.963, 2.10680539916, 6456.88005769770], [0.778, 3.56602161857, 12721.57209941700], [0.873, 5.09097164784, 2540.79130153440], [0.772, 3.08101797047, 11081.21921028860], [0.965, 2.33106703115, 18454.60166491500], [0.859, 4.14788214122, 6438.49624942560], [1.012, 4.45011664540, 3316.73398895200], [0.906, 4.29336078401, 3344.54457996290], [0.741, 2.61446403580, 2284.75361485960], [0.790, 6.03436225041, 12509.25332504720], [0.738, 0.52092422137, 18052.92954315780], [0.737, 4.11165247543, 3760.09707057500], [0.727, 3.28066632751, 3510.19260983280], [1.006, 0.45037465289, 27490.69247804480], [0.923, 2.78717931388, 1332.05488754080], [0.756, 0.86881841787, 1545.35398297880], [0.774, 3.71535541900, 6571.01853218020], [0.900, 2.74944190055, 316.39186965660], [0.704, 1.89617185328, 13362.43245314700], [0.701, 2.21328293796, 20995.39296644940], [0.701, 3.92689438700, 13362.46696045140], [0.695, 5.52658147215, 3364.49086444760], [0.764, 1.88253040972, 5732.04924442980], [0.693, 0.34849213821, 5835.14201864840], [0.698, 1.79132650081, 206.18554843720], [0.687, 0.11649928911, 13760.59871020740], [0.827, 0.49766945172, 3376.64029337720], [0.686, 0.23965591265, 2409.24933984800], [0.672, 0.51352450554, 25685.87280280800], [0.699, 5.90167595080, 19004.64794940840], [0.647, 3.01091875955, 5223.69391980220], [0.643, 4.88507402785, 11766.26326451460], [0.723, 3.28296530537, 4142.97634914600], [0.660, 4.27334393830, 1214.73501932060], [0.675, 0.48874492682, 5408.54382777240], [0.809, 3.13310075522, 18984.29263000960], [0.646, 3.63004914186, 7107.82304427560], [0.831, 4.49449658957, 3341.03250279340], [0.680, 0.16949964513, 110.20632121940], [0.592, 6.03272224596, 20809.46762464520], [0.627, 4.93438097728, 9872.27408296480], [0.698, 1.45709305452, 3377.21779200400], [0.583, 4.01887095237, 664.75604513000], [0.591, 4.01381288194, 19406.67828817460], [0.571, 1.20823284619, 5621.86017686260], [0.680, 4.72905586557, 8116.37251515900], [0.739, 3.19765996917, 9380.95967271720], [0.571, 5.46064659057, 5621.82566955820], [0.702, 0.14107083764, 6923.95345737360], [0.598, 3.05986754375, 3341.04230982650], [0.601, 2.17944973698, 7270.28968040780], [0.572, 0.42001145821, 15110.46611986620], [0.655, 1.08706089359, 3169.93955608060], [0.582, 1.68224967199, 26087.90314157420], [0.543, 2.42716241058, 170.67287061920], [0.543, 1.68460678113, 11780.49035851620], [0.533, 2.63982684952, 2277.70737816160], [0.550, 2.54220679987, 7380.49600162720], [0.576, 1.69042028754, 3384.33133900480], [0.535, 5.01279223460, 1375.77379984580], [0.579, 5.99182453047, 2149.68853482420], [0.598, 0.75754342787, 3340.18254357310], [0.575, 1.33793171924, 3296.89351439480], [0.689, 0.02993986536, 22345.26037610820], [0.526, 6.14212516186, 13149.15061136120], [0.540, 5.54137118955, 8646.06348025360], [0.528, 2.74183495775, 3826.58447948940], [0.689, 6.28205551764, 12295.95422960920], [0.499, 0.25665224668, 2142.64229812620], [0.498, 5.91370528026, 6460.81221096080], [0.588, 3.39977690249, 3329.56672643590], [0.507, 0.63367870048, 20735.83216142559], [0.590, 3.87951788923, 9065.54812412880], [0.509, 2.59333214746, 3877.41693879520], [0.486, 4.01113864377, 23937.85638974100], [0.541, 1.55072392536, 2221.85663459700], [0.482, 0.00200643783, 10235.13637553740], [0.474, 4.14503805378, 3113.13629391080], [0.523, 2.89171162726, 6040.34724601740], [0.458, 4.08131432844, 1162.47470440780], [0.493, 2.98933582802, 1039.02661079040], [0.489, 4.88201647585, 5511.63660199100], [0.537, 1.24870344441, 48835.19385644859], [0.585, 5.53384919340, 4981.94563689640], [0.462, 5.38999453893, 15664.03552270859], [0.531, 1.22287288928, 10721.10842832700], [0.440, 4.69966067585, 799.82112516540], [0.588, 5.15076051189, 3873.82651014340], [0.465, 5.49236978535, 3342.09689940810], [0.545, 5.91813092143, 1478.86657406440], [0.440, 2.28287871244, 12310.18132361080], [0.436, 0.12478564862, 956.28915597060], [0.573, 3.86388572602, 26482.17080962440], [0.429, 1.20474317285, 28.44918746780], [0.435, 3.75437730899, 5195.24473233440], [0.457, 1.45606713663, 5636.07001721200], [0.553, 5.30628175145, 2766.26762836500], [0.494, 0.63303483918, 3274.12501778540], [0.530, 3.18458612574, 8535.85715903420], [0.535, 1.89165024367, 9866.41688066520], [0.433, 0.33270291162, 6665.97238221460], [0.404, 4.67939964590, 4825.54491639400], [0.402, 3.25727658426, 5820.91492464680], [0.415, 1.41915166067, 21947.11137270000], [0.414, 3.32843373219, 8859.36257569160], [0.403, 1.68400791606, 9588.12554222260], [0.399, 0.93465630912, 2295.45759051220], [0.402, 0.85364636108, 29026.48522950779], [0.494, 4.57792960199, 8542.97070603500], [0.413, 2.60545132222, 38.13303563780], [0.413, 5.44081623497, 4407.10790388980], [0.404, 5.33168348188, 3189.56475685690], [0.385, 1.90313951519, 10020.85695903120], [0.454, 1.18358809702, 10610.90210710760], [0.381, 4.90212003667, 19146.75926614180], [0.415, 3.07892141478, 11216.28429032400], [0.378, 0.19461412344, 2067.93140107260], [0.418, 1.14626975196, 6643.09181776180], [0.426, 4.33863084563, 220.41264243880], [0.412, 0.02314567339, 3192.53370227350], [0.391, 4.75902617217, 6414.61781167780], [0.399, 1.37708573980, 9654.61295113700], [0.381, 2.74120772781, 1854.63230563460], [0.378, 4.16366866018, 13553.89797291080], [0.409, 3.12117409635, 3723.49170527080], [0.379, 5.87578711682, 6357.71943674220], [0.375, 3.29175394061, 31022.75317085620], [0.358, 3.99134138048, 8958.93223156120], [0.390, 2.01175211992, 1903.43681250120], [0.373, 1.27018251531, 2111.65031337760], [0.493, 4.66294641806, 1435.14766175940], [0.379, 4.08720452061, 10706.88133432540], [0.461, 1.90122301470, 25287.72379939980], [0.364, 3.25231136840, 5095.67507646480], [0.382, 2.18684874688, 16276.46394262300], [0.359, 2.29096599931, 28628.33622609960], [0.362, 4.15084528423, 6696.47732458460], [0.374, 5.78780163439, 3490.17562383440], [0.386, 4.73230339383, 3981.49003408200], [0.344, 5.79156714790, 26880.31981303260], [0.368, 3.44405073824, 15.25247118500], [0.410, 1.76294940448, 6709.67404086740], [0.339, 1.71242500987, 224.34479570190], [0.373, 2.71286157688, 3472.15438838620], [0.334, 1.10569460106, 59.37386191360], [0.394, 4.02046774116, 2075.04494807340], [0.402, 3.27520695853, 931.36308685180], [0.318, 3.28892524780, 9485.03276800400], [0.319, 4.05344391333, 3450.81874791920], [0.341, 6.08567978892, 17085.95866572220], [0.378, 0.71609301686, 3209.07046501340], [0.326, 4.58257191106, 8982.81066930900], [0.369, 6.17228742886, 8671.96987044060], [0.308, 1.01924467785, 18606.49894600020], [0.370, 2.84011243059, 4392.88080988820], [0.303, 5.00239879717, 2810.93871525740], [0.303, 2.97162741204, 2810.90420795300], [0.419, 2.79830562400, 5106.37905211740], [0.358, 1.15955325186, 4076.48894023160], [0.360, 5.83226123310, 26724.89941359840], [0.298, 5.57160706753, 3041.48603243060], [0.298, 3.06970285022, 11670.28403729680], [0.388, 5.01197738185, 12323.42309600880], [0.336, 4.60208332758, 9602.35263622420], [0.371, 2.23508025241, 4996.17273089800], [0.300, 6.04069385215, 9499.25986200560], [0.345, 1.74260482164, 5617.91076994730], [0.302, 3.01127349940, 7483.58877584580], [0.289, 0.39479288685, 2412.77245819700], [0.289, 2.21430640344, 11140.59307220220], [0.330, 5.81605457596, 4246.06912336460], [0.394, 2.12229107240, 6475.03930496240], [0.301, 5.26147877814, 9945.57120882380], [0.338, 4.94717046909, 5625.77507647350], [0.372, 5.46968662800, 3561.02506913860], [0.279, 0.54063870001, 3226.21331978640], [0.291, 5.21021494024, 13171.00144068760], [0.384, 3.23921380878, 10022.81760116760], [0.309, 3.17514941939, 14047.49376102520], [0.273, 1.68203034215, 4253.18267036540], [0.272, 0.11218647217, 7314.00859271280], [0.281, 5.15132055967, 2825.14855560680], [0.292, 3.33720586058, 9468.26787725700], [0.316, 1.41719074976, 589.06482700820], [0.264, 0.48845594730, 16699.53901514999], [0.266, 1.69694779915, 647.01083331480], [0.318, 2.47072726153, 8436.28750316460], [0.260, 2.54459932529, 20.35531939880], [0.275, 2.78608579994, 2970.91261075940], [0.295, 5.96367554548, 4025.65648092580], [0.268, 3.01034973031, 6518.75821726740], [0.259, 5.20888482695, 7366.26890762560], [0.298, 2.71010678192, 6652.77566593180], [0.276, 0.78545108300, 3735.23831175900], [0.305, 6.19137255377, 6677.34351804160], [0.265, 3.25145629239, 24889.57479599160], [0.260, 3.99612605351, 2171.02417529120], [0.252, 4.14773813625, 5642.19824260920], [0.254, 1.38470256851, 846.08283475120], [0.258, 2.03261985834, 2089.78223039900], [0.298, 3.81212222628, 28230.18722269139], [0.241, 2.96550398155, 27682.14074415640], [0.259, 4.79545870271, 6657.34641565180], [0.238, 1.18977479528, 3171.03224356680], [0.256, 1.01427800277, 568.82187402740], [0.236, 5.56425829084, 14.22709400160], [0.304, 3.81556245925, 1190.92389187560], [0.237, 1.37222961867, 2277.29834324750], [0.239, 2.47752611026, 5430.39465709880], [0.234, 4.34929504798, 6675.70192909220], [0.239, 0.14012746335, 3742.28454845700], [0.286, 5.04045301355, 5607.61582920880], [0.305, 4.59739079660, 6685.10618875760], [0.254, 5.03693878366, 1905.46476494040], [0.323, 1.67390215145, 4922.57177498280], [0.232, 4.82565548677, 9070.11887384880], [0.236, 2.40662610715, 3620.39893105220], [0.260, 5.72282468723, 17468.85519794540], [0.259, 6.15179402778, 16706.58525184800], [0.263, 0.63922292958, 2008.55753915900], [0.300, 3.78527265088, 34363.36559755600], [0.226, 1.86970344963, 6418.14093002680], [0.239, 0.04616997400, 13362.38239649640], [0.241, 4.85896907298, 14158.74771361560], [0.225, 1.70179250908, 18451.07854656599], [0.288, 2.26316945288, 6621.85099148600], [0.231, 2.19861265305, 3936.79080070880], [0.251, 5.51232121883, 3416.87849797540], [0.245, 3.30613942274, 1197.97012857360], [0.253, 4.54308131689, 2285.16264977370], [0.225, 5.50822507089, 4936.79886898440], [0.249, 1.06089727346, 3313.21087060300], [0.309, 6.21936675838, 16304.91313009080], [0.244, 1.94855224181, 3.59042865180], [0.287, 5.70461951656, 792.77488846740], [0.254, 5.34446995416, 5401.43028077160], [0.263, 1.49663212332, 6364.83298374300], [0.223, 2.66825139116, 31968.94865279940], [0.222, 2.48370132727, 5355.23588148860], [0.220, 5.20799024654, 23017.06265793620], [0.215, 2.72743996418, 6740.59871531320], [0.218, 1.30797197521, 29822.78323632420], [0.270, 0.90714939427, 6155.05700665400], [0.216, 4.73975263349, 6679.74038069130], [0.211, 3.72756562629, 10042.61267559180], [0.211, 2.61999755641, 10124.93005431800], [0.293, 6.07059383381, 14061.72085502680], [0.219, 2.98472846458, 131.54196168640], [0.210, 5.27496906319, 13355.33615979840], [0.259, 1.25267305830, 2641.34127847220], [0.208, 3.30241021109, 6850.80503653260], [0.226, 5.48438086246, 7203.80227149340], [0.243, 2.44748800604, 3311.18291816379], [0.208, 1.13500579457, 5888.44996493220], [0.251, 4.67012983729, 6666.99775939800], [0.227, 1.59926413307, 10001.06188460700], [0.264, 3.72622435628, 6747.71226231400], [0.216, 0.34122804918, 6686.74777770700], [0.260, 3.67749190896, 6645.19698672220], [0.209, 4.31928920378, 3337.86091608880], [0.218, 4.08068730999, 3378.74546233760], [0.275, 1.64274205426, 2011.10033643980], [0.204, 0.73237459784, 3.93215326310], [0.219, 0.88584017263, 19513.98359510420], [0.205, 2.60851826933, 2771.79055267240], [0.215, 2.99299817517, 10824.20120254560], [0.249, 0.99914444136, 5753.38488489680], [0.225, 0.23309143434, 4782.87363546000], [0.275, 0.86215660461, 8749.15625447220], [0.201, 2.87118854159, 21548.96236929180], [0.246, 3.34468800742, 3333.92876282570], [0.203, 4.11410443276, 31570.79964939120], [0.202, 4.96805650734, 8166.15734309380], [0.232, 2.69372584349, 5989.06725217280], [0.214, 4.83852070026, 6681.64492949320], [0.258, 2.66551831451, 1062.90504853820], [0.197, 0.55202541352, 735.87651353180], [0.256, 2.76274941586, 2480.30249794700], [0.216, 4.02506717011, 3133.91168940320], [0.193, 1.52645682146, 949.17560896980], [0.209, 0.67348618655, 13892.14067189380], [0.220, 1.52502617699, 6660.86953400080], [0.223, 1.09348882524, 6148.01076995600], [0.192, 2.90571322264, 8799.98871377800], [0.243, 3.36420301442, 8965.97846825920], [0.206, 5.11175800472, 4140.43355186520], [0.189, 1.06641624209, 9374.82644678460], [0.240, 5.92078519032, 13362.51701710200], [0.248, 5.79997873732, 15806.14683944200], [0.193, 3.19008521814, 6756.00645196690], [0.237, 4.11979030463, 22487.37169284160], [0.218, 0.84212090761, 6717.25272007700], [0.200, 2.43100846630, 10018.24685144760], [0.199, 5.81238461796, 4289.78803566960], [0.214, 5.95026024979, 6680.80477730600], [0.192, 3.06285109033, 32765.24665961580], [0.229, 1.68884404323, 11614.43329373220], [0.185, 3.13072183492, 3253.30422216000], [0.246, 2.58151525126, 1795.25844372100], [0.187, 4.06797969837, 14577.18472611980], [0.185, 0.96747889626, 2604.73591316800], [0.184, 1.46731725339, 1437.17561419860], [0.186, 2.55094700069, 3188.71514561460], [0.211, 4.23522784526, 16703.07938715119], [0.196, 2.80582160764, 2796.69436760360], [0.198, 5.92372067560, 4133.38731516720], [0.238, 2.30957041178, 1879.55837475340], [0.224, 3.13550652378, 3613.28538405140], [0.223, 1.81801741599, 3184.21170619740], [0.199, 3.64983703995, 4271.97551355160], [0.181, 2.71721121316, 4186.69526145100], [0.184, 2.03051030984, 6674.17861670160], [0.182, 1.54431442810, 9947.05568153210], [0.179, 4.38762678121, 9886.77220006400], [0.181, 1.80044971979, 6717.83021870380], [0.190, 4.97714900529, 6670.58818804980], [0.247, 5.77972128678, 29424.63423291600], [0.194, 5.90745451439, 6705.10329114740], [0.224, 5.61893896091, 227.47613278900], [0.182, 2.77233344458, 6887.41040183680], [0.224, 1.94094757956, 8226.57883637840], [0.181, 4.61381081330, 3361.94806716680], [0.203, 5.24659800837, 7586.68155006440], [0.183, 5.23826533455, 6578.13207918100], [0.207, 0.88292186428, 10156.90236013480], [0.232, 0.75375986797, 3232.94890276120], [0.179, 5.89794151802, 4452.25467180180], [0.177, 6.16223629155, 3547.31316399640], [0.177, 0.19292898030, 401.67212175720], [0.173, 3.89814064100, 6019.99192661860], [0.172, 2.42933586666, 6944.30877677240], [0.201, 6.18392570315, 6947.83189512140], [0.183, 5.82189570737, 8962.43809625800], [0.189, 2.71231990816, 742.99006053260], [0.172, 3.86810071059, 10028.95082710020], [0.188, 5.22462530948, 2125.87740737920], [0.196, 1.88388569900, 5032.77809620220], [0.209, 5.78130707501, 3343.36393731080], [0.167, 6.26758992296, 15849.86575174700], [0.189, 2.38894304278, 3212.59358336240], [0.208, 5.62485439431, 31172.65064598300], [0.170, 1.07346401060, 20426.57109242200], [0.183, 5.21160560654, 27832.03821928320], [0.181, 2.19756653553, 16703.04487984680], [0.214, 1.66101921272, 21265.52312652020], [0.165, 2.10517924574, 6688.27109009760], [0.172, 0.85495655009, 14591.41182012140], [0.164, 1.68898542913, 3468.63127003720], [0.183, 1.56948199057, 8962.47260356240], [0.191, 5.54553650068, 2806.98930834210], [0.162, 4.06699160265, 5209.47182633600], [0.165, 3.44003333876, 14421.83163698840], [0.163, 2.42152585351, 6314.00052443720], [0.189, 0.57681608522, 2973.38809773740], [0.169, 2.86190807726, 5490.30096152400], [0.174, 1.69333072403, 1744.49329471800], [0.224, 2.35886332922, 9638.94074787620], [0.207, 3.13737248079, 3336.68027343670], [0.221, 3.14807587279, 11610.91017538320], [0.158, 5.87599422932, 4606.17990532620], [0.166, 4.61834424167, 9175.75444534820], [0.162, 5.40045489036, 23.87843774780], [0.158, 5.57047764661, 4503.08713110760], [0.156, 3.08339691033, 3448.27595063840], [0.202, 2.56469307457, 7321.12213971360], [0.164, 1.10347159072, 3710.31224264020], [0.158, 3.65995745934, 6997.61672305620], [0.169, 1.85985317117, 1329.51209026000], [0.211, 1.66624816725, 3304.00706139560], [0.206, 1.81572746145, 1596.11913198180], [0.169, 0.46310427277, 17101.21113690720], [0.159, 5.73384451559, 1265.56747862640], [0.159, 0.92643196778, 4001.84535348080], [0.189, 2.74163850920, 2910.49111747480], [0.181, 5.48699984659, 3319.27678623280], [0.156, 5.95462118470, 8584.66166590080], [0.158, 3.38732507447, 8742.04270747140], [0.171, 3.11406750626, 5621.91023351320], [0.199, 2.86370198218, 10025.42770875120], [0.173, 4.73384838991, 9389.05354078620], [0.160, 3.06861532268, 1612.95133303160], [0.203, 1.71629299113, 699.27114822760], [0.198, 0.56267868345, 15265.88651930040], [0.186, 2.44573687199, 2814.85361486830], [0.167, 0.44417942260, 37895.42629036740], [0.152, 5.08616610530, 3322.79990458180], [0.162, 2.58982908935, 1883.08149310240], [0.178, 4.58774508034, 6685.15700666270], [0.191, 4.12771141768, 9911.63095888000], [0.185, 4.32284898739, 323.50541665740], [0.199, 1.83524172935, 3436.59165391760], [0.199, 6.00292619279, 4427.39591298580], [0.153, 3.46447669590, 22324.90505670940], [0.171, 3.52256446633, 5621.77561290760], [0.165, 3.32970937124, 1272.68102562720], [0.149, 0.13370088791, 36.02786667740], [0.149, 1.23280447264, 4193.80880845180], [0.156, 0.13018524921, 11925.27409260060], [0.146, 1.24102730441, 3372.58473251660], [0.154, 5.63537863362, 3185.25933756840], [0.197, 3.23364188440, 3774.32416457660], [0.180, 3.47485722477, 8564.30634650200], [0.185, 2.18248214016, 802.36392244620], [0.145, 2.62035460481, 3368.01398279660], [0.180, 6.01236697222, 6691.86151874940], [0.148, 2.51710178830, 3262.86188271590], [0.151, 4.17118896078, 16894.51039961060], [0.185, 3.03939668350, 3354.83952070140], [0.143, 3.37267915445, 3468.56395973440], [0.160, 2.16705959730, 0.98032106820], [0.190, 1.63240538938, 2324.94940881560], [0.140, 1.27592043896, 6549.68289171320], [0.186, 1.44849264278, 1015.66301788420], [0.141, 4.19208049402, 5813.29118932200], [0.153, 5.97405255778, 3568.08855948880], [0.136, 0.45455359025, 3193.80074017620], [0.188, 0.98977442882, 2538.24850425360], [0.157, 3.32117477144, 3181.66890891660], [0.164, 1.67705754742, 2751.54759969160], [0.134, 5.26327877742, 13212.88650966460], [0.184, 0.73082474043, 369.69981594040], [0.145, 5.54086212771, 3152.68727893721], [0.139, 3.30464120245, 6151.51663465280], [0.132, 0.96753793729, 3487.42411322340], [0.148, 1.55321724063, 7696.88787128380], [0.140, 5.39000757800, 2945.98654164060], [0.155, 4.35207037526, 4005.36847182980], [0.142, 5.13441372991, 1641.33321019660], [0.131, 2.48606821423, 1353.39052800780], [0.131, 2.18754536881, 1765.76662541760], [0.133, 3.01300582040, 3283.71405176420], [0.177, 2.37558492362, 11346.77862063940], [0.145, 0.79525636457, 2281.24775016280], [0.133, 5.96263652624, 34513.26307268280], [0.165, 1.32559153826, 6510.55198278040], [0.132, 4.31118469609, 1971.95217385480], [0.176, 3.17539133688, 6701.58017279840], [0.140, 1.18723558164, 1461.05405194640], [0.128, 6.07261046225, 3362.46325602620], [0.139, 5.33541181199, 6151.55114195720], [0.143, 1.04060603784, 3351.65812696370], [0.138, 1.96009952022, 2014.62345478880], [0.127, 2.12310260285, 2917.53735417280], [0.142, 0.29094317859, 3212.66089366520], [0.128, 0.49974456440, 10264.56588407340], [0.125, 1.62548810323, 10191.41746323240], [0.128, 3.55358985291, 3223.29255847960], [0.140, 5.87379732521, 6382.09845913040], [0.129, 2.90428606882, 6812.76681508600], [0.127, 4.03101399507, 10448.43547097540], [0.128, 3.23265469000, 4576.68808702280], [0.124, 2.02283056331, 6724.94376570460], [0.134, 0.19295362623, 3130.83644961080], [0.145, 5.04767049759, 2281.21324285840], [0.143, 4.45744983982, 7100.70949727480], [0.133, 5.00404182123, 11883.58313273480], [0.124, 0.73925895836, 1485.98012106520], [0.123, 0.47283015475, 3347.29609057390], [0.137, 5.73370922615, 5244.04923920100], [0.152, 5.01464455460, 3358.42494881780], [0.122, 1.37003015612, 3370.04193523580], [0.143, 1.95740753086, 2921.68802779920], [0.123, 3.94139290312, 4957.08687808040], [0.130, 0.90844304292, 3427.92063123960], [0.135, 3.56996218538, 3229.42578441220], [0.143, 5.30225767870, 14128.24277124560], [0.134, 2.47836558803, 7167.19690618920], [0.150, 5.89116199733, 966.97087743560], [0.123, 3.58787674774, 3318.76159737340], [0.153, 0.37199746202, 6533.14612897330], [0.145, 1.73326841661, 6637.50594109460], [0.133, 3.27553306809, 11876.46958573400], [0.119, 5.15087396729, 15636.56665630900], [0.117, 3.70999224131, 3343.15522398060], [0.115, 5.99541570797, 11986.67590695340], [0.152, 5.66662339960, 6530.17718355670], [0.123, 0.05231448642, 9801.42463766060], [0.130, 1.42377926040, 16063.16484718500], [0.120, 4.19579234337, 604.84974070480], [0.126, 1.38788085609, 169.58018313300], [0.122, 0.18785107006, 18849.22754997420], [0.113, 4.67731144918, 24491.42579258340], [0.122, 1.21803689218, 3067.93946934820], [0.118, 3.92389195187, 2963.23881878400], [0.137, 0.80076862963, 3123.79021291280], [0.124, 0.77274469912, 12465.53441274220], [0.132, 4.73888023892, 2267.00340250900], [0.122, 3.66231014052, 8756.26980147300], [0.113, 3.74955221887, 21393.54196985760], [0.153, 5.00596002145, 15906.76412668260], [0.109, 1.46394078440, 2854.64037391020], [0.125, 6.00744459186, 1442.26120876020], [0.140, 0.64532646558, 13532.02988993220], [0.108, 2.11691804278, 43.71891230500], [0.130, 1.43185911960, 3370.10424500320], [0.133, 2.31239626151, 9072.66167112960], [0.107, 5.68864833782, 4878.85286267780], [0.116, 3.91262234002, 11904.91877320180], [0.106, 1.99989592271, 3497.01314720220], [0.106, 5.79020088316, 1.48447270830], [0.105, 1.79751699456, 3517.30615683360], [0.130, 0.80396347034, 3397.51080163540], [0.107, 5.29449090921, 10.63666534980], [0.137, 0.47037516401, 13575.74880223720], [0.104, 5.03145022037, 1751.52227776380], [0.146, 2.57659804831, 3308.64012088300], [0.103, 3.29589452622, 4379.63903749020], [0.104, 0.77903634693, 1751.55678506820], [0.118, 4.11892224522, 10927.29397676420], [0.106, 2.25714927822, 13207.02930736500], [0.126, 1.10289326962, 6680.79497027290], [0.105, 1.41449747957, 10081.21114201300], [0.110, 6.16072219971, 3338.06962941900], [0.113, 0.61947991056, 13421.82356871280], [0.139, 2.21345603147, 1954.71715036360], [0.102, 3.81767069895, 6670.17915313570], [0.101, 3.44583422545, 1505.28780909299], [0.105, 2.46134952447, 5525.86369599260], [0.119, 5.64454862995, 8425.71814811760], [0.101, 1.87446179141, 9161.52735134660], [0.111, 5.46183253107, 7214.43893684320], [0.123, 0.14056284625, 16489.76303806100], [0.128, 0.00452525697, 2185.25126929280], [0.106, 6.20225179330, 3717.98603461560], [0.099, 1.70554147455, 1655.56030419820], [0.100, 1.76373681853, 3002.36972771680], [0.101, 0.55693458655, 3337.15661865360], [0.101, 0.56441794685, 30774.50164257480], [0.098, 1.93983799659, 5562.46906129680], [0.130, 5.65255471249, 2735.76268599500], [0.125, 6.18575288406, 9698.33186344200], [0.100, 2.35767934317, 3337.07205469860], [0.100, 3.76317527562, 3344.15279870100], [0.105, 5.33897491215, 5096.08411137890], [0.103, 1.24189801298, 1385.89527633620], [0.101, 1.42727612221, 37455.72649597440], [0.096, 2.55328478399, 4466.48176580340], [0.097, 5.86779127410, 5220.17080145320], [0.101, 2.61513508379, 16858.41522263039], [0.107, 4.23943588615, 8823.86715152580], [0.100, 4.38845221965, 3337.10656200300], [0.100, 1.73240240188, 3344.11829139661], [0.101, 3.51764169063, 4694.00295470760], [0.096, 3.16895015703, 12825.64519470380], [0.101, 6.24060604565, 2942.53073359440], [0.103, 1.09500325425, 12089.76868117200], [0.106, 5.57931664756, 39048.32250960720], [0.126, 3.40521738550, 6681.65473652630], [0.105, 2.52404371984, 1755.06264976500], [0.115, 6.10031030713, 3145.64104223920], [0.092, 5.06385191401, 5085.10572141780], [0.097, 1.11670836674, 3341.79306935190], [0.092, 5.83209800268, 6682.70932610790], [0.121, 2.39411154886, 18208.34994259200], [0.110, 2.51677822824, 1045.15483618760], [0.091, 1.07173725022, 927.83996850280], [0.096, 3.60155667418, 13363.43002786740], [0.097, 5.34224904711, 7636.46637799920], [0.094, 1.20811080231, 9495.66943335380], [0.090, 4.17568982529, 0.06731030280], [0.097, 3.20862890174, 5298.33750655300], [0.092, 3.20029831258, 4403.51747523800], [0.090, 3.79900428724, 685.04405422600], [0.101, 2.12778329280, 10050.28646756720], [0.098, 3.89390262307, 2373.64154926420], [0.090, 4.49046504054, 6453.74872061060], [0.096, 5.13129666936, 7792.86709850160], [0.089, 4.51228904794, 10037.08975128440], [0.098, 0.65689906709, 2810.98877190800], [0.114, 4.15908543927, 9090.47419324760], [0.094, 4.78960145866, 35707.71008290740], [0.087, 6.26525215858, 34554.81386366760], [0.087, 1.50181194995, 9983.70424446160], [0.087, 1.43790822626, 9488.62319665580], [0.090, 2.79573736864, 47477.56377607380], [0.094, 5.68919291448, 6106.88005506480], [0.087, 0.74049208991, 41990.78593289880], [0.101, 0.99308133443, 6614.73744448520], [0.115, 3.49732055752, 4.50343941720], [0.086, 0.18628425275, 216.82221378700], [0.099, 1.06539589813, 2810.85415130240], [0.087, 3.02856210899, 7218.02936549500], [0.085, 4.58476007089, 1699.27921650320], [0.088, 4.47996444588, 21957.68072774700], [0.106, 6.12011880730, 4819.47900076420], [0.089, 3.88600719587, 12199.97500239140], [0.097, 2.70091698598, 3339.43178404770], [0.118, 1.02739527200, 34115.11406927460], [0.101, 0.36591831115, 2942.39611298880], [0.084, 5.66081869654, 1169.58825140860], [0.086, 1.91214909013, 55516.41870984820], [0.084, 4.30909434949, 4150.08989614680], [0.094, 1.36645151323, 9093.99731159660], [0.097, 2.26544245706, 13361.46938573100], [0.099, 1.16054562056, 128.01884333740], [0.094, 1.10573952457, 4591.44262300060], [0.092, 0.74386387542, 4845.90023579280], [0.101, 1.51570299040, 7807.09419250320], [0.096, 1.02187746571, 2899.78714182220], [0.086, 0.66787658068, 2957.73314812880], [0.087, 3.49676189640, 4061.75165790600], [0.095, 3.35452781355, 661.23292678100], [0.087, 0.04840436087, 23546.75362303080], [0.114, 2.83270741566, 394.62588505920], [0.081, 3.44420073782, 148.07872442630], [0.081, 1.27062968985, 4893.07995667940], [0.083, 5.48462687348, 4349.16189758320], [0.105, 3.47842036130, 3413.90955255880], [0.084, 4.33209852801, 51449.32426327820], [0.093, 1.59775582035, 5088.21980485270], [0.088, 3.29950478012, 2655.50106217100], [0.081, 1.65543714666, 78263.70942472259], [0.086, 1.19342535692, 4029.24690957760], [0.079, 4.41964678009, 151.04766984290], [0.084, 1.96289182788, 14867.73751589219], [0.091, 5.76229906142, 2544.33167353560], [0.086, 3.78659802914, 1481.40937134520], [0.082, 2.85633413428, 14164.81362924540], [0.078, 4.29426812598, 187.92514776260], [0.078, 5.38566529072, 2655.56837247380], [0.084, 2.15121245434, 3311.12060839640], [0.078, 2.01651247942, 9124.92198604240], [0.083, 4.28280129037, 74923.09699802278], [0.077, 1.45903147715, 2544.38173018620], [0.081, 3.62204400197, 12306.59089495900], [0.100, 1.33498371324, 9278.84721956680], [0.089, 2.62080312892, 24341.52831745660], [0.098, 3.78877505378, 3198.43379966360], [0.081, 4.34306418828, 10177.19036923080], [0.080, 5.80054348103, 2751.01515718000], [0.092, 2.80228448795, 3707.83675566220], [0.082, 2.45812896240, 9815.65173166220], [0.076, 3.03616461584, 9993.38809263160], [0.076, 3.92674885488, 2910.08208256070], [0.076, 3.20004040720, 7733.49323658800], [0.098, 3.28574616663, 3289.33208883739], [0.077, 2.05948930010, 12928.73796892240], [0.075, 0.85784191736, 28638.90558114660], [0.078, 0.29690749181, 10654.62101941260], [0.101, 0.72388999452, 48827.43118573260], [0.085, 5.19438010130, 2146.14816282300], [0.083, 4.42475849926, 2060.81785407180], [0.075, 5.19097428778, 1055.44977692610], [0.096, 6.24132708357, 11.04570026390], [0.074, 3.37882325472, 8006.16619393960], [0.101, 0.95332927487, 8186.51266249260], [0.092, 0.96173005100, 151.89728108520], [0.074, 2.22716630210, 272.67295735160], [0.092, 5.56705883046, 27873.58901026800], [0.091, 3.73152787182, 2544.29716623120], [0.084, 0.41493230617, 4296.90158267040], [0.074, 5.09669613096, 9755.23023837760], [0.078, 1.79565224435, 3564.95722240170], [0.075, 4.58345774133, 9153.90361602180], [0.074, 3.88658218247, 25298.29315444680], [0.085, 5.31472029744, 4716.38622654560], [0.074, 1.46907693289, 11527.12508919240], [0.101, 2.94847804254, 12032.93761653920], [0.072, 0.24413748615, 1324.94134054000], [0.078, 0.17721609024, 3391.89276456221], [0.073, 1.65072742864, 5452.26274007740], [0.073, 4.91730083470, 10787.63034454580], [0.073, 3.28285909319, 8830.91338822380], [0.081, 5.46340742050, 3856.07629779280], [0.073, 4.61913155968, 3288.35211178700], [0.096, 5.71767221046, 206.70073729660], [0.080, 4.47918417138, 12299.54465826100], [0.071, 4.98130328330, 12942.96506292400], [0.073, 2.86057567032, 4960.60999642940], [0.072, 5.14120362338, 4665.55376723980], [0.076, 0.00928867041, 6534.41316687600], [0.090, 5.38224594245, 2125.81009707640], [0.085, 0.94196641948, 2146.18267012740], [0.096, 0.68069708134, 10006.58480891440], [0.073, 1.06048379839, 3866.78027344540], [0.072, 0.84342376295, 3334.54651107000], [0.091, 5.12701600437, 3392.87274161260], [0.076, 5.96038992872, 3482.79105373600], [0.090, 1.46230169383, 5092.16921176800], [0.071, 1.16745785331, 1574.84580128220], [0.072, 3.86137692169, 16762.43599541260], [0.070, 0.07310763691, 12839.87228870540], [0.073, 0.11725123446, 10507.80933288900], [0.081, 5.86817748181, 3495.96551583120], [0.071, 2.07963275673, 1063.31408345230], [0.068, 3.30993028662, 4106.40549114620], [0.069, 0.33467954461, 5.52292430740], [0.068, 1.56404561711, 2398.55036473080], [0.090, 2.61953849393, 3346.67834232960], [0.068, 1.06108185791, 191.38095580880], [0.077, 0.87794040199, 2917.94638908690], [0.067, 0.29712068423, 12012.58229714040], [0.067, 2.55451787747, 11567.19126307820], [0.083, 1.82578570364, 3511.28529731900], [0.068, 2.68247854175, 20213.25474333179], [0.086, 2.79273636804, 367.22432896240], [0.086, 0.81171860574, 209.77597708900], [0.067, 5.28035928877, 8966.38750317330], [0.067, 0.20258020424, 27433.88921587499], [0.071, 2.76410148218, 15650.79375031060], [0.090, 0.71593793107, 3451.79906898740], [0.067, 6.18148420146, 3966.28261901220], [0.074, 3.61959120765, 7064.10413197060], [0.068, 2.69550405031, 12725.45343477500], [0.074, 1.24854309783, 8027.56914470940], [0.084, 2.47006028699, 3738.74417645580], [0.077, 5.89874180572, 4307.58330413540], [0.067, 0.33285041428, 19645.52555679060], [0.083, 3.79134493696, 2472.67876262220], [0.064, 0.43216125634, 1994.26813539000], [0.071, 0.65707804543, 860.30992875280], [0.064, 0.98960038205, 3376.17516116840], [0.070, 0.96227192685, 8428.83223155250], [0.066, 0.65425879867, 8219.46528937760], [0.070, 4.36060455306, 8436.69653807870], [0.084, 4.50083253887, 3738.77868376020], [0.073, 5.69670871544, 14687.39104733920], [0.071, 0.36334330253, 2619.47319549360], [0.080, 5.85771861744, 7747.72033058960], [0.068, 3.06409889136, 8446.99147881720], [0.066, 1.07137364271, 1987.22189869200], [0.061, 3.71171429905, 1055.85881184020], [0.079, 0.06487001849, 6286.59896834040], [0.075, 1.54177744365, 1059.39918384140], [0.061, 1.47350010728, 1685.05212250160], [0.061, 0.46897959303, 1727.66109366820], [0.064, 2.11869877898, 3305.04969223120], [0.060, 1.17940250396, 97670.38771289718], [0.060, 5.13953821352, 1898.33396428740], [0.064, 4.04058406722, 3945.46216740460], [0.063, 5.20562384814, 24606.13555322000], [0.061, 0.55428968913, 7082.89697515680], [0.075, 4.81208819076, 27299.24421193320], [0.059, 1.75511446129, 12082.65513417120], [0.061, 5.88333855610, 6901.63749583840], [0.074, 3.46408580786, 14556.89671702380], [0.074, 4.40649822049, 9360.60435331840], [0.058, 4.22827613192, 4531.53631857540], [0.080, 2.14103357856, 7917.30051372260], [0.075, 1.85618011420, 52566.19261584059], [0.075, 5.15830659680, 45884.96776244100], [0.068, 2.06915254754, 8958.52319664710], [0.056, 3.77847713307, 299.12639426920], [0.062, 2.25564130818, 9758.75335672660], [0.059, 2.68657637673, 6283.05859633920], [0.056, 5.54148283448, 13286.18363552360], [0.056, 3.89200811600, 8962.38803960740], [0.063, 2.07254352069, 7593.79509706520], [0.061, 4.31994402891, 4709.27267954480], [0.075, 5.79419108898, 1059.36467653700], [0.056, 0.18569912415, 7768.00833968560], [0.059, 5.49627068572, 7322.10246078180], [0.064, 3.95992112220, 3050.12694723020], [0.055, 2.19506741266, 7.04623669800], [0.057, 4.05252695300, 3930.20969621960], [0.075, 3.99788100837, 5483.25472482600], [0.060, 4.61703903739, 6990.50317605540], [0.073, 4.20362525534, 21150.81336588360], [0.066, 2.82009591985, 8771.00708379860], [0.054, 0.38782719267, 360.11078196160], [0.059, 4.71734799803, 6283.09310364360], [0.068, 5.74655335863, 987.74627292800], ], # R1 [ [1107433.340, 2.03250524950, 3340.61242669980], [103175.886, 2.37071845682, 6681.22485339960], [12877.200, 0.00000000000, 0.00000000000], [10815.880, 2.70888093803, 10021.83728009940], [1194.550, 3.04702182503, 13362.44970679920], [438.579, 2.88835072628, 2281.23049651060], [395.698, 3.42324611291, 3344.13554504880], [182.572, 1.58428644001, 2544.31441988340], [135.850, 3.38507017993, 16703.06213349900], [128.204, 0.62991220570, 1059.38193018920], [127.068, 1.95389775740, 796.29800681640], [118.443, 2.99761345074, 2146.16541647520], [128.362, 6.04343360441, 3337.08930835080], [87.537, 3.42052758979, 398.14900340820], [83.026, 3.85574986653, 3738.76143010800], [75.598, 4.45101839349, 6151.53388830500], [71.999, 2.76442180680, 529.69096509460], [66.542, 2.54892602695, 1751.53953141600], [54.314, 0.67750943459, 8962.45534991020], [51.035, 3.72585409207, 6684.74797174860], [66.430, 4.40597549957, 1748.01641306700], [47.863, 2.28527896843, 2914.01423582380], [49.428, 5.72959428364, 3340.59517304760], [49.424, 1.47717922226, 3340.62968035200], [57.518, 0.54354327916, 1194.44701022460], [48.318, 2.58061691301, 3149.16416058820], [36.384, 6.02728752344, 3185.19202726560], [37.176, 5.81439911546, 1349.86740965880], [36.036, 5.89508336048, 3333.49887969900], [31.115, 0.97832506960, 191.44826611160], [38.953, 2.31900090554, 4136.91043351620], [27.244, 5.41367977087, 1592.59601363280], [24.300, 3.75843924498, 155.42039943420], [22.804, 1.74830773908, 5088.62883976680], [22.324, 0.93932040730, 951.71840625060], [21.708, 3.83571581352, 6283.07584999140], [21.304, 0.78049229782, 1589.07289528380], [21.631, 4.56895741061, 3532.06069281140], [17.956, 4.21930481803, 3870.30339179440], [18.237, 0.41328624131, 5486.77784317500], [16.251, 3.80760134974, 3340.54511639700], [16.803, 5.54857987615, 3097.88382272579], [16.850, 4.53690440252, 4292.33083295040], [15.755, 4.75736730681, 9492.14631500480], [15.746, 3.72356090283, 20043.67456019880], [20.428, 3.13540712557, 4690.47983635860], [14.699, 5.95325006816, 3894.18182954220], [16.251, 3.39910907599, 3340.67973700260], [14.259, 3.99897353022, 1990.74501704100], [16.528, 0.96752074938, 4399.99435688900], [13.010, 5.14230107067, 6677.70173505060], [12.492, 1.03211063742, 3341.59274776800], [16.463, 3.53882915214, 2700.71514038580], [16.171, 2.34870953554, 553.56940284240], [13.169, 0.41461716663, 5614.72937620960], [11.272, 1.02375627844, 12303.06777661000], [12.408, 6.23142869816, 5628.95647021120], [12.747, 0.69046314049, 3723.50895892300], [11.827, 6.25283898676, 2274.11694950980], [10.384, 1.23257236014, 426.59819087600], [11.208, 1.31750963435, 3496.03282613400], [10.345, 0.90062464690, 4535.05943692440], [12.215, 4.22316056098, 7079.37385680780], [9.765, 3.45310940204, 382.89653222320], [8.586, 1.16471901139, 2787.04302385740], [7.879, 5.73808861790, 2288.34404351140], [9.195, 1.81689739851, 6681.24210705180], [7.751, 4.15046998466, 6041.32756708560], [9.195, 6.06945250657, 6681.20759974740], [9.026, 2.58210941053, 2388.89402044920], [6.771, 0.23987737854, 11773.37681151540], [7.087, 3.51414944377, 8031.09226305840], [9.159, 3.90158590550, 3553.91152213780], [6.702, 4.25572879119, 242.72860397400], [7.232, 3.70287400141, 2818.03500860600], [6.546, 0.04353472459, 2957.71589447660], [8.781, 2.19735028572, 1221.84856632140], [6.540, 2.11834687923, 8429.24126646660], [6.836, 4.04512263654, 10025.36039844840], [7.280, 4.26943100715, 2803.80791460440], [7.676, 1.00782250264, 8432.76438481560], [5.732, 3.13956241764, 213.29909543800], [5.344, 3.78220670098, 5092.15195811580], [5.991, 2.96408254428, 6489.77658728800], [5.132, 3.98288453952, 7.11354700080], [6.261, 1.90346469972, 5621.84292321040], [5.241, 2.67093795050, 7477.52286021600], [6.261, 1.60056695152, 3347.72597370060], [6.526, 2.76281601349, 3339.63210563160], [4.591, 1.81986278078, 2810.92146160520], [5.460, 4.60874445963, 3583.34103067380], [4.733, 0.90560026340, 5099.26550511660], [5.486, 4.91408093456, 7632.94325965020], [4.004, 4.14067157211, 9623.68827669120], [3.837, 0.03343295627, 7234.79425624200], [3.621, 5.76532393672, 4933.20844033260], [3.747, 0.08778985966, 6525.80445396540], [3.016, 3.73838855125, 6681.29216370240], [3.975, 4.91288592965, 2942.46342329160], [3.911, 0.67451768877, 3127.31333126180], [3.923, 3.07703531632, 3.52311834900], [3.944, 0.53974754515, 5884.92684658320], [2.901, 4.66281989264, 7210.91581849420], [2.803, 1.00530177454, 7064.12138562280], [3.153, 4.54673175664, 2487.41604494780], [2.784, 0.05495331967, 639.89728631400], [2.759, 5.17099857257, 5828.02847164760], [3.017, 4.14668877243, 6681.15754309680], [2.999, 0.82918667275, 5085.03841111500], [2.677, 0.69427974692, 2699.73481931760], [3.023, 2.59489020298, 2906.90068882300], [2.596, 1.08693013783, 4929.68532198360], [3.126, 1.00027692782, 2118.76386037840], [2.598, 5.01195749912, 10018.31416175040], [2.606, 5.34420770679, 10973.55568635000], [2.779, 3.98358744953, 6467.92575796160], [2.460, 1.52653571249, 6836.64525283380], [2.382, 3.93610586965, 11371.70468975820], [2.590, 5.08892664109, 12832.75874170460], [2.201, 0.18880589605, 9595.23908922340], [2.128, 5.69450469171, 3191.04922956520], [2.065, 3.54133174600, 1066.49547719000], [1.868, 5.01592531810, 3475.67750673520], [2.081, 1.30274459220, 7740.60678358880], [1.830, 5.68365327697, 3319.83703120740], [2.022, 6.16092328060, 1744.42598441520], [1.708, 2.21675931288, 2921.12778282460], [1.836, 6.16477009621, 8425.65083781480], [2.060, 6.24041853265, 6674.11130639880], [1.735, 4.58243571826, 10419.98628350760], [1.852, 1.36883022935, 15643.68020330980], [1.689, 1.92829590736, 3767.21061757580], [1.954, 0.46215988899, 10575.40668294180], [1.800, 2.30913343660, 3355.86489788480], [1.444, 2.15042616899, 10021.85453375160], [1.760, 5.87267582299, 3320.25710730100], [1.845, 4.06123235448, 23384.28698689860], [1.423, 4.65085713203, 4562.46099302120], [1.410, 1.50438410845, 3325.35995551480], [1.444, 0.11969993808, 10021.82002644720], [1.443, 0.55828572929, 15113.98923821520], [1.334, 1.25483731308, 7875.67186362420], [1.442, 1.38958943728, 6682.20517446780], [1.606, 4.34241260905, 5331.35744374080], [1.377, 0.14791683820, 1758.65307841680], [1.282, 5.78533014319, 14584.29827312060], [1.281, 1.35125896423, 10404.73381232260], [1.471, 0.34649469321, 8969.56889691100], [1.245, 6.02681709446, 3264.34635542420], [1.234, 1.88341938354, 10177.25767953360], [1.552, 5.92727420332, 8439.87793181640], [1.182, 4.18100226016, 3360.96774609859], [1.333, 1.86551437099, 692.15760122680], [1.189, 0.89892514263, 13916.01910964160], [1.192, 4.30473818946, 6894.52394883760], [1.145, 0.15197504252, 3134.42687826260], [1.299, 1.44631688592, 6254.62666252360], [1.494, 1.54417907271, 3361.38782219220], [1.054, 0.67591855339, 3344.20285535160], [1.210, 0.85117132607, 3120.19978426100], [1.061, 0.13258232364, 522.57741809380], [1.003, 1.28021784912, 4569.57454002200], [1.012, 5.77497169905, 14314.16811304980], [1.169, 2.99767730172, 6247.51311552280], [1.062, 0.25467691252, 3337.02199804800], [1.032, 5.69833683620, 536.80451209540], [1.082, 2.58016159997, 6261.74020952440], [0.867, 1.50283829131, 6127.65545055720], [0.953, 2.92377030638, 5729.50644714900], [0.887, 5.28743574972, 10213.28554621100], [1.108, 2.84339171890, 640.87760738220], [0.861, 3.21491381593, 3914.95722503460], [1.069, 0.49400181869, 11243.68584642080], [0.800, 4.64154002129, 6144.42034130420], [0.799, 3.33215212691, 9830.38901398780], [1.046, 4.05907877700, 6158.64743530580], [0.743, 4.93337997290, 3230.40610548040], [0.740, 3.01511102229, 10818.13528691580], [0.716, 2.52567242762, 5202.35827933520], [0.705, 4.39344403231, 9808.53818466140], [0.786, 1.72357089999, 3178.14579056760], [0.719, 0.38924465445, 6298.32832117640], [0.717, 6.23927283856, 3369.06161416760], [0.704, 1.96763488855, 6688.33840040040], [0.882, 2.10339285493, 2301.58581590939], [0.913, 2.30662326829, 13517.87010623340], [0.914, 4.36610748804, 13365.97282514820], [0.659, 3.40905557071, 1648.44675719740], [0.828, 2.13305589137, 7903.07341972100], [0.652, 5.97050449428, 574.34479833480], [0.688, 4.02232587894, 1052.26838318840], [0.709, 2.24658423912, 9225.53927328300], [0.590, 0.67418318613, 8955.34180290940], [0.604, 2.73550395152, 16858.48253293320], [0.785, 3.58704322751, 2693.60159338500], [0.570, 4.11146135269, 6034.21402008480], [0.624, 4.45415856101, 12964.30070339100], [0.563, 3.72383942144, 13119.72110282519], [0.547, 3.04142188931, 2707.82868738660], [0.536, 4.65546776421, 135.06508003540], [0.680, 3.62640859214, 6048.44111408640], [0.535, 3.32503801413, 9779.10867612540], [0.615, 0.31792697641, 7910.18696672180], [0.506, 1.24339056369, 4555.34744602040], [0.633, 1.32124830132, 2648.45482547300], [0.671, 2.88173567087, 3316.73398895200], [0.570, 4.94522781693, 6923.95345737360], [0.489, 0.48479532469, 12935.85151592320], [0.490, 1.57712746955, 162.46663613220], [0.492, 4.08592823251, 10021.90459040220], [0.468, 4.50628939729, 2384.32327072920], [0.462, 1.30653882308, 17256.63153634140], [0.444, 5.20556841675, 13358.92658845020], [0.511, 5.29436707935, 853.19638175200], [0.458, 5.52316111365, 6438.49624942560], [0.443, 4.37626774329, 12168.00269657460], [0.429, 4.06329082027, 149.56319713460], [0.502, 6.12188881856, 8273.82086703240], [0.420, 3.51990468754, 9168.64089834740], [0.452, 0.15931716927, 7895.95987272020], [0.401, 0.93276882765, 433.71173787680], [0.491, 4.49372643902, 10021.76996979660], [0.390, 1.26790524143, 5459.37628707820], [0.460, 3.56765356005, 1596.18644228460], [0.514, 4.14617297678, 16460.33352952499], [0.510, 2.12338136542, 3335.08950239240], [0.365, 0.84035244694, 3364.49086444760], [0.444, 0.42154996651, 9866.41688066520], [0.380, 2.74315160117, 3344.49376205780], [0.355, 2.20831807719, 5518.75014899180], [0.374, 0.93920520997, 3863.18984479360], [0.380, 0.60825828556, 3980.50971301380], [0.366, 1.45297694305, 1039.02661079040], [0.458, 5.01867719021, 10551.52824519400], [0.352, 5.59661824792, 16062.18452611680], [0.361, 5.43698827477, 11236.57229942000], [0.323, 3.25474887566, 3116.26763099790], [0.396, 5.43635200834, 16173.37116840440], [0.316, 5.10862851689, 17395.21973472580], [0.325, 4.59103320065, 19800.94595622480], [0.320, 0.10022132590, 1692.16566950240], [0.313, 4.76509182263, 3304.58456002240], [0.329, 3.51515201342, 1903.43681250120], [0.361, 1.40179572820, 8270.29774868340], [0.380, 1.11278812152, 3503.07906283200], [0.309, 1.63585786252, 11081.21921028860], [0.304, 6.27804875103, 2391.43681773000], [0.336, 2.95777936427, 6680.24453233140], [0.299, 0.48751113813, 3347.65866339780], [0.327, 3.19951479738, 3981.49003408200], [0.298, 4.26967988388, 13936.79450513400], [0.309, 5.05775078180, 12721.57209941700], [0.310, 6.10243075443, 17924.91069982040], [0.290, 4.52880846817, 5724.93569742900], [0.279, 4.30091602167, 3607.21946842160], [0.293, 1.90646493379, 6702.00024889200], [0.375, 5.37146136739, 3376.64029337720], [0.268, 4.93796347898, 13760.59871020740], [0.269, 5.63342755549, 4032.77002792660], [0.361, 4.70448724123, 9380.95967271720], [0.285, 4.37639190605, 6040.34724601740], [0.305, 3.60878132297, 7255.56965173440], [0.265, 5.82002998533, 1214.73501932060], [0.246, 3.48844723382, 3237.51965248120], [0.339, 6.05128485092, 6660.44945790720], [0.325, 5.12798981834, 11250.79939342160], [0.243, 0.48346700024, 13362.43245314700], [0.246, 4.41923388458, 3546.79797513700], [0.239, 3.73073204843, 76.26607127560], [0.239, 6.27709788173, 1964.83862685400], [0.242, 2.51411096474, 13362.46696045140], [0.238, 4.61745673345, 17277.40693183380], [0.232, 3.13987850882, 20199.09495963300], [0.245, 3.88310965561, 4407.10790388980], [0.242, 3.07232693388, 12566.15169998280], [0.277, 3.88618268628, 10596.18207843420], [0.277, 6.14459469980, 19402.79695281660], [0.222, 2.20253799065, 7107.82304427560], [0.218, 1.37621606096, 3415.39402526710], [0.297, 3.78408680173, 2766.26762836500], [0.264, 5.35345322905, 6816.28993343500], [0.213, 1.10915354432, 19004.64794940840], [0.213, 4.60032427636, 3973.39616601300], [0.230, 4.39356021431, 26724.89941359840], [0.202, 0.60981942427, 6677.63442474780], [0.268, 5.05058237041, 9381.93999378540], [0.199, 1.34402137469, 8329.67161059700], [0.198, 5.08527311506, 5820.91492464680], [0.201, 0.05002970566, 11780.49035851620], [0.199, 2.66187512344, 6696.47732458460], [0.227, 1.69939961119, 18984.29263000960], [0.217, 4.71565260831, 8671.96987044060], [0.199, 0.66532566162, 15664.03552270859], [0.201, 3.90133282111, 266.60704172180], [0.242, 0.76562027191, 3281.23856478620], [0.254, 6.07712146530, 14054.60730802600], [0.193, 6.08798590746, 8982.81066930900], [0.202, 1.12506176909, 6684.81528205140], [0.212, 0.41763591084, 5732.04924442980], [0.191, 0.63315794517, 3017.10701004240], [0.184, 5.68898048651, 5642.19824260920], [0.180, 4.60366258431, 10235.13637553740], [0.198, 1.01742381306, 3336.73109134180], [0.207, 0.80702499658, 3877.41693879520], [0.202, 1.61753574776, 11216.28429032400], [0.177, 0.20305783491, 22743.40937951640], [0.181, 6.17864681592, 4885.96640967860], [0.228, 0.90779655425, 18454.60166491500], [0.165, 3.97299091423, 20.35531939880], [0.206, 3.58770221682, 3205.54734666440], [0.185, 2.77088436060, 220.41264243880], [0.163, 0.00569068383, 1437.17561419860], [0.185, 6.23128875160, 6660.86953400080], [0.164, 4.64548469502, 3253.30422216000], [0.210, 4.85590304986, 5618.31980486140], [0.226, 1.76563729092, 5625.36604155940], [0.163, 0.67931390118, 12310.18132361080], [0.211, 1.51278040364, 4039.88357492740], [0.177, 2.14779710666, 3346.13535100720], [0.154, 3.33525296567, 9070.11887384880], [0.178, 1.65162116131, 10713.99488132620], [0.156, 6.12783235584, 103.09277421860], [0.155, 3.51854579269, 7373.38245462640], [0.157, 4.91614155659, 15508.61512327440], [0.191, 1.74459210202, 10022.81760116760], [0.178, 3.53665589741, 533.21408344360], [0.154, 2.64640687885, 3333.56619000180], [0.162, 1.27235392680, 5415.65737477320], [0.144, 1.30886254982, 6460.81221096080], [0.173, 3.76291627342, 3561.02506913860], [0.144, 0.86629692094, 7380.49600162720], [0.150, 0.23529641094, 1228.96211332220], [0.144, 0.12285484149, 647.01083331480], [0.160, 0.24157324936, 11614.43329373220], [0.146, 4.76067886088, 16706.58525184800], [0.188, 2.96688973732, 2178.13772229200], [0.175, 1.66915420767, 22345.26037610820], [0.141, 1.75571255457, 3657.00429635640], [0.145, 0.71777671857, 6784.31762761820], [0.138, 2.74151377335, 6546.15977336420], [0.139, 4.12056692213, 3351.24909204960], [0.152, 4.88528890547, 110.20632121940], [0.134, 0.86682710306, 3603.69635007260], [0.170, 5.54401695608, 3265.83082813250], [0.165, 2.74557093704, 4672.66731424060], [0.129, 0.94520493983, 419.48464387520], [0.167, 3.43007767272, 1581.95934828300], [0.136, 3.68877945956, 13171.00144068760], [0.160, 0.68321924763, 6475.03930496240], [0.129, 4.46548223743, 9499.25986200560], [0.144, 1.88085102951, 9468.26787725700], [0.149, 3.49118810274, 14158.74771361560], [0.138, 1.92770959208, 15.25247118500], [0.172, 0.23189971635, 12323.42309600880], [0.121, 1.75813513715, 4379.63903749020], [0.120, 6.04299490267, 6606.44325483230], [0.134, 1.98845453946, 8965.97846825920], [0.118, 0.22641710036, 11766.26326451460], [0.122, 2.92219895926, 21947.11137270000], [0.147, 5.86576524955, 3169.93955608060], [0.121, 5.75886629308, 19513.98359510420], [0.119, 3.93419985914, 4936.79886898440], [0.123, 4.65853055862, 13149.15061136120], [0.151, 4.38870879458, 13362.51701710200], [0.134, 4.49208622602, 2480.30249794700], [0.115, 5.78268772131, 12722.55242048520], [0.126, 4.43971496486, 3568.08855948880], [0.114, 0.36704570747, 3384.33133900480], [0.117, 0.67607782416, 13207.02930736500], [0.124, 5.80386208894, 10721.10842832700], [0.115, 0.23672592056, 224.34479570190], [0.110, 0.26402316132, 3077.52850332700], [0.112, 3.50979462224, 1375.77379984580], [0.108, 5.30086016687, 10264.56588407340], [0.146, 2.36972522432, 4989.05918389720], [0.143, 0.92798026058, 5401.43028077160], [0.111, 2.47771615302, 18606.49894600020], [0.124, 1.13870545502, 2807.39834325620], [0.105, 5.87122793977, 4193.80880845180], [0.115, 3.01754571849, 1118.75579210280], [0.107, 2.03274473347, 25685.87280280800], [0.107, 4.82345245872, 13362.38239649640], [0.105, 1.21018340855, 8584.66166590080], [0.104, 5.07527834174, 23141.55838292460], [0.100, 4.08698733114, 3511.28529731900], [0.105, 1.13833234280, 1162.47470440780], [0.102, 2.55243872323, 664.75604513000], [0.138, 3.04361079523, 3329.97576135000], [0.130, 3.04769575195, 3341.03250279340], [0.117, 2.97177407391, 9602.35263622420], [0.098, 4.54292546461, 3362.46325602620], [0.097, 2.21618504638, 10042.61267559180], [0.100, 5.45541648580, 3024.22055704320], [0.097, 1.55448890675, 8799.98871377800], [0.107, 5.15001764390, 956.28915597060], [0.100, 1.80839732601, 6665.97238221460], [0.104, 0.04641040148, 10001.06188460700], [0.097, 0.30502193916, 10014.72373309860], [0.125, 3.71144870102, 3873.82651014340], [0.102, 5.38933965862, 13892.14067189380], [0.108, 4.33438895790, 3490.17562383440], [0.095, 2.32591017464, 10028.95082710020], [0.113, 1.74323945160, 11610.91017538320], [0.119, 4.94578003013, 3443.70520091840], [0.096, 1.63239207663, 11925.27409260060], [0.124, 0.82697196609, 9638.94074787620], [0.101, 1.51065535085, 1062.90504853820], [0.107, 4.36653716080, 6531.66165626500], [0.090, 2.01534774170, 22324.90505670940], [0.094, 4.85202869277, 14047.49376102520], [0.089, 1.23714034226, 20809.46762464520], [0.095, 5.69916785631, 6717.25272007700], [0.095, 2.15038299943, 8013.27974094040], [0.111, 3.91313035726, 3311.18291816379], [0.089, 1.37925538521, 74.78159856730], [0.094, 3.24872875047, 6657.34641565180], [0.089, 0.70324117212, 23.87843774780], [0.087, 0.40376031248, 2221.85663459700], [0.092, 3.33165786190, 2540.79130153440], [0.120, 3.09344469205, 6685.10618875760], [0.087, 4.92694309070, 1505.28780909299], [0.091, 1.66121998822, 24150.08005134500], [0.090, 5.47687082598, 16699.53901514999], [0.119, 2.53709230647, 3312.16323923200], [0.118, 5.56523997231, 2814.44457995420], [0.093, 1.61394240489, 3341.04230982650], [0.084, 1.19439840758, 3450.81874791920], [0.085, 4.95060410388, 7314.00859271280], [0.084, 3.92244493446, 170.67287061920], [0.096, 5.49205832489, 3427.92063123960], [0.106, 1.61703818023, 3774.32416457660], [0.101, 6.18535119914, 5511.63660199100], [0.081, 3.16562241132, 52175.80628314840], [0.093, 5.15512549422, 3451.79906898740], [0.108, 0.33314004399, 6709.67404086740], [0.078, 2.38080208142, 13553.89797291080], [0.085, 1.18588430640, 6705.10329114740], [0.098, 3.24856024758, 25287.72379939980], [0.080, 2.54327778068, 6675.70192909220], [0.078, 4.70533248161, 24889.57479599160], [0.095, 1.59916172961, 4271.97551355160], [0.076, 0.90799171644, 2675.85638156980], [0.091, 3.80728044706, 2125.87740737920], [0.093, 5.59480359619, 3340.18254357310], [0.095, 2.06299921822, 6518.75821726740], [0.100, 6.02550501045, 3313.21087060300], [0.075, 6.16095890090, 3370.04193523580], [0.077, 4.92444879515, 3229.42578441220], [0.090, 4.55063359845, 6701.58017279840], [0.078, 2.01202524407, 14421.83163698840], [0.079, 5.92142974185, 6155.05700665400], [0.101, 2.07923317336, 15265.88651930040], [0.082, 6.04078010866, 3760.09707057500], [0.073, 3.01106366205, 206.18554843720], [0.078, 1.71095661489, 3399.98628861340], [0.073, 3.32824316241, 9588.12554222260], [0.076, 1.74030672711, 6756.00645196690], [0.073, 1.44980946324, 5408.54382777240], [0.077, 5.64501410813, 3209.07046501340], [0.080, 5.70272305344, 10156.90236013480], [0.075, 3.83222347813, 39048.32250960720], [0.072, 0.82629826575, 7366.26890762560], [0.083, 4.71804515025, 14061.72085502680], [0.072, 4.35767091893, 21548.96236929180], [0.086, 1.50107043029, 5989.06725217280], [0.073, 3.77377582806, 28628.33622609960], [0.082, 0.78740181090, 16276.46394262300], [0.070, 2.69225539304, 3296.89351439480], [0.069, 1.01941228196, 12295.95422960920], [0.081, 4.64227979982, 6947.83189512140], [0.094, 0.74502278458, 5244.04923920100], [0.067, 4.47328871650, 20206.14119633100], [0.091, 2.95968633697, 3326.38533269820], [0.076, 2.86128350856, 8542.97070603500], [0.065, 1.31079130285, 23546.75362303080], [0.065, 3.31422850411, 6414.61781167780], [0.064, 3.98415414793, 3368.01398279660], [0.065, 4.15810281695, 3340.19235060619], [0.071, 3.82044323862, 6578.13207918100], [0.080, 1.02128994578, 7321.12213971360], [0.064, 1.07965886113, 6944.30877677240], [0.064, 1.20215520018, 38.13303563780], [0.070, 5.11166911478, 9485.03276800400], [0.067, 2.22216014849, 4845.90023579280], [0.083, 1.86067842148, 931.36308685180], [0.063, 0.45029141698, 6418.14093002680], [0.062, 5.68207205878, 4459.36821880260], [0.062, 0.62454636835, 6688.27109009760], [0.076, 0.41820625869, 5032.77809620220], [0.062, 5.72811519809, 2008.55753915900], [0.060, 1.98790201827, 12199.97500239140], [0.078, 2.18035217615, 3232.94890276120], [0.060, 1.08971396071, 10124.93005431800], [0.072, 4.08555524166, 3416.87849797540], [0.061, 2.49066420507, 4005.36847182980], [0.059, 2.93755144370, 9886.77220006400], [0.069, 1.02371083242, 6621.85099148600], [0.061, 4.57446273568, 2277.70737816160], [0.059, 4.74745481720, 16865.52876963120], [0.069, 3.62576981720, 15906.76412668260], [0.058, 4.15993379336, 1854.63230563460], [0.060, 4.92798256747, 3391.89276456221], [0.070, 4.51699340219, 16304.91313009080], [0.056, 3.59354639280, 7322.10246078180], [0.068, 0.81217091970, 16703.04487984680], [0.056, 3.19997567622, 4140.43355186520], [0.058, 1.73479637157, 2409.24933984800], [0.054, 5.54310937490, 2604.73591316800], [0.059, 2.02922256380, 45486.81875903279], [0.063, 5.29505507594, 17101.21113690720], [0.054, 4.88230660750, 48300.16010269000], [0.071, 4.84381041200, 3289.33208883739], [0.054, 1.76917054114, 3510.19260983280], [0.063, 2.80175814276, 16894.51039961060], [0.058, 0.91631357427, 10018.24685144760], [0.054, 1.06826755543, 8948.22825590860], [0.072, 1.36121375974, 10025.42770875120], [0.061, 0.92427393171, 17468.85519794540], [0.068, 2.84271358352, 16703.07938715119], [0.053, 3.42679182927, 14867.73751589219], [0.054, 0.41070672545, 18451.07854656599], [0.060, 5.86922287544, 7447.01791784600], [0.051, 1.64684042106, 3472.15438838620], [0.057, 6.13250399703, 17085.95866572220], [0.053, 4.16969434701, 6106.88005506480], [0.050, 3.17196717347, 2111.65031337760], [0.055, 5.72607545560, 10706.88133432540], [0.062, 0.57333106196, 3171.03224356680], [0.053, 1.29007833025, 6652.77566593180], [0.050, 2.96441858632, 10037.08975128440], [0.065, 5.11165617529, 3113.13629391080], [0.053, 4.87447079015, 1485.98012106520], [0.050, 2.52848298042, 10448.43547097540], [0.059, 1.69623653028, 4025.65648092580], [0.047, 5.15559748285, 12012.58229714040], [0.049, 1.19473362353, 3448.27595063840], [0.063, 1.01191427607, 11769.85369316640], [0.064, 3.86219786087, 18208.34994259200], [0.059, 2.96261275062, 14071.43950907579], [0.049, 1.41657179779, 2938.94030494260], [0.048, 2.95878690387, 11527.12508919240], [0.052, 0.01971915447, 8226.57883637840], [0.045, 5.07966377852, 3318.76159737340], [0.043, 1.23879381294, 7218.02936549500], [0.058, 5.58121433163, 6643.09181776180], [0.048, 5.02446939402, 6645.19698672220], [0.043, 0.69492704598, 20995.39296644940], [0.044, 4.02272101657, 9389.05354078620], [0.055, 4.38138154697, 1478.86657406440], [0.051, 4.24292455428, 792.77488846740], [0.042, 2.74826708762, 14577.18472611980], [0.044, 4.18397905503, 8535.85715903420], [0.047, 1.33588473182, 632.78373931320], [0.042, 5.05676915852, 3397.51080163540], [0.042, 0.28204510006, 10001.48196070061], [0.042, 0.75310918544, 6357.71943674220], [0.042, 4.94532732982, 18052.92954315780], [0.052, 4.09912687749, 5835.14201864840], [0.054, 2.46533302314, 8186.51266249260], [0.043, 4.77713978044, 32124.36905223359], [0.053, 6.08293348275, 3377.21779200400], [0.041, 2.51168269556, 4186.69526145100], [0.041, 1.24482327948, 3212.59358336240], [0.041, 5.42003026893, 685.04405422600], [0.041, 5.04768364997, 6571.01853218020], [0.042, 2.08904552145, 13363.43002786740], [0.048, 4.82888746454, 1835.32461760680], [0.043, 4.17203713456, 43340.65334255760], [0.046, 0.81640935106, 45884.96776244100], [0.042, 2.26773068307, 12729.66596748600], [0.039, 5.85791936573, 846.08283475120], [0.043, 2.90976420757, 6872.67311951120], [0.045, 1.98725045807, 1861.74585263540], [0.045, 0.50053853542, 14128.24277124560], [0.046, 2.86512929328, 38650.17350619900], [0.038, 3.65846461938, 29698.28751133580], [0.039, 4.57679716458, 6901.63749583840], [0.039, 3.85504465583, 9945.57120882380], [0.040, 0.06127203284, 9947.05568153210], [0.043, 5.28854105201, 3274.12501778540], [0.047, 6.25707790441, 24606.13555322000], [0.037, 5.02115296017, 11128.97608578420], [0.039, 1.71421919870, 7696.88787128380], [0.037, 4.34652985120, 3283.71405176420], [0.037, 0.05572748092, 21150.81336588360], [0.042, 4.97872041460, 13575.74880223720], [0.050, 4.24170332288, 7747.72033058960], [0.037, 4.07496312186, 8646.06348025360], [0.038, 0.44080908793, 24491.42579258340], [0.036, 1.73681874925, 3468.63127003720], [0.041, 5.69294900686, 26087.90314157420], [0.036, 1.80256389689, 8756.26980147300], [0.036, 3.37374689465, 48429.28218232440], [0.035, 0.10555289345, 8742.04270747140], [0.041, 4.26832466355, 21000.91589075680], [0.038, 0.73199792046, 26084.02180621620], ], # R2 [ [44242.247, 0.47930603943, 3340.61242669980], [8138.042, 0.86998398093, 6681.22485339960], [1274.915, 1.22594050809, 10021.83728009940], [187.387, 1.57298991982, 13362.44970679920], [40.744, 1.97080175060, 3344.13554504880], [52.396, 3.14159265359, 0.00000000000], [26.616, 1.91665615762, 16703.06213349900], [17.825, 4.43499505333, 2281.23049651060], [11.713, 4.52510453730, 3185.19202726560], [10.209, 5.39143469548, 1059.38193018920], [9.950, 0.41870577185, 796.29800681640], [9.237, 4.53579272961, 2146.16541647520], [7.299, 3.14218509183, 2544.31441988340], [7.217, 2.29300859074, 6684.74797174860], [6.808, 5.26702580055, 155.42039943420], [6.528, 2.30781369329, 3738.76143010800], [7.785, 5.93369079547, 1748.01641306700], [5.840, 1.05191350362, 1349.86740965880], [6.749, 5.30194395749, 1194.44701022460], [4.695, 0.76880586144, 3097.88382272579], [5.391, 1.00223256041, 3149.16416058820], [4.406, 2.45556303355, 951.71840625060], [4.286, 3.89643520638, 1592.59601363280], [3.514, 1.85168391963, 398.14900340820], [3.699, 2.26043707772, 20043.67456019880], [3.377, 3.81683532672, 1751.53953141600], [4.585, 0.80787441740, 4136.91043351620], [3.201, 2.11657635165, 5614.72937620960], [3.622, 1.32395191387, 3333.49887969900], [2.916, 1.19337460559, 529.69096509460], [2.979, 2.86481008776, 6151.53388830500], [3.057, 4.55276793064, 5628.95647021120], [2.906, 1.20295377623, 3894.18182954220], [3.850, 3.86055626689, 553.56940284240], [2.820, 2.48683324916, 1990.74501704100], [2.657, 6.07411629964, 4292.33083295040], [2.700, 2.92139773350, 3496.03282613400], [2.395, 5.94175921617, 2787.04302385740], [2.264, 2.56219866409, 191.44826611160], [2.167, 5.36812435483, 8962.45534991020], [2.149, 2.74950075397, 242.72860397400], [2.217, 1.85265984462, 3337.08930835080], [1.996, 5.76429928131, 3341.59274776800], [1.999, 3.82349238481, 2914.01423582380], [1.835, 5.68592723044, 1589.07289528380], [1.812, 3.32042068028, 5088.62883976680], [2.413, 4.68291336853, 4690.47983635860], [1.970, 4.17480610904, 3340.59517304760], [1.970, 6.20643855008, 3340.62968035200], [1.627, 5.67733051452, 4535.05943692440], [2.160, 1.07452599834, 2388.89402044920], [1.964, 3.10805316088, 3583.34103067380], [1.985, 5.75850351840, 4399.99435688900], [1.507, 4.95936409838, 382.89653222320], [1.278, 4.82232889938, 2957.71589447660], [1.475, 2.22707926559, 3723.50895892300], [1.196, 3.26724458920, 9492.14631500480], [1.349, 4.87573224485, 6525.80445396540], [1.433, 2.69734916443, 7079.37385680780], [1.224, 2.62012336714, 10025.36039844840], [1.404, 5.19056026479, 2700.71514038580], [1.202, 0.93472783088, 2810.92146160520], [0.869, 5.81340811635, 12303.06777661000], [0.867, 2.20046640409, 2699.73481931760], [0.830, 2.01484544773, 5092.15195811580], [0.855, 5.96220147975, 426.59819087600], [0.848, 2.26407047301, 6283.07584999140], [0.917, 1.40295785881, 6489.77658728800], [0.833, 1.17384197174, 7477.52286021600], [1.041, 6.27171470048, 3347.72597370060], [0.965, 3.39855816541, 5621.84292321040], [0.722, 4.26304776331, 4933.20844033260], [0.706, 2.34131594714, 7.11354700080], [0.768, 2.06208352904, 5486.77784317500], [0.953, 2.11123497948, 3870.30339179440], [0.844, 2.23931963240, 3553.91152213780], [0.646, 2.24669034469, 3340.54511639700], [0.653, 3.99043329363, 6677.70173505060], [0.714, 0.29739480601, 6681.24210705180], [0.828, 0.22863617670, 3532.06069281140], [0.612, 1.55388376751, 7234.79425624200], [0.714, 4.54969883976, 6681.20759974740], [0.586, 3.30118433303, 1221.84856632140], [0.646, 1.83853693231, 3340.67973700260], [0.560, 5.05848353328, 8031.09226305840], [0.651, 0.15897472160, 7632.94325965020], [0.488, 3.08086378649, 6836.64525283380], [0.534, 4.25727954634, 3339.63210563160], [0.504, 2.59990772815, 23384.28698689860], [0.372, 6.27186983164, 2487.41604494780], [0.343, 4.71059403854, 639.89728631400], [0.449, 1.34123846614, 640.87760738220], [0.342, 5.96338023755, 4929.68532198360], [0.329, 2.65955258770, 9623.68827669120], [0.352, 6.09567212646, 7740.60678358880], [0.326, 6.05498346093, 2118.76386037840], [0.403, 4.96465831103, 8969.56889691100], [0.402, 2.84624835384, 5331.35744374080], [0.319, 1.44545457475, 5729.50644714900], [0.303, 0.01918776551, 6127.65545055720], [0.297, 5.74070606294, 6041.32756708560], [0.297, 3.06763224975, 10419.98628350760], [0.282, 6.04069352017, 7875.67186362420], [0.278, 5.11654962157, 11773.37681151540], [0.259, 2.89786343627, 7210.91581849420], [0.273, 3.83181794308, 8429.24126646660], [0.256, 1.08862226474, 2288.34404351140], [0.288, 6.13572687680, 6682.20517446780], [0.302, 3.61490647715, 12832.75874170460], [0.235, 2.21413387615, 6681.29216370240], [0.317, 3.60634897209, 2301.58581590939], [0.289, 5.08223311018, 2274.11694950980], [0.254, 0.36603904729, 3767.21061757580], [0.235, 2.62434481550, 6681.15754309680], [0.226, 3.45305949713, 6923.95345737360], [0.205, 3.88943452829, 10018.31416175040], [0.206, 3.44453113177, 10177.25767953360], [0.210, 0.57926734389, 10973.55568635000], [0.194, 1.57870686859, 10818.13528691580], [0.190, 2.42312911773, 8955.34180290940], [0.194, 2.45887376159, 7064.12138562280], [0.193, 0.58793888724, 5828.02847164760], [0.183, 1.68247271963, 213.29909543800], [0.236, 1.98863774162, 10575.40668294180], [0.245, 2.17761779228, 4562.46099302120], [0.177, 0.66379705293, 10021.85453375160], [0.176, 4.91607557961, 10021.82002644720], [0.217, 2.93968443649, 13365.97282514820], [0.167, 4.74764434327, 3914.95722503460], [0.213, 0.15734917857, 2942.46342329160], [0.155, 1.78776991092, 9830.38901398780], [0.180, 5.21088564787, 9866.41688066520], [0.161, 5.17683861380, 6298.32832117640], [0.159, 2.68980684850, 6894.52394883760], [0.149, 6.26524493469, 1039.02661079040], [0.147, 0.36939961702, 6688.33840040040], [0.151, 1.22272892290, 574.34479833480], [0.137, 2.09492296067, 1066.49547719000], [0.165, 6.15952050903, 15643.68020330980], [0.163, 4.66507592292, 8273.82086703240], [0.124, 0.67855210339, 6438.49624942560], [0.128, 1.69206367749, 3981.49003408200], [0.116, 2.78191248964, 3360.96774609859], [0.128, 0.84461423001, 3355.86489788480], [0.124, 1.63253732557, 6674.11130639880], [0.120, 0.31762150109, 3127.31333126180], [0.129, 2.26678583645, 6467.92575796160], [0.104, 0.07355376701, 3325.35995551480], [0.130, 4.41777190830, 3320.25710730100], [0.095, 1.31957248342, 7903.07341972100], [0.114, 0.65681602343, 3178.14579056760], [0.092, 4.98392367746, 9779.10867612540], [0.101, 4.10670787374, 536.80451209540], [0.106, 5.41622566807, 15113.98923821520], [0.096, 3.52561014696, 3475.67750673520], [0.101, 2.91169549546, 692.15760122680], [0.093, 3.21464368291, 8671.96987044060], [0.087, 5.24375873119, 13119.72110282519], [0.106, 3.76804681559, 13517.87010623340], [0.089, 5.73652101746, 11371.70468975820], [0.104, 5.90078964406, 8432.76438481560], [0.099, 3.61425346453, 853.19638175200], [0.078, 0.95802015551, 3191.04922956520], [0.089, 2.50872076312, 1052.26838318840], [0.078, 2.98115354616, 26724.89941359840], [0.079, 5.91514993930, 6040.34724601740], [0.090, 3.00950470302, 12964.30070339100], [0.075, 1.31512531841, 17924.91069982040], [0.073, 5.01153593776, 1903.43681250120], [0.075, 2.57969241717, 10021.90459040220], [0.073, 4.09954161905, 3319.83703120740], [0.070, 5.37678396256, 12310.18132361080], [0.071, 0.98422998240, 13362.46696045140], [0.068, 4.69140248943, 522.57741809380], [0.068, 3.24217441291, 16706.58525184800], [0.069, 2.53964193741, 5884.92684658320], [0.070, 2.38237948321, 13916.01910964160], [0.066, 3.48443797546, 13760.59871020740], [0.068, 5.27435069681, 3980.50971301380], [0.076, 0.12288413214, 11216.28429032400], [0.073, 3.94785759909, 16173.37116840440], [0.062, 0.15518975647, 11081.21921028860], [0.074, 2.99926779692, 10021.76996979660], [0.080, 6.18812323827, 9380.95967271720], [0.064, 3.99294283669, 13358.92658845020], [0.061, 2.56817782412, 149.56319713460], [0.059, 3.80850908229, 10264.56588407340], [0.060, 4.79879360562, 1437.17561419860], [0.068, 2.07515658228, 1596.18644228460], [0.060, 2.26503107747, 28628.33622609960], [0.058, 6.10782258899, 5459.37628707820], [0.063, 0.24407077742, 18984.29263000960], [0.058, 5.22738430747, 13362.43245314700], [0.056, 1.88708253797, 9070.11887384880], [0.055, 5.72587156499, 433.71173787680], [0.056, 1.18238857561, 6696.47732458460], [0.062, 3.98214740104, 3427.92063123960], [0.056, 5.37129176649, 5099.26550511660], [0.057, 0.86204712032, 5642.19824260920], [0.055, 1.31787605222, 8982.81066930900], [0.056, 5.49808236951, 24093.27678917520], [0.054, 3.77562154746, 10213.28554621100], [0.054, 2.36294643031, 33716.96506586640], [0.063, 3.53402427573, 3205.54734666440], [0.066, 6.25810929981, 8270.29774868340], [0.067, 0.58592813080, 3335.08950239240], [0.055, 4.74995645767, 6660.86953400080], [0.053, 0.31930032532, 12721.57209941700], [0.069, 2.42905593362, 6158.64743530580], [0.055, 5.03192783121, 7255.56965173440], [0.051, 5.45351947711, 13207.02930736500], [0.050, 0.23368526162, 4379.63903749020], [0.053, 2.12826344020, 13171.00144068760], [0.049, 2.35512151368, 4032.77002792660], [0.049, 2.81773050890, 9808.53818466140], [0.067, 2.26295786556, 2766.26762836500], [0.049, 0.72597680486, 10028.95082710020], [0.050, 6.10119450350, 3253.30422216000], [0.059, 0.27861398526, 9225.53927328300], [0.053, 1.27330874549, 3344.49376205780], [0.049, 2.91499389416, 10404.73381232260], [0.047, 0.48598973231, 17395.21973472580], [0.049, 3.40240207389, 3304.58456002240], [0.060, 3.40554368741, 10551.52824519400], [0.050, 1.83471955355, 30376.35263916660], [0.046, 3.04980996832, 6144.42034130420], [0.049, 0.33200904496, 6702.00024889200], [0.053, 0.35820094732, 9468.26787725700], [0.050, 0.15378507249, 2648.45482547300], [0.044, 0.79762157297, 7107.82304427560], [0.050, 2.41332661328, 4407.10790388980], [0.054, 0.21682940856, 10022.81760116760], [0.044, 5.78502737591, 3364.49086444760], [0.044, 0.75508636274, 16062.18452611680], [0.043, 3.10581037685, 10235.13637553740], [0.044, 5.21252098878, 7373.38245462640], [0.058, 4.51680312444, 6660.44945790720], [0.043, 0.15523355839, 1505.28780909299], [0.055, 5.93371026829, 8439.87793181640], [0.042, 5.40417232308, 3344.20285535160], [0.056, 3.87534582911, 6816.28993343500], [0.049, 5.57153056447, 17468.85519794540], [0.046, 3.07783299049, 12722.55242048520], [0.045, 1.49303542795, 6247.51311552280], [0.055, 6.26098836404, 3361.38782219220], [0.042, 4.74455545491, 3369.06161416760], [0.040, 1.58676666294, 2818.03500860600], [0.043, 4.97295184315, 3337.02199804800], [0.055, 3.80215638520, 3376.64029337720], [0.047, 1.97367775421, 1581.95934828300], [0.045, 2.03598705348, 5244.04923920100], [0.049, 4.43182954044, 9595.23908922340], [0.043, 0.38914582094, 6665.97238221460], [0.040, 1.06953099245, 23695.12778576700], [0.038, 0.59996214864, 10713.99488132620], [0.039, 3.79055778605, 33318.81606245820], [0.041, 5.54542347834, 3863.18984479360], [0.037, 5.27208151144, 20752.66436247540], [0.039, 3.15412760412, 14469.58851248400], [0.041, 0.55705920174, 3346.13535100720], [0.048, 1.42210748234, 3316.73398895200], [0.049, 5.44942247991, 9638.94074787620], [0.038, 2.11846271943, 15664.03552270859], [0.035, 5.30782933148, 6677.63442474780], [0.036, 2.68151450016, 8584.66166590080], [0.046, 3.09450395763, 6701.58017279840], [0.038, 1.81885395671, 14158.74771361560], [0.037, 5.80483071722, 6684.81528205140], [0.047, 2.60317702777, 162.46663613220], [0.038, 2.22559377525, 3503.07906283200], [0.035, 0.84358942718, 6518.75821726740], [0.033, 4.92302322062, 23141.55838292460], [0.043, 0.95148893985, 34115.11406927460], [0.046, 4.99457196207, 9381.93999378540], [0.043, 1.73832102244, 12323.42309600880], [0.032, 2.92741580696, 9499.25986200560], [0.043, 1.50296327105, 27035.74021246680], [0.033, 5.41731109688, 20597.24396304120], [0.032, 4.13881058425, 31570.79964939120], [0.040, 5.84463069180, 16460.33352952499], [0.035, 5.50083743557, 8425.65083781480], [0.038, 5.91991985929, 3336.73109134180], [0.030, 5.09155042811, 5085.03841111500], [0.031, 4.27211180916, 36659.42848915800], [0.030, 4.87389489592, 1692.16566950240], [0.030, 3.75494646937, 4845.90023579280], [0.034, 3.71030605417, 8827.39026987480], [0.030, 0.01599456850, 11243.68584642080], [0.029, 2.66198696023, 12295.95422960920], [0.028, 3.12114207206, 11925.27409260060], [0.036, 1.16568750904, 18052.92954315780], [0.032, 1.72704226918, 12566.15169998280], [0.028, 2.80254457895, 3607.21946842160], [0.032, 4.04390839531, 6680.24453233140], [0.027, 2.53565904393, 19004.64794940840], [0.036, 3.33518515689, 29978.20363575840], [0.028, 0.58104982217, 20354.51535906720], [0.029, 5.85207825749, 31172.65064598300], [0.026, 2.22598820379, 3.52311834900], [0.033, 5.15903548241, 10596.18207843420], [0.028, 1.89792803028, 3333.56619000180], [0.027, 2.25129832716, 76.26607127560], [0.026, 4.32703172263, 17085.95866572220], [0.026, 5.12847780702, 11766.26326451460], [0.028, 0.80926596905, 20735.83216142559], [0.026, 5.06814803493, 17412.05193577560], [0.024, 4.47399155600, 3134.42687826260], [0.024, 4.35557152695, 14584.29827312060], [0.027, 4.98717355201, 3877.41693879520], [0.025, 5.63712701265, 14054.60730802600], [0.024, 4.12573657295, 4193.80880845180], [0.025, 1.40880282063, 8186.51266249260], [0.024, 4.96463811748, 26087.90314157420], ], # R3 [ [1113.107, 5.14987350142, 3340.61242669980], [424.446, 5.61343766478, 6681.22485339960], [100.044, 5.99726827028, 10021.83728009940], [19.606, 0.07633062094, 13362.44970679920], [3.477, 0.42951907576, 16703.06213349900], [4.693, 3.14159265359, 0.00000000000], [2.869, 0.44711842697, 3344.13554504880], [2.428, 3.02115527957, 3185.19202726560], [0.688, 0.80693359444, 6684.74797174860], [0.540, 3.86836515672, 1059.38193018920], [0.577, 0.77853275120, 20043.67456019880], [0.468, 4.52450786544, 3496.03282613400], [0.487, 1.60862391345, 3583.34103067380], [0.362, 4.42397903418, 2787.04302385740], [0.397, 5.71967986581, 3149.16416058820], [0.299, 0.75640033535, 3738.76143010800], [0.350, 5.55691984889, 4136.91043351620], [0.314, 3.37632898783, 6525.80445396540], [0.233, 2.13965262306, 3097.88382272579], [0.212, 4.20487494011, 3341.59274776800], [0.214, 0.56779556947, 155.42039943420], [0.201, 2.35284464564, 1592.59601363280], [0.204, 0.96723315302, 1990.74501704100], [0.230, 5.82959057146, 2388.89402044920], [0.160, 4.14974194757, 4535.05943692440], [0.156, 5.13345210285, 796.29800681640], [0.146, 3.29541339704, 2957.71589447660], [0.156, 1.13805508457, 10025.36039844840], [0.159, 3.76174286126, 1194.44701022460], [0.136, 5.58293924642, 3894.18182954220], [0.145, 3.02112488974, 3337.08930835080], [0.146, 4.25359617225, 4399.99435688900], [0.100, 4.26740096115, 1589.07289528380], [0.091, 6.12108227231, 6489.77658728800], [0.101, 1.17242141914, 7079.37385680780], [0.098, 1.12613498307, 23384.28698689860], [0.075, 6.02182689533, 529.69096509460], [0.078, 5.93418069229, 7477.52286021600], [0.068, 1.70775041911, 9492.14631500480], [0.070, 3.67253155189, 8962.45534991020], [0.062, 4.14954627063, 4292.33083295040], [0.067, 0.15092246550, 3870.30339179440], [0.066, 1.12578506413, 6151.53388830500], [0.062, 1.93984222091, 6923.95345737360], [0.060, 4.30641513096, 12303.06777661000], [0.074, 4.72156358149, 3347.72597370060], [0.055, 2.75742802464, 4933.20844033260], [0.053, 4.77894621871, 6127.65545055720], [0.050, 2.57807944338, 3340.59517304760], [0.048, 3.72532068729, 9866.41688066520], [0.042, 6.15391373101, 7234.79425624200], [0.043, 3.43955584179, 5486.77784317500], [0.050, 4.60885064189, 3340.62968035200], [0.044, 4.47943289816, 426.59819087600], [0.045, 6.24485207500, 2274.11694950980], [0.040, 0.73805316471, 7.11354700080], [0.038, 1.06497784748, 9623.68827669120], [0.041, 4.60954640493, 6682.20517446780], [0.038, 4.60963924082, 7740.60678358880], [0.036, 3.15129246169, 639.89728631400], [0.037, 6.14629970622, 5729.50644714900], [0.040, 1.47395544850, 13365.97282514820], [0.035, 2.60772245492, 4690.47983635860], [0.035, 2.45077931900, 2288.34404351140], [0.034, 4.50544497582, 7875.67186362420], [0.042, 2.11383330882, 12832.75874170460], [0.033, 3.97655860802, 191.44826611160], [0.032, 4.06047154083, 3532.06069281140], [0.034, 5.06671994554, 6681.24210705180], [0.042, 4.67024017441, 15643.68020330980], [0.036, 0.29140871479, 3723.50895892300], [0.033, 4.52588149629, 4929.68532198360], [0.034, 2.74499072890, 6677.70173505060], [0.030, 1.57743012295, 10419.98628350760], [0.040, 1.31713176335, 5331.35744374080], [0.034, 3.03490000148, 6681.20759974740], [0.031, 1.25306164576, 242.72860397400], [0.029, 5.44118048011, 10021.85453375160], [0.029, 3.41037097794, 10021.82002644720], [0.028, 4.81855060968, 6836.64525283380], [0.028, 0.72745302325, 6283.07584999140], [0.030, 3.06267495632, 2281.23049651060], [0.027, 0.62535799761, 6681.29216370240], [0.030, 3.56389476096, 8969.56889691100], [0.032, 5.31078691958, 553.56940284240], [0.033, 2.00753799963, 5884.92684658320], [0.027, 1.18001479303, 8955.34180290940], [0.025, 2.94122791628, 2544.31441988340], [0.025, 0.17808889827, 9830.38901398780], [0.031, 5.73384204593, 3339.63210563160], [0.028, 3.70436008855, 6298.32832117640], [0.024, 0.07739730466, 10818.13528691580], [0.027, 1.03401737006, 6681.15754309680], [0.024, 0.09987383242, 382.89653222320], [0.027, 0.60053652251, 3553.91152213780], [0.027, 4.97107900859, 3767.21061757580], [0.024, 3.36621347824, 8031.09226305840], [0.026, 4.80509833364, 7632.94325965020], [0.022, 1.43966107077, 26724.89941359840], [0.020, 0.36901153144, 398.14900340820], [0.019, 1.00325306041, 7064.12138562280], [0.020, 0.19821371186, 6674.11130639880], [0.018, 1.07169297658, 7210.91581849420], [0.021, 2.69512140340, 10018.31416175040], [0.023, 3.25670295081, 5621.84292321040], [0.018, 0.24542781929, 3981.49003408200], [0.018, 5.14428605713, 6688.33840040040], [0.020, 0.97539014916, 6894.52394883760], [0.024, 4.42156401638, 1748.01641306700], [0.016, 0.65389503440, 3340.54511639700], [0.016, 5.28427106012, 3333.49887969900], ], # R4 [ [19.552, 3.58211650473, 3340.61242669980], [16.323, 4.05116076923, 6681.22485339960], [5.848, 4.46383962094, 10021.83728009940], [1.532, 4.84374321619, 13362.44970679920], [0.375, 1.50962233608, 3185.19202726560], [0.339, 5.20684967613, 16703.06213349900], [0.151, 5.16472931648, 3344.13554504880], [0.125, 2.19233532803, 3496.03282613400], [0.148, 0.00000000000, 0.00000000000], [0.087, 0.10275067375, 3583.34103067380], [0.070, 5.55303619365, 20043.67456019880], [0.048, 2.91797786512, 2787.04302385740], [0.049, 5.57038514830, 6684.74797174860], [0.057, 1.86867280743, 6525.80445396540], [0.034, 3.63370917313, 3097.88382272579], [0.021, 2.30677637991, 1059.38193018920], [0.021, 4.03682122005, 4136.91043351620], [0.018, 4.17438755890, 3149.16416058820], [0.013, 1.97805475719, 155.42039943420], [0.017, 5.94856414690, 10025.36039844840], [0.012, 0.51097435253, 6923.95345737360], [0.012, 3.27945299261, 6127.65545055720], [0.013, 2.22938285522, 9866.41688066520], [0.016, 2.64206771227, 4399.99435688900], [0.013, 2.75813969974, 6836.64525283380], [0.013, 4.51988349676, 6489.77658728800], [0.014, 0.76591550754, 3894.18182954220], [0.011, 5.47381242145, 3738.76143010800], ], # R5 [ [0.476, 2.47617204701, 6681.22485339960], [0.268, 2.91510547706, 10021.83728009940], [0.115, 1.76888962311, 3340.61242669980], [0.096, 3.31378377179, 13362.44970679920], [0.048, 6.27457828287, 3185.19202726560], [0.027, 3.69380877066, 16703.06213349900], [0.013, 3.72005807206, 3496.03282613400], [0.012, 4.88179002689, 3583.34103067380], [0.012, 3.14159265359, 0.00000000000], ], ] """This table contains Mars' periodic terms (all of them) from the planetary theory VSOP87 for the radius vector at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in pages 425-426.""" ORBITAL_ELEM = [ [355.433, 19141.6964471, 0.00031052, 0.000000016], # L [1.523679342, 0.0, 0.0, 0.0], # a [0.09340065, 0.000090484, -0.0000000806, -0.00000000025], # e [1.849726, -0.0006011, 0.00001276, -0.000000007], # i [49.558093, 0.7720959, 0.00001557, 0.000002267], # Omega [336.060234, 1.8410449, 0.00013477, 0.000000536] # pie ] """This table contains the parameters to compute Mars' orbital elements for the mean equinox of date. Based in Table 31.A, page 212""" ORBITAL_ELEM_J2000 = [ [355.433, 19140.2993039, 0.00000262, -0.000000003], # L [1.849726, -0.0081477, -0.00002255, -0.000000029], # i [49.558093, -0.295025, -0.00064048, -0.000001964], # Omega [336.060234, 0.4439016, -0.00017313, 0.000000518] # pie ] """This table contains the parameters to compute Mars' orbital elements for the standard equinox J2000.0. Based on Table 31.B, page 214""" class Mars(object): """ Class Mars models that planet. """ @staticmethod def geometric_heliocentric_position(epoch, tofk5=True): """This method computes the geometric heliocentric position of planet Mars for a given epoch, using the VSOP87 theory. :param epoch: Epoch to compute Mars position, as an Epoch object :type epoch: :py:class:`Epoch` :param tofk5: Whether or not the small correction to convert to the FK5 system will be applied or not :type tofk5: bool :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2018, 10, 27.0) >>> l, b, r = Mars.geometric_heliocentric_position(epoch) >>> print(round(l.to_positive(), 4)) 2.0015 >>> print(round(b, 4)) -1.3683 >>> print(round(r, 5)) 1.39306 """ return geometric_vsop_pos(epoch, VSOP87_L, VSOP87_B, VSOP87_R, tofk5) @staticmethod def apparent_heliocentric_position(epoch): """This method computes the apparent heliocentric position of planet Mars for a given epoch, using the VSOP87 theory. :param epoch: Epoch to compute Mars position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. """ return apparent_vsop_pos(epoch, VSOP87_L, VSOP87_B, VSOP87_R) @staticmethod def orbital_elements_mean_equinox(epoch): """This method computes the orbital elements of Mars for the mean equinox of the date for a given epoch. :param epoch: Epoch to compute orbital elements, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the following six orbital elements: - Mean longitude of the planet (Angle) - Semimajor axis of the orbit (float, astronomical units) - eccentricity of the orbit (float) - inclination on the plane of the ecliptic (Angle) - longitude of the ascending node (Angle) - argument of the perihelion (Angle) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2065, 6, 24.0) >>> l, a, e, i, ome, arg = Mars.orbital_elements_mean_equinox(epoch) >>> print(round(l, 6)) 288.855211 >>> print(round(a, 8)) 1.52367934 >>> print(round(e, 7)) 0.0934599 >>> print(round(i, 6)) 1.849338 >>> print(round(ome, 5)) 50.06365 >>> print(round(arg, 6)) 287.202108 """ return orbital_elements(epoch, ORBITAL_ELEM, ORBITAL_ELEM) @staticmethod def orbital_elements_j2000(epoch): """This method computes the orbital elements of Mars for the standard equinox J2000.0 for a given epoch. :param epoch: Epoch to compute orbital elements, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the following six orbital elements: - Mean longitude of the planet (Angle) - Semimajor axis of the orbit (float, astronomical units) - eccentricity of the orbit (float) - inclination on the plane of the ecliptic (Angle) - longitude of the ascending node (Angle) - argument of the perihelion (Angle) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2065, 6, 24.0) >>> l, a, e, i, ome, arg = Mars.orbital_elements_j2000(epoch) >>> print(round(l, 6)) 287.94027 >>> print(round(a, 8)) 1.52367934 >>> print(round(e, 7)) 0.0934599 >>> print(round(i, 6)) 1.844381 >>> print(round(ome, 5)) 49.36464 >>> print(round(arg, 6)) 286.98617 """ return orbital_elements(epoch, ORBITAL_ELEM, ORBITAL_ELEM_J2000) @staticmethod def geocentric_position(epoch): """This method computes the geocentric position of Mars (right ascension and declination) for the given epoch, as well as the elongation angle. :param epoch: Epoch to compute geocentric position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the right ascension, the declination and the elongation angle as Angle objects :rtype: tuple :raises: TypeError if input value is of wrong type. >>> epoch = Epoch(1992, 12, 20.0) >>> ra, dec, elon = Mars.geocentric_position(epoch) >>> print(ra.ra_str(n_dec=1)) 7h 48' 35.4'' >>> print(dec.dms_str(n_dec=1)) 24d 35' 33.9'' >>> print(elon.dms_str(n_dec=1)) 153d 35' 1.6'' """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Compute the heliocentric position of Mars l, b, r = Mars.geometric_heliocentric_position(epoch, tofk5=False) # Compute the heliocentric position of the Earth l0, b0, r0 = Earth.geometric_heliocentric_position(epoch, tofk5=False) # Convert to radians lr = l.rad() br = b.rad() l0r = l0.rad() b0r = b0.rad() # Compute first iteration x = r * cos(br) * cos(lr) - r0 * cos(b0r) * cos(l0r) y = r * cos(br) * sin(lr) - r0 * cos(b0r) * sin(l0r) z = r * sin(br) - r0 * sin(b0r) delta = sqrt(x * x + y * y + z * z) tau = 0.0057755183 * delta # Adjust the epoch for light-time epoch -= tau # Compute again Mars coordinates with this correction l, b, r = Mars.geometric_heliocentric_position(epoch, tofk5=False) # Compute second iteration lr = l.rad() br = b.rad() x = r * cos(br) * cos(lr) - r0 * cos(b0r) * cos(l0r) y = r * cos(br) * sin(lr) - r0 * cos(b0r) * sin(l0r) z = r * sin(br) - r0 * sin(b0r) # Compute longitude and latitude lamb = atan2(y, x) beta = atan2(z, sqrt(x * x + y * y)) # Now, let's compute the aberration effect t = (epoch - JDE2000) / 36525 e = 0.016708634 + t * (-0.000042037 - t * 0.0000001267) pie = 102.93735 + t * (1.71946 + t * 0.00046) pie = radians(pie) lon = l0 + 180.0 lon = lon.rad() k = 20.49552 # The constant of aberration deltal1 = k * (-cos(lon - lamb) + e * cos(pie - lamb)) / cos(beta) deltab1 = -k * sin(beta) * (sin(lon - lamb) - e * sin(pie - lamb)) deltal1 = Angle(0, 0, deltal1) deltab1 = Angle(0, 0, deltab1) # Correction to FK5 system lamb = Angle(lamb, radians=True) lamb = lamb.to_positive() beta = Angle(beta, radians=True) l_prime = lamb - t * (1.397 + t * 0.00031) deltal2 = Angle(0, 0, -0.09033) a = 0.03916 * (cos(l_prime.rad()) + sin(l_prime.rad())) a = a * tan(b.rad()) deltal2 += Angle(0, 0, a) deltab2 = 0.03916 * (cos(l_prime.rad()) - sin(l_prime.rad())) deltab2 = Angle(0, 0, deltab2) # Apply the corrections lamb = lamb + deltal1 + deltal2 beta = beta + deltab1 + deltab2 # Correction for nutation dpsi = nutation_longitude(epoch) lamb += dpsi e = true_obliquity(epoch) ra, dec = ecliptical2equatorial(lamb, beta, e) # Let's compute the elongation angle lons, lats, rs = Sun.apparent_geocentric_position(epoch) lambr = lamb.rad() lsr = lons.rad() betar = beta.rad() elon = acos(cos(betar) * cos(lambr - lsr)) elon = Angle(elon, radians=True) return ra, dec, elon @staticmethod def conjunction(epoch): """This method computes the time of the conjunction closest to the given epoch. :param epoch: Epoch close to the desired conjunction :type epoch: :py:class:`Epoch` :returns: The time when the conjunction happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(1993, 10, 1.0) >>> conj = Mars.conjunction(epoch) >>> y, m, d = conj.get_date() >>> print(y) 1993 >>> print(m) 12 >>> print(round(d, 4)) 27.0898 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Mars' conjunction a = 2451707.414 b = 779.936104 m0 = 157.6047 m1 = 48.705244 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 corr = (0.3102 + t * (-0.0001 + t * 0.00001) + sin(m) * (9.7273 + t * (-0.0156 + t * 0.00001)) + cos(m) * (-18.3195 + t * (-0.0467 + t * 0.00009)) + sin(2.0 * m) * (-1.6488 + t * (-0.0133 + t * 0.00001)) + cos(2.0 * m) * (-2.6117 + t * (-0.002 + t * 0.00004)) + sin(3.0 * m) * (-0.6827 + t * (-0.0026 + t * 0.00001)) + cos(3.0 * m) * (0.0281 + t * (0.0035 + t * 0.00001)) + sin(4.0 * m) * (-0.0823 + t * (0.0006 + t * 0.00001)) + cos(4.0 * m) * (0.1584 + t * 0.0013) + sin(5.0 * m) * (0.027 + t * 0.0005) + cos(5.0 * m) * (0.0433)) to_return = jde0 + corr return Epoch(to_return) @staticmethod def opposition(epoch): """This method computes the time of the opposition closest to the given epoch. :param epoch: Epoch close to the desired opposition :type epoch: :py:class:`Epoch` :returns: The time when the opposition happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(2729, 10, 1.0) >>> oppo = Mars.opposition(epoch) >>> y, m, d = oppo.get_date() >>> print(y) 2729 >>> print(m) 9 >>> print(round(d, 4)) 9.1412 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Mars' opposition a = 2452097.382 b = 779.936104 m0 = 181.9573 m1 = 48.705244 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 corr = (-0.3088 + t * t * 0.00002 + sin(m) * (-17.6965 + t * (0.0363 + t * 0.00005)) + cos(m) * (18.3131 + t * (0.0467 - t * 0.00006)) + sin(2.0 * m) * (-0.2162 + t * (-0.0198 - t * 0.00001)) + cos(2.0 * m) * (-4.5028 + t * (-0.0019 + t * 0.00007)) + sin(3.0 * m) * (0.8987 + t * (0.0058 - t * 0.00002)) + cos(3.0 * m) * (0.7666 + t * (-0.005 - t * 0.00003)) + sin(4.0 * m) * (-0.3636 + t * (-0.0001 + t * 0.00002)) + cos(4.0 * m) * (0.0402 + t * 0.0032) + sin(5.0 * m) * (0.0737 - t * 0.0008) + cos(5.0 * m) * (-0.098 - t * 0.0011)) to_return = jde0 + corr return Epoch(to_return) @staticmethod def station_longitude_1(epoch): """This method computes the time of the 1st station in longitude (i.e. when the planet is stationary and begins to move westward - retrograde - among the starts) closest to the given epoch. :param epoch: Epoch close to the desired opposition :type epoch: :py:class:`Epoch` :returns: Time when the 1st station in longitude happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(1997, 3, 1.0) >>> sta1 = Mars.station_longitude_1(epoch) >>> y, m, d = sta1.get_date() >>> print(y) 1997 >>> print(m) 2 >>> print(round(d, 4)) 6.033 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Mars' opposition a = 2452097.382 b = 779.936104 m0 = 181.9573 m1 = 48.705244 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 corr = (-37.079 + t * (-0.0009 + t * 0.00002) + sin(m) * (-20.0651 + t * (0.0228 + t * 0.00004)) + cos(m) * (14.5205 + t * (0.0504 - t * 0.00001)) + sin(2.0 * m) * (1.1737 - t * 0.0169) + cos(2.0 * m) * (-4.255 + t * (-0.0075 + t * 0.00008)) + sin(3.0 * m) * (0.4897 + t * (0.0074 - t * 0.00001)) + cos(3.0 * m) * (1.1151 + t * (-0.0021 - t * 0.00005)) + sin(4.0 * m) * (-0.3636 + t * (-0.002 + t * 0.00001)) + cos(4.0 * m) * (-0.1769 + t * (0.0028 + t * 0.00002)) + sin(5.0 * m) * (0.1437 - t * 0.0004) + cos(5.0 * m) * (-0.0383 - t * 0.0016)) to_return = jde0 + corr return Epoch(to_return) @staticmethod def station_longitude_2(epoch): """This method computes the time of the 2nd station in longitude (i.e. when the planet is stationary and begins to move eastward - prograde - among the starts) closest to the given epoch. :param epoch: Epoch close to the desired opposition :type epoch: :py:class:`Epoch` :returns: Time when the 2nd station in longitude happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(1997, 3, 1.0) >>> sta2 = Mars.station_longitude_2(epoch) >>> y, m, d = sta2.get_date() >>> print(y) 1997 >>> print(m) 4 >>> print(round(d, 4)) 27.7553 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Mars' opposition a = 2452097.382 b = 779.936104 m0 = 181.9573 m1 = 48.705244 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 corr = (36.7191 + t * (0.0016 + t * 0.00003) + sin(m) * (-12.6163 + t * (0.0417 - t * 0.00001)) + cos(m) * (20.1218 + t * (0.0379 - t * 0.00006)) + sin(2.0 * m) * (-1.636 - t * 0.019) + cos(2.0 * m) * (-3.9657 + t * (0.0045 + t * 0.00007)) + sin(3.0 * m) * (1.1546 + t * (0.0029 - t * 0.00003)) + cos(3.0 * m) * (0.2888 + t * (-0.0073 - t * 0.00002)) + sin(4.0 * m) * (-0.3128 + t * (0.0017 + t * 0.00002)) + cos(4.0 * m) * (0.2513 + t * (0.0026 - t * 0.00002)) + sin(5.0 * m) * (-0.0021 - t * 0.0016) + cos(5.0 * m) * (-0.1497 - t * 0.0006)) to_return = jde0 + corr return Epoch(to_return) @staticmethod def perihelion_aphelion(epoch, perihelion=True): """This method computes the time of Perihelion (or Aphelion) closer to a given epoch. :param epoch: Epoch close to the desired Perihelion (or Aphelion) :type epoch: :py:class:`Epoch` :param peihelion: If True, the epoch of the closest Perihelion is computed, if False, the epoch of the closest Aphelion is found. :type bool: :returns: The epoch of the desired Perihelion (or Aphelion) :rtype: :py:class:`Epoch` :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2019, 2, 23.0) >>> e = Mars.perihelion_aphelion(epoch) >>> y, m, d, h, mi, s = e.get_full_date() >>> print(y) 2018 >>> print(m) 9 >>> print(d) 16 >>> print(h) 12 >>> epoch = Epoch(2032, 1, 1.0) >>> e = Mars.perihelion_aphelion(epoch, perihelion=False) >>> y, m, d, h, mi, s = e.get_full_date() >>> print(y) 2032 >>> print(m) 10 >>> print(d) 24 >>> print(h) 22 """ if not isinstance(epoch, Epoch): raise TypeError("Invalid input value") # First approximation k = 0.53166 * (epoch.year() - 2001.78) if perihelion: k = round(k) else: k = round(k + 0.5) - 0.5 jde = 2452195.026 + k * (686.9957857 - k * 0.0000001187) # Compute the epochs half a day before and after jde_before = jde - 0.5 jde_after = jde + 0.5 # Compute the Sun-Mars distance for each epoch l, b, r_b = Mars.geometric_heliocentric_position(Epoch(jde_before)) l, b, r = Mars.geometric_heliocentric_position(Epoch(jde)) l, b, r_a = Mars.geometric_heliocentric_position(Epoch(jde_after)) # Call an interpolation object m = Interpolation([jde_before, jde, jde_after], [r_b, r, r_a]) sol = m.minmax() return Epoch(sol) @staticmethod def passage_nodes(epoch, ascending=True): """This function computes the time of passage by the nodes (ascending or descending) of Mars, nearest to the given epoch. :param epoch: Epoch closest to the node passage :type epoch: :py:class:`Epoch` :param ascending: Whether the time of passage by the ascending (True) or descending (False) node will be computed :type ascending: bool :returns: Tuple containing: - Time of passage through the node (:py:class:`Epoch`) - Radius vector when passing through the node (in AU, float) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2019, 1, 1) >>> time, r = Mars.passage_nodes(epoch) >>> year, month, day = time.get_date() >>> print(year) 2019 >>> print(month) 1 >>> print(round(day, 1)) 15.2 >>> print(round(r, 4)) 1.4709 """ if not isinstance(epoch, Epoch): raise TypeError("Invalid input types") # Get the orbital parameters l, a, e, i, ome, arg = Mars.orbital_elements_mean_equinox(epoch) # Compute the time of passage through perihelion t = Mars.perihelion_aphelion(epoch) # Get the time of passage through the node time, r = passage_nodes_elliptic(arg, e, a, t, ascending) return time, r @staticmethod def magnitude(sun_dist, earth_dist, phase_angle): """This function computes the approximate magnitude of Mars. :param sun_dist: Distance from Mars to the Sun, in Astronomical Units :type sun_dist: float :param earth_dist: Distance from Mars to Earth, in Astronomical Units :type earth_dist: float :param phase_angle: Mars phase angle :type phase_angle: float, :py:class:`Angle` :returns: Mars' magnitude :rtype: float :raises: TypeError if input values are of wrong type. """ if not (isinstance(sun_dist, float) and isinstance(earth_dist, float) and isinstance(phase_angle, (float, Angle))): raise TypeError("Invalid input types") i = float(phase_angle) m = -1.3 + 5.0 * log10(sun_dist * earth_dist) + 0.01486 * i return round(m, 1) def main(): # Let's define a small helper function def print_me(msg, val): print("{}: {}".format(msg, val)) # Let's show some uses of Mars class print("\n" + 35 * "*") print("*** Use of Mars class") print(35 * "*" + "\n") # Let's now compute the heliocentric position for a given epoch epoch = Epoch(2018, 10, 27.0) lon, lat, r = Mars.geometric_heliocentric_position(epoch) print_me("Geometric Heliocentric Longitude", lon.to_positive()) print_me("Geometric Heliocentric Latitude", lat) print_me("Radius vector", r) print("") # Compute the geocentric position for 1992/12/20: epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Mars.geocentric_position(epoch) print_me("Right ascension", ra.ra_str(n_dec=1)) print_me("Declination", dec.dms_str(n_dec=1)) print_me("Elongation", elon.dms_str(n_dec=1)) print("") # Print mean orbital elements for Mars at 2065.6.24 epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Mars.orbital_elements_mean_equinox(epoch) print_me("Mean longitude of the planet", round(l, 6)) # 288.855211 print_me("Semimajor axis of the orbit (UA)", round(a, 8)) # 1.52367934 print_me("Eccentricity of the orbit", round(e, 7)) # 0.0934599 print_me("Inclination on plane of the ecliptic", round(i, 6)) # 1.849338 print_me("Longitude of the ascending node", round(ome, 5)) # 50.06365 print_me("Argument of the perihelion", round(arg, 6)) # 287.202108 print("") # Compute the time of the conjunction close to 1993/10/1 epoch = Epoch(1993, 10, 1.0) conj = Mars.conjunction(epoch) y, m, d = conj.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Conjunction date", date) # Compute the time of the opposition close to 2729/10/1 epoch = Epoch(2729, 10, 1.0) oppo = Mars.opposition(epoch) y, m, d = oppo.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Opposition date", date) print("") # Compute the time of the station in longitude #1 close to 1997/3/1 epoch = Epoch(1997, 3, 1.0) sta1 = Mars.station_longitude_1(epoch) y, m, d = sta1.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Date of station in longitude #1", date) # Compute the time of the station in longitude #2 close to 1997/3/1 epoch = Epoch(1997, 3, 1.0) sta2 = Mars.station_longitude_2(epoch) y, m, d = sta2.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Date of station in longitude #2", date) print("") # Find the epoch of the Aphelion closer to 2032/1/1 epoch = Epoch(2032, 1, 1.0) e = Mars.perihelion_aphelion(epoch, perihelion=False) y, m, d, h, mi, s = e.get_full_date() peri = str(y) + '/' + str(m) + '/' + str(d) + ' at ' + str(h) + ' hours' print_me("The Aphelion closest to 2032/1/1 will happen on", peri) print("") # Compute the time of passage through an ascending node epoch = Epoch(2019, 1, 1) time, r = Mars.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) print("Time of passage through ascending node: {}/{}/{}".format(y, m, d)) # 2019/1/15.2 print("Radius vector at ascending node: {}".format(round(r, 4))) # 1.4709 if __name__ == "__main__": main() pymeeus-0.3.6/pymeeus/Mercury.py000066400000000000000000013605261355545537700167360ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from math import sin, cos, tan, acos, atan2, sqrt, radians, log10 from pymeeus.Angle import Angle from pymeeus.Epoch import Epoch, JDE2000 from pymeeus.Interpolation import Interpolation from pymeeus.Coordinates import ( geometric_vsop_pos, apparent_vsop_pos, orbital_elements, nutation_longitude, true_obliquity, ecliptical2equatorial, passage_nodes_elliptic ) from pymeeus.Earth import Earth from pymeeus.Sun import Sun """ .. module:: Mercury :synopsis: Class to model Mercury planet :license: GNU Lesser General Public License v3 (LGPLv3) .. moduleauthor:: Dagoberto Salazar """ VSOP87_L = [ # L0 [ [440250710.144, 0.00000000000, 0.00000000000], [40989414.976, 1.48302034194, 26087.90314157420], [5046294.199, 4.47785489540, 52175.80628314840], [855346.843, 1.16520322351, 78263.70942472259], [165590.362, 4.11969163181, 104351.61256629678], [34561.897, 0.77930765817, 130439.51570787099], [7583.476, 3.71348400510, 156527.41884944518], [3559.740, 1.51202669419, 1109.37855209340], [1726.012, 0.35832239908, 182615.32199101939], [1803.463, 4.10333178410, 5661.33204915220], [1364.682, 4.59918318745, 27197.28169366760], [1589.923, 2.99510417815, 25028.52121138500], [1017.332, 0.88031439040, 31749.23519072640], [714.182, 1.54144865265, 24978.52458948080], [643.759, 5.30266110787, 21535.94964451540], [404.200, 3.28228847025, 208703.22513259359], [352.441, 5.24156297101, 20426.57109242200], [343.313, 5.76531885335, 955.59974160860], [339.214, 5.86327765000, 25558.21217647960], [451.137, 6.04989275289, 51116.42435295920], [325.335, 1.33674334780, 53285.18483524180], [259.587, 0.98732428184, 4551.95349705880], [345.212, 2.79211901539, 15874.61759536320], [272.947, 2.49451163975, 529.69096509460], [234.830, 0.26672118900, 11322.66409830440], [238.793, 0.11343953378, 1059.38193018920], [264.336, 3.91705094013, 57837.13833230060], [216.645, 0.65987207348, 13521.75144159140], [183.359, 2.62878670784, 27043.50288318280], [175.965, 4.53636829858, 51066.42773105500], [181.629, 2.43413502466, 25661.30495069820], [208.995, 2.09178234008, 47623.85278608960], [172.643, 2.45200164173, 24498.83024629040], [142.316, 3.36003948842, 37410.56723987860], [137.942, 0.29098447849, 10213.28554621100], [118.233, 2.78149786369, 77204.32749453338], [96.860, 6.20398202740, 234791.12827416777], [125.219, 3.72079804425, 39609.65458316560], [86.819, 2.64219349385, 51646.11531805379], [86.723, 1.95953042650, 46514.47423399620], [88.329, 5.41338795963, 26617.59410666880], [106.422, 4.20572116254, 19804.82729158280], [89.987, 5.85243631094, 41962.52073693740], [84.971, 4.33100364958, 79373.08797681599], [69.247, 4.19446437496, 19.66976089979], [63.463, 3.14700877722, 7238.67559160000], [68.493, 0.63424819267, 83925.04147387479], [69.729, 3.57201709671, 25132.30339996560], [59.481, 2.74692752000, 16983.99614745660], [64.830, 0.04762925810, 33326.57873317420], [55.376, 4.05312663019, 30639.85663863300], [54.442, 3.14331542453, 27147.28507176339], [47.560, 5.49722099211, 3.88133535800], [49.567, 3.98985863874, 6770.71060124560], [56.531, 5.11920557675, 73711.75592766379], [41.764, 5.64185159566, 53131.40602475700], [51.458, 5.47786463494, 50586.73338786459], [44.744, 1.22366857463, 77154.33087262919], [41.882, 5.19309298528, 6283.07584999140], [38.045, 2.43117327523, 12566.15169998280], [35.627, 0.81390126585, 32858.61374281979], [48.007, 5.49260554912, 51749.20809227239], [35.392, 3.36964859355, 36301.18868778519], [33.951, 2.78618091049, 14765.23904326980], [30.560, 5.84045074182, 43071.89928903080], [35.964, 1.42380838630, 2218.75710418680], [34.044, 0.47470299167, 65697.55772473979], [30.800, 5.77017310191, 103292.23063610759], [28.496, 0.65048992658, 426.59819087600], [26.215, 5.24158618719, 22645.32819660879], [26.253, 0.64807043102, 1589.07289528380], [29.538, 0.69771244088, 213.29909543800], [27.504, 0.98010127839, 45892.73043315699], [22.347, 5.65335125838, 77734.01845962799], [22.047, 4.93398225193, 72602.37737557039], [22.275, 2.17909842576, 52705.49724824299], [24.252, 4.39994170609, 7.11354700080], [26.751, 1.06145361792, 3442.57494496540], [23.656, 2.84168536986, 260879.03141574195], [22.908, 2.58462026514, 68050.42387851159], [27.086, 0.08501738669, 63498.47038145279], [22.247, 3.22418265191, 25448.00585526019], [17.803, 3.61202297483, 110012.94461544899], [22.407, 1.02520094825, 105460.99111839019], [17.576, 4.71742326981, 25874.60404613620], [18.586, 4.52709871258, 28306.66024576099], [14.176, 6.12394176563, 53235.18821333759], [14.186, 5.14246797066, 26068.23338067440], [17.244, 0.28394746813, 51220.20654153979], [17.176, 3.26084092971, 153.77881048480], [14.938, 1.83542009339, 99799.65906923798], [13.387, 0.76564655407, 56727.75978020720], [13.978, 2.30193139916, 76674.63652943878], [14.428, 0.96646356501, 26107.57290247399], [11.990, 6.20492907598, 18849.22754997420], [14.381, 1.90956715654, 23969.13928119580], [11.233, 2.04817126136, 32370.97899156560], [13.392, 4.51750784605, 26080.78959457339], [11.632, 2.38496860260, 79219.30916633119], [12.412, 2.22280944169, 77837.11123384659], [9.950, 2.04594448880, 48733.23133818299], [9.803, 2.26706433546, 26091.78447693220], [9.362, 5.44291958209, 38654.05484155699], [9.747, 3.83976857418, 26084.02180621620], [9.264, 4.02987000812, 467.96499035440], [8.961, 0.11062526114, 62389.09182935939], [11.543, 4.17789167759, 103242.23401420339], [11.146, 3.78292300417, 26301.20223701220], [9.677, 2.98527809776, 59414.48187474840], [8.977, 3.47888073089, 91785.46086631398], [9.664, 5.77941968495, 25938.33994443960], [8.855, 2.84672636028, 25035.63475838580], [8.181, 5.77857196635, 40853.14218484400], [8.033, 2.45692824195, 129380.13377768178], [8.343, 5.34499871294, 19317.19254032860], [7.425, 4.71160330390, 6.62855890001], [9.001, 6.23396256413, 25021.40766438420], [8.126, 1.12294634635, 26095.01668857500], [6.568, 3.66248946629, 26514.50133245020], [7.038, 3.99035923761, 71980.63357473118], [6.956, 1.62821260299, 23869.14603738740], [7.595, 0.18334396433, 12432.04265039780], [6.061, 3.67044794062, 27676.97603685800], [5.896, 5.57171141866, 94138.32702008578], [5.716, 5.18204203484, 78793.40038981718], [5.855, 2.14311779301, 20760.42703319140], [5.681, 1.60727624525, 98690.28051714458], [5.788, 2.35467492390, 103821.92160120218], [5.121, 3.77832929907, 58946.51688439399], [5.873, 5.76210244486, 286966.93455731618], [5.858, 6.12538452806, 26011.63707029860], [5.215, 3.29186833997, 38519.94579197200], [6.000, 0.00057044073, 51535.90899683439], [4.647, 0.29020584575, 136100.84775702318], [5.787, 4.44783057272, 19406.67828817460], [5.908, 4.12195491631, 29530.47808653960], [5.918, 3.98930701135, 131548.89425996438], [5.728, 3.02314979708, 89586.37352302698], [3.928, 4.81437933690, 125887.56221081219], [3.929, 2.48449041501, 69159.80243060499], [3.681, 2.80180999964, 79323.09135491178], [4.498, 1.50325539137, 51962.50718771040], [3.687, 5.33717753698, 102762.53967101299], [3.497, 1.85400531491, 52156.13652224860], [3.867, 1.25354714671, 54394.56338733519], [4.459, 4.88911997687, 50057.04242277000], [3.396, 3.73870967348, 82815.66292178139], [3.525, 6.07665337319, 25934.12433108940], [3.492, 1.28206984744, 52168.69273614759], [3.411, 6.13976263434, 639.89728631400], [4.395, 3.25475914760, 77308.10968311399], [2.990, 5.27323635392, 46848.33017476560], [3.218, 5.20938751579, 103925.01437542078], [2.899, 5.08451495112, 58458.88213313979], [3.708, 0.02713701028, 26241.68195205900], [2.991, 2.92278339368, 44937.13069154840], [3.177, 0.05753403864, 22747.29071487440], [3.163, 5.38713552769, 105307.21230790539], [3.556, 3.96231142071, 52195.47604404819], [2.787, 0.54704419913, 52389.10537858640], [2.458, 1.14904830408, 2333.19639287200], [2.492, 5.24922078791, 25668.41849769900], [2.409, 2.14208355028, 64741.95798313119], [2.509, 0.61934630416, 85034.42002596818], [2.416, 5.26204437192, 52179.68761850640], [2.296, 3.09900451546, 88476.99497093359], [2.357, 0.17742385045, 117873.36400788819], [3.012, 0.83689268367, 129330.13715577759], [2.421, 3.95913346049, 49.99662190420], [2.197, 2.56129546358, 3340.61242669980], [2.402, 0.55121112633, 52171.92494779040], [2.106, 5.41271503337, 155468.03691925600], [2.566, 3.00606194044, 51109.31080595839], [2.392, 0.17898534184, 103.09277421860], [2.737, 1.08192567668, 632.78373931320], [2.523, 5.90356438675, 51123.53789995999], [2.098, 2.47132069140, 66941.04532641819], [2.003, 3.75422326828, 16066.06586147480], [2.188, 1.18654376903, 2118.76386037840], [2.593, 2.55122032446, 25654.19140369739], [2.559, 1.18101453315, 45494.58142974879], [1.918, 0.79899605678, 26555.86813192860], [1.819, 0.69178943674, 98068.53671630539], [2.471, 2.55057179214, 52026.24308601380], [1.704, 0.36723577740, 52602.40447402440], [2.129, 2.66251948472, 18093.37469954999], [1.715, 4.62177464710, 49957.04917896160], [1.916, 5.83726462050, 85502.38501632259], [1.976, 3.57365896777, 24395.73747207180], [1.581, 0.36987184257, 53764.87917843220], [1.589, 1.33531241950, 114.43928868521], [2.042, 2.05385564074, 45405.09568190280], [1.539, 2.25468618977, 120226.23016165999], [1.525, 1.48231179113, 26094.53170047421], [2.055, 4.16315644175, 52182.91983014920], [1.829, 0.38846130335, 522.57741809380], [2.105, 4.04128506778, 25234.70675982219], [1.480, 1.87644604156, 104881.30353139139], [1.460, 1.01790185557, 25455.11940226100], [1.453, 0.34125222190, 1052.26838318840], [1.449, 3.39742463494, 24505.94379329119], [1.480, 4.55094492082, 124778.18365871879], [1.481, 3.62242942443, 149.56319713460], [1.516, 5.32327802440, 129909.82474277639], [1.594, 3.00887674765, 77623.81213840858], [1.927, 3.90378108197, 74.78159856730], [1.373, 4.32419381493, 80482.46652890938], [1.419, 3.90109225299, 7880.08915333899], [1.525, 4.62451312025, 26081.27458267419], [1.567, 0.65981123945, 157636.79740153858], [1.725, 4.40112128069, 316.39186965660], [1.263, 4.96320745251, 74821.13447975718], [1.472, 5.56006656586, 95247.70557217918], [1.315, 1.83254115004, 76144.94556434419], [1.439, 0.83286166370, 55618.38122811380], [1.355, 3.15837061982, 1066.49547719000], [1.224, 3.24032680768, 162188.75089859738], [1.390, 5.13745290383, 419.48464387520], [1.310, 5.28250636680, 25619.93815121980], [1.477, 2.40227455027, 313054.83769889036], [1.252, 5.65227031449, 26013.12154300690], [1.143, 0.38707356937, 42153.96900304900], [1.082, 2.56550728704, 26190.99591579279], [1.493, 2.89973504649, 52099.54021187280], [1.468, 5.71507791250, 24491.71669928959], [1.034, 1.49544294440, 151975.46535238638], [1.314, 5.91505351846, 115674.27666460119], [1.065, 3.61081835123, 206.18554843720], [1.053, 5.17996026320, 23754.70674870219], [0.964, 2.05264296353, 128850.44281258718], [1.032, 3.39114761061, 25551.09862947879], [1.065, 3.38225524038, 25863.55834587229], [1.153, 5.76498787983, 44181.27784112419], [0.960, 5.74774250678, 105410.99449648599], [1.137, 6.20919445956, 103396.01282468818], [0.914, 4.28855434634, 78256.59587772179], [0.917, 3.27543718918, 76.26607127560], [0.892, 4.82397571946, 78244.03966382280], [0.976, 4.86442946387, 25131.61398560359], [1.086, 0.73424633411, 33967.99229491319], [1.162, 4.52128441898, 78050.41032928458], [0.868, 2.78848256837, 52022.02747266360], [0.943, 4.09736853870, 26720.68688088739], [0.973, 4.54018615747, 24925.42843716640], [0.845, 5.05414707498, 25977.69682035479], [0.841, 1.89412486884, 130012.91751699499], [0.920, 3.02504494542, 52329.58509363319], [0.814, 3.15330668609, 48835.19385644859], [0.876, 0.41318857467, 108903.56606335558], [0.818, 1.61477924287, 40565.25432477420], [1.074, 1.37296024678, 23439.44831610119], [0.812, 2.82156935191, 25984.81036735560], [0.775, 2.86911510061, 26727.80042788820], [0.755, 5.44067645183, 24609.03656750980], [0.921, 4.72557901430, 14477.35118320000], [0.914, 4.70826349904, 6681.22485339960], [0.749, 1.80279541026, 84546.78527471398], [0.907, 0.64974692551, 78283.37918562238], [0.854, 5.05058435764, 307.55762096960], [0.766, 5.89942349817, 71025.03383312259], [0.713, 3.55192633098, 78477.00852016058], [0.718, 1.85061030321, 100909.03762133139], [0.858, 5.43959629234, 536.80451209540], [0.794, 3.77076518156, 155418.04029735178], [0.848, 2.08790526575, 131395.11544947958], [0.622, 3.14583461131, 143961.26714946239], [0.623, 4.58424507963, 9103.90699411760], [0.623, 5.10535773746, 90829.86112470538], [0.706, 4.19554833142, 71582.48457132299], [0.738, 0.15942404038, 24712.12934172840], [0.621, 1.32834420218, 3328.13565628019], [0.714, 1.88052234658, 2199.08734328700], [0.678, 6.01392909264, 77197.21394753258], [0.650, 5.51227348491, 29428.51556827400], [0.658, 2.03299256393, 51756.32163927320], [0.593, 6.06807779961, 114564.89811250778], [0.666, 0.70706334861, 26162.68474014150], [0.597, 5.15771478155, 333.85594076940], [0.616, 1.94902289932, 78267.59076008058], [0.774, 2.84206828086, 13655.86049117640], [0.698, 5.60747842278, 51742.09454527159], [0.557, 2.07529602574, 181555.94006083018], [0.547, 3.17747066781, 90695.75207512038], [0.541, 4.20816350943, 28421.09953444620], [0.639, 5.55908134374, 78114.14622758799], [0.529, 3.60209913515, 1911.19948321720], [0.620, 4.87816246784, 25771.51127191760], [0.569, 3.56250435364, 111122.32316754239], [0.510, 4.20331823730, 28206.66700195260], [0.539, 5.42639519551, 93028.94846799239], [0.659, 3.45407389663, 26610.48055966799], [0.613, 3.52133069078, 78259.82808936459], [0.594, 1.16299449628, 26404.29501123080], [0.576, 0.81617266730, 51322.60990139639], [0.497, 5.37540191935, 26037.90651966999], [0.663, 2.63246066036, 77211.44104153418], [0.487, 1.96691664683, 26507.38778544939], [0.474, 3.65243004234, 124156.43985787958], [0.550, 5.81040334783, 1731.12235293260], [0.472, 3.79351701945, 52643.77127350280], [0.467, 4.50175920356, 110.20632121940], [0.593, 3.04818872924, 12725.45343477500], [0.552, 0.68733268561, 26137.89976347840], [0.525, 0.87988157932, 78270.82297172339], [0.600, 0.33902061394, 50483.64061364600], [0.443, 3.33385484899, 78690.30761559859], [0.441, 1.31034191525, 76044.95232053580], [0.588, 2.37074288411, 121335.60871375339], [0.427, 0.14810668871, 50593.84693486539], [0.413, 3.33346664325, 79852.78232000639], [0.403, 5.20705536949, 146314.13330323418], [0.524, 5.02853960393, 71492.99882347698], [0.418, 5.99113644745, 103711.71527998279], [0.388, 4.44142037364, 29416.03879785439], [0.390, 4.02400157761, 51543.02254383520], [0.442, 2.37158178341, 111590.28815789679], [0.375, 4.47565026408, 52182.43484204840], [0.387, 4.83640155029, 130969.20667296558], [0.390, 1.20415517897, 150866.08680029298], [0.416, 3.60399872842, 183724.70054311279], [0.407, 0.52938530500, 433.71173787680], [0.439, 2.45401498182, 50579.61984086379], [0.412, 0.50186886239, 27999.10262479140], [0.391, 0.68517124695, 134.10904958500], [0.398, 1.99594942261, 155997.72788435058], [0.346, 3.40308148193, 27140.17152476259], [0.422, 5.83293462268, 38813.35657634920], [0.342, 0.83679406818, 25764.39772491679], [0.368, 3.80659045949, 81706.28436968799], [0.355, 1.99286044781, 1089.70879119360], [0.462, 3.33451630664, 25440.89230825939], [0.330, 0.37013669364, 26237.46633870879], [0.330, 6.19331560111, 188276.65404017159], [0.407, 2.17141736652, 641.41356173899], [0.321, 5.02532002650, 102232.84870591838], [0.330, 5.53086966080, 10021.83728009940], [0.336, 2.49163362426, 25344.91308104160], [0.381, 5.90928705861, 78187.44335344699], [0.316, 2.42532836233, 52101.02468458109], [0.331, 4.38897286971, 26202.34243025941], [0.401, 1.99380933624, 49842.60989027639], [0.422, 0.46556669940, 1.48447270830], [0.310, 6.18819197073, 27154.39861876420], [0.302, 4.68575942793, 25565.32572348040], [0.296, 1.70818196194, 25973.46385288896], [0.375, 5.31085497894, 339142.74084046460], [0.329, 5.32609571265, 853.19638175200], [0.299, 5.81101886868, 1692.16566950240], [0.378, 1.33745475273, 52169.17772424839], [0.293, 4.43993559835, 579.68758699880], [0.276, 4.45147472194, 178063.36849396059], [0.283, 6.19860164015, 25881.71759313700], [0.315, 1.95956643364, 51707.84129279399], [0.337, 4.21457120705, 34282.17847478280], [0.334, 3.00354887525, 23866.04650697719], [0.268, 1.34437493520, 35191.81013569180], [0.306, 5.94445231410, 64607.84893354619], [0.283, 0.96234220412, 1639.06951718800], [0.287, 1.28099267608, 51013.33157874059], [0.269, 0.55818949975, 3462.24470586520], [0.274, 5.61047457506, 52278.89905736699], [0.352, 0.49071599781, 26294.08869001139], [0.358, 1.23360990528, 1223.81784077861], [0.343, 4.29256939583, 49527.35145767539], [0.255, 5.03019684368, 154938.34595416137], [0.297, 2.87172991159, 129483.91596626239], [0.252, 0.09044630682, 13541.42120249119], [0.301, 1.22789205624, 104138.31347085879], [0.274, 3.67792692372, 68241.87214462319], [0.321, 2.49914111769, 141762.17980617538], [0.290, 1.02241335068, 8194.27533320860], [0.240, 0.99284920524, 104344.49901929598], [0.278, 0.53151576617, 949.17560896980], [0.249, 2.39787134441, 131498.89763806018], [0.274, 2.09560778105, 26624.70765366959], [0.240, 3.14668052954, 23976.25282819660], [0.239, 0.85198559240, 52808.59002246159], [0.266, 0.18324709351, 2168.76048228260], [0.226, 4.85701184113, 156100.82065856917], [0.228, 2.19799888298, 50696.93970908399], [0.231, 1.49522976308, 104331.94280539699], [0.245, 4.68642861263, 5327.47610838280], [0.281, 1.63579312063, 51219.51712717779], [0.219, 5.75893553103, 78109.93061423779], [0.233, 5.99853185125, 78417.48823520739], [0.227, 6.02396548637, 1581.95934828300], [0.218, 5.42819370607, 18207.81398823521], [0.220, 3.72017611382, 7994.52844202420], [0.271, 0.20833686608, 51639.00177105299], [0.244, 2.33639123341, 25138.72753260440], [0.254, 5.46143104532, 621.74380083920], [0.209, 0.01908528531, 26164.16921284980], [0.208, 6.18336687237, 74923.09699802278], [0.274, 0.15423898790, 51951.46148744649], [0.212, 1.95557421945, 735.87651353180], [0.236, 4.28368070837, 24079.34560241519], [0.206, 5.86972946528, 52072.71350892979], [0.201, 1.61226877070, 25241.82030682300], [0.235, 3.60446251088, 104371.28232719658], [0.229, 3.66187363672, 1596.18644228460], [0.198, 5.85298126352, 52815.70356946240], [0.220, 1.39541547612, 32769.12799497380], [0.229, 3.36265291664, 134991.46920492980], [0.192, 1.03510456065, 25867.49049913539], [0.199, 4.78126289270, 110634.68841628819], [0.191, 4.24110997660, 14.22709400160], [0.210, 5.44710702022, 147423.51185532758], [0.229, 0.76266531820, 220.41264243880], [0.185, 0.24752751791, 104564.91166173479], [0.211, 1.81826670820, 52065.59996192899], [0.182, 2.31946183497, 9384.84100807520], [0.207, 0.77329376239, 917.93028598180], [0.190, 0.91354241432, 97670.38771289718], [0.184, 3.32299343484, 30.32686100440], [0.209, 0.41150840785, 181505.94343892598], [0.225, 5.06158596891, 157483.01859105378], [0.184, 2.71529935065, 103285.11708910679], [0.191, 1.96528922573, 314.18617986960], [0.182, 4.30249539122, 1884.90116341740], [0.192, 4.82097876700, 126996.94076290558], [0.188, 0.98150502881, 26049.77010593640], [0.184, 0.67028697590, 106570.36967048359], [0.167, 5.71084692524, 96357.08412427259], [0.184, 2.33710037381, 77829.99768684579], [0.201, 2.57648669602, 97112.93697469679], [0.176, 3.20466399658, 39629.32434406539], [0.169, 2.30516098722, 101.96251826560], [0.163, 6.11134623776, 170049.17029103660], [0.195, 5.18276528052, 99024.13645791399], [0.165, 6.00583599609, 224.34479570190], [0.167, 3.75645242744, 52250.58788171570], [0.172, 4.28474997892, 25780.34552060460], [0.216, 3.20425967752, 50800.03248330259], [0.157, 1.61810971101, 24815.22211594700], [0.163, 1.77694235279, 116917.76426627958], [0.156, 1.94644057334, 26421.75908234360], [0.164, 3.81487619480, 77410.51304297059], [0.158, 4.95279229085, 35472.74414964940], [0.150, 5.03580916221, 207643.84320240439], [0.208, 2.59008696784, 27819.02549450680], [0.180, 5.62518388437, 103299.34418310839], [0.165, 2.25945126594, 104202.04936916218], [0.148, 3.94625893131, 24601.92302050899], [0.149, 4.49766341520, 956.28915597060], [0.157, 1.62995234425, 51859.41441349179], [0.166, 0.21228205353, 52698.38370124219], [0.151, 2.75061488385, 140652.80125408198], [0.161, 1.72952408524, 2648.45482547300], [0.169, 2.61298183547, 26086.41866886590], [0.170, 0.78905798191, 72936.23331633979], [0.177, 5.06009562295, 77844.22478084739], [0.142, 2.61984020842, 24292.64469785319], [0.150, 4.93124201089, 28286.99048486120], [0.175, 5.79468120941, 39743.76363275060], [0.163, 3.37032055762, 76571.54375522019], [0.150, 1.79967850988, 3.93215326310], [0.159, 4.90360163470, 104355.49390165479], [0.149, 4.20242344258, 52492.19815280499], [0.146, 1.31203861446, 26198.10946279360], [0.162, 2.25640253895, 55516.41870984820], [0.178, 1.81205070225, 26395.46076254379], [0.132, 0.90685777764, 54294.57014352679], [0.142, 1.70641940798, 92741.06060792258], [0.138, 0.64298043300, 86143.79857806159], [0.125, 0.32592941945, 150244.34299945380], [0.131, 0.91963253985, 54509.00267602040], [0.144, 4.17124383409, 24822.33566294780], [0.135, 3.86821614788, 104358.72611329758], [0.159, 4.72016316702, 4083.98850670440], [0.122, 2.08133407370, 52125.80966124419], [0.141, 2.08765477131, 119116.85160956658], [0.122, 5.01211051965, 52595.29092702359], [0.149, 0.38744219837, 487.63475125420], [0.121, 3.30215904574, 1263.15736257819], [0.138, 1.04671626049, 1083.08023229360], [0.157, 5.17018916622, 23962.02573419499], [0.163, 3.26593103179, 26089.38761428249], [0.130, 0.56779128434, 25936.85547173129], [0.160, 0.19385295261, 104347.73123093879], [0.116, 2.69818513122, 129799.61842155698], [0.113, 4.26323214388, 102132.85546210999], [0.115, 1.35196569742, 75615.25459924959], [0.135, 1.70032124143, 97580.90196505119], [0.121, 0.20372434486, 38.13303563780], [0.118, 0.49434134122, 78731.67441507700], [0.119, 5.54562725890, 76667.52298243798], [0.133, 4.67446352847, 2014.98167179780], [0.126, 6.24694138116, 636.99627202420], [0.120, 3.20442216756, 76681.75007643958], [0.125, 3.65255045892, 29550.14784743939], [0.118, 5.26052652437, 26729.31670331319], [0.113, 6.26688921593, 104778.21075717278], [0.134, 1.56524046563, 25939.82441714789], [0.114, 3.52566774494, 24356.78078864160], [0.120, 1.72596426067, 22759.76748529401], [0.145, 3.61638421570, 52225.80290505260], [0.107, 5.72285490406, 24176.70365835700], [0.112, 0.28882268029, 209812.60368468694], [0.121, 0.11234419157, 51528.79544983359], [0.120, 4.17769370414, 25754.04720080480], [0.105, 1.88137155058, 172402.03644480839], [0.106, 6.27133163237, 105940.68546158058], [0.104, 3.85061395100, 1478.86657406440], [0.108, 2.96292200098, 1375.77379984580], [0.132, 4.60210460022, 11610.55195837420], [0.114, 5.20612177122, 137678.19129947099], [0.107, 0.00557717441, 13362.44970679920], [0.101, 0.73934409276, 77630.92568540938], [0.097, 1.19155686364, 78270.33798362259], [0.100, 0.25974575144, 160.40736938481], [0.105, 0.03739853961, 180.07713028460], [0.114, 5.13609864972, 1135.67687189320], [0.101, 4.14323258440, 176953.98994186718], [0.095, 0.49488385937, 107794.18751126219], [0.095, 1.54869651436, 25973.50403466079], [0.100, 1.51228088427, 157057.10981453978], [0.106, 4.57237246234, 26073.67604757259], [0.094, 3.53697338405, 26521.61487945100], [0.091, 3.13017596287, 64901.25971792339], [0.088, 5.20234335205, 1485.29070670320], [0.116, 5.96693811684, 24182.43837663380], [0.099, 2.12002549240, 66653.15746634839], [0.105, 4.04764282865, 27726.97265876220], [0.094, 2.62198655221, 104275.34649502118], [0.106, 2.06629215696, 125112.03959948818], [0.088, 3.88240703310, 51852.30086649099], [0.085, 2.83285123847, 214364.55718174577], [0.083, 5.44599307753, 78188.92782615528], [0.083, 3.35497157412, 52325.36948028299], [0.104, 4.95116515346, 182085.63102592478], [0.110, 6.04814955763, 49953.94964855139], [0.093, 1.00014028766, 9745.32055585660], [0.081, 4.03821735964, 132658.27281205778], [0.084, 0.11234538521, 53228.07466633679], [0.094, 5.55962830464, 51432.81622261579], [0.080, 6.13595673095, 137210.22630911658], [0.080, 2.72256616799, 25042.74830538660], [0.080, 4.29137248560, 77101.23472031478], [0.085, 0.97100574775, 25788.77674730500], [0.082, 1.89501710792, 128320.75184749259], [0.077, 1.16185579398, 204151.27163553477], [0.092, 4.44154858356, 26091.83529483729], [0.078, 3.73813140716, 26222.01219115920], [0.076, 4.28770981047, 86457.98475793119], [0.076, 2.88868549481, 53242.30176033840], [0.104, 4.32540467122, 23888.81579828719], [0.094, 4.32453647728, 78257.08086582259], [0.074, 4.96325610801, 26823.77965510599], [0.077, 1.07428657729, 50167.24874398939], [0.075, 2.56662960973, 19202.75325164339], [0.099, 6.00141798836, 19958.60610206760], [0.087, 3.55579419373, 52381.99183158559], [0.078, 1.00822618263, 25352.02662804239], [0.088, 3.52269656514, 60055.89543648739], [0.078, 5.82066892741, 155571.81910783658], [0.076, 2.96046756402, 25024.58905812189], [0.076, 4.24421235710, 130226.21661243298], [0.076, 2.22645638378, 36109.74042167360], [0.072, 2.23348468194, 173511.41499690176], [0.079, 1.13204602827, 52290.24557183361], [0.074, 1.55328520138, 51653.22886505459], [0.071, 2.26106298981, 159.30173479220], [0.073, 2.05345178568, 26941.09952332620], [0.095, 1.93550514722, 365230.64398203877], [0.070, 4.74315846161, 52061.36699446317], [0.085, 1.31607641314, 26667.59072857300], [0.076, 5.58726680703, 13675.53025207620], [0.092, 3.24599684677, 28256.66362385679], [0.067, 1.15071488774, 55503.94193942859], [0.068, 2.92993581219, 23919.14265929160], [0.067, 1.77035470445, 181026.24909573558], [0.066, 2.59648990707, 27780.06881107659], [0.082, 5.36282814327, 167850.08294774959], [0.064, 3.99165913279, 130432.40216087017], [0.069, 5.13777502156, 52712.61079524379], [0.063, 0.54837259436, 34082.43158359840], [0.065, 3.89976847376, 27005.83342755599], [0.073, 6.19252091852, 50064.15596977079], [0.066, 1.91671959572, 102018.41617342478], [0.082, 0.87824651640, 25446.48957983520], [0.063, 3.87624799927, 78896.49316403578], [0.062, 1.55377407031, 182188.72380014337], [0.062, 4.71223563105, 103.78218858060], [0.087, 3.57434964589, 27037.07875054399], [0.077, 3.43626093365, 54087.00576636560], [0.078, 4.92073893807, 77795.74443436819], [0.071, 2.76139796167, 11.04570026390], [0.064, 5.37974575072, 51226.63067417859], [0.082, 3.78003355754, 26308.31578401300], [0.062, 2.70733081732, 104505.39137678158], [0.071, 5.05097183202, 27177.61193276780], [0.070, 4.29342266024, 27311.72098235281], [0.068, 2.34136362165, 78366.80219894118], [0.060, 4.90888421377, 25508.21555457540], [0.068, 6.04917764171, 647.01083331480], [0.058, 2.46745404038, 104197.83375581198], [0.067, 2.96573339768, 51969.62073471119], [0.066, 5.33871332672, 157586.80077963436], [0.058, 2.17528608366, 323.50541665740], [0.062, 4.44991435917, 130419.84594697120], [0.063, 0.27396211581, 130459.18546877075], [0.063, 5.22327184571, 76784.84285065818], [0.064, 4.64108529425, 61279.71327726600], [0.062, 1.84001159422, 183570.92173262799], [0.055, 1.66692917947, 31415.37924995700], [0.058, 4.06522187846, 32132.13172294960], [0.057, 2.07569387080, 17893.62780836560], [0.055, 2.49038254003, 22625.65843570900], [0.077, 6.17301946895, 25032.45336464809], [0.068, 4.68765980625, 77307.42026875199], [0.054, 4.63708190151, 51329.72344839720], [0.055, 0.21233757772, 2221.85663459700], [0.068, 2.36358626958, 25953.79409198919], [0.053, 2.88564903323, 101011.00013959699], [0.062, 1.19998944516, 26083.97098831109], [0.054, 3.90599349467, 123758.29085447139], [0.052, 2.60595997150, 78160.61665050399], [0.072, 0.83460657204, 22909.75735100660], [0.066, 3.17005690509, 78039.36462902068], [0.052, 2.13323028898, 44295.71712980940], [0.061, 1.63440457571, 61.72597474020], [0.053, 2.00748586733, 24448.83362438620], [0.051, 2.50978165702, 78903.60671103658], [0.051, 3.22110952745, 130652.81480330898], [0.060, 6.23105854697, 76887.93562487679], [0.066, 3.23596712512, 77726.90491262719], [0.059, 1.53485505891, 6044.22858137540], [0.059, 1.10559326249, 26102.13023557580], [0.060, 1.08408977503, 27972.80430499159], [0.049, 2.24548271996, 425.90877651400], [0.055, 3.33645161611, 207593.84658050019], [0.067, 0.59579109206, 94329.77528619739], [0.056, 4.05652507832, 26010.15259759030], [0.056, 1.49670493057, 136722.59155786238], [0.049, 4.72236375377, 5193.36705879780], [0.049, 2.99400480872, 52252.07235442399], [0.049, 4.15104806247, 51955.39364070959], [0.050, 5.31916782876, 103917.90082841998], [0.051, 4.32173710361, 58857.03113654799], [0.050, 0.42233074233, 27684.08958385880], [0.066, 5.06498799279, 73.29712585900], [0.048, 0.80745705976, 2703.61615467560], [0.048, 0.16882113823, 24918.31489016559], [0.049, 5.71984539931, 50380.54783942739], [0.061, 0.05575706789, 161079.37234650398], [0.047, 5.70016549134, 129373.02023068098], [0.048, 4.71754734372, 50903.12525752120], [0.050, 0.77120384679, 50689.82616208319], [0.050, 4.75557775921, 143005.66740785379], [0.046, 1.03065291695, 51868.24866217880], [0.046, 4.07474771884, 52137.67324751059], [0.045, 2.75496032307, 196137.07343261078], [0.056, 1.48667124221, 30171.89164827860], [0.047, 3.49884159195, 26575.53789282839], [0.048, 2.04489119557, 27573.19384827740], [0.046, 1.96812600979, 27223.58001346740], [0.044, 0.58466186909, 1243.48760167840], [0.043, 0.48582749664, 78338.49102328988], [0.046, 0.10663541022, 102659.44689679438], [0.049, 1.92223535597, 50049.92887576919], [0.047, 5.34811633125, 846.08283475120], [0.046, 2.32911930278, 129387.24732468258], [0.056, 1.46049477175, 28102.88481337200], [0.050, 5.62967300375, 53906.92863608099], [0.046, 5.09770472011, 151199.94274106238], [0.043, 2.30154744958, 26709.64694241340], [0.051, 2.88082546361, 27669.86248985719], [0.055, 5.55849793732, 123200.84011627098], [0.044, 0.48527820908, 80174.90890793978], [0.048, 2.59296696271, 6720.71397934140], [0.044, 0.24824938054, 742.99006053260], [0.045, 2.48949498300, 65831.66677432480], [0.045, 4.86503115391, 52483.36390411799], [0.041, 5.23419163545, 130289.95251073639], [0.041, 0.91885509326, 50910.23880452200], [0.044, 3.12424163301, 26126.03617721200], [0.042, 5.66855218492, 166740.70439565618], [0.039, 5.01739570944, 26402.08932144380], [0.038, 0.02313645928, 2111.65031337760], [0.049, 4.11697361923, 25227.59321282139], [0.038, 0.09191461136, 26118.23000257860], [0.038, 5.03146092380, 24203.00197815680], [0.051, 4.86305906640, 78153.50310350319], [0.038, 0.13003640396, 27351.06050415239], [0.038, 1.34984785206, 70269.18098269838], [0.038, 0.52032944033, 103498.41618454478], [0.040, 5.66117959398, 52174.32181044009], [0.038, 0.92511339052, 112231.70171963578], [0.051, 4.15223165568, 27170.98337386779], [0.037, 1.67308781547, 54374.89362643540], [0.038, 6.26592309401, 202.25339517410], [0.036, 3.23911910889, 176332.24614102798], [0.037, 1.90730795656, 3308.46589538040], [0.037, 3.03203144287, 76041.85279012559], [0.038, 3.17519743409, 78786.28684281638], [0.035, 3.90697621183, 80382.47328510099], [0.038, 2.00924199028, 1162.47470440780], [0.036, 1.80080871248, 19336.86230122839], [0.035, 4.66254825701, 77947.31755506598], [0.043, 1.57972686428, 130443.39704322898], [0.035, 0.74694549648, 25985.94062330859], [0.040, 2.11415671365, 3492.57156686960], [0.038, 4.65738726744, 22003.91463486980], [0.037, 0.77571838110, 16703.06213349900], [0.035, 5.00128829727, 52509.66222391780], [0.047, 0.02275392308, 25014.29411738339], [0.043, 3.15273137814, 130435.63437251298], [0.034, 3.05681901713, 2820.83114412620], [0.037, 4.68248751145, 123668.80510662538], [0.034, 5.73615227262, 45290.65639321759], [0.040, 2.76893017076, 50270.34151820800], [0.038, 6.01229835605, 26057.57628056979], [0.034, 6.25090722416, 21716.02677480000], [0.034, 0.95587257158, 78580.10129437919], [0.033, 3.35217476663, 235900.50682626115], [0.032, 2.35469869139, 2383.19301477620], [0.037, 3.80938441515, 8989.46770543239], [0.043, 2.27476214717, 25169.97285559240], [0.032, 4.14291864821, 2686.72209454120], [0.037, 0.04571185840, 52177.29075585669], [0.032, 1.53610678036, 233731.74634397859], [0.038, 3.98892541543, 1300.82681820500], [0.042, 5.10993958059, 145204.75475114078], [0.033, 2.91530565997, 130866.11389874699], [0.043, 1.77793563831, 103932.12792242158], [0.035, 5.35726747093, 26189.86565983980], [0.035, 0.65119403092, 1535.97674296940], [0.044, 3.08976502022, 8014.19820292400], [0.031, 0.90638189649, 128220.75860368418], [0.042, 3.37905134636, 23549.65463732060], [0.038, 0.38543000653, 515.46387109300], [0.039, 1.08681725797, 25773.71696170459], [0.036, 4.30448026071, 52286.01260436779], [0.031, 5.08183330827, 78213.71280281838], [0.038, 3.16432629306, 91805.13062721379], [0.039, 1.47494002110, 4022.26253196420], [0.042, 0.60192138814, 24388.62392507099], [0.037, 3.23606285260, 28791.51929624980], [0.040, 0.26646931277, 78313.70604662679], [0.036, 4.38588497247, 81591.84508100279], [0.035, 0.17056359345, 6129.29703950660], [0.030, 2.50459470137, 102755.42612401219], [0.040, 4.58870970073, 26076.85744131030], [0.040, 4.09419634913, 35833.22369743080], [0.030, 4.79837659477, 28736.35796704720], [0.032, 3.42931668217, 24402.85101907260], [0.029, 2.52212486456, 1353.74874501680], [0.030, 4.69352116507, 24072.92146977640], [0.029, 5.31070299201, 199599.31813847594], [0.030, 3.20350587499, 23762.95373275860], [0.036, 2.44362166097, 23336.35554188260], [0.028, 2.77231585227, 26312.24793727610], [0.028, 0.26775880889, 50444.68393021580], [0.029, 3.50869792127, 15406.65260500879], [0.030, 2.95993198433, 132028.58860315479], [0.028, 3.41609673663, 133882.09065283637], [0.033, 2.39929042753, 61560.64729122359], [0.032, 1.34796958829, 37698.45509994840], [0.028, 1.75026246832, 78683.19406859778], [0.033, 4.51080770987, 3776.43088573480], [0.032, 5.00665307820, 29396.36903695460], [0.037, 5.23066729388, 81604.32185142238], [0.028, 0.99927277404, 1322.67764753140], [0.029, 2.00159770770, 25004.82290928060], [0.035, 4.69198477732, 22065.64060961000], [0.029, 3.80697601044, 24513.05734029200], [0.032, 4.69401466159, 27250.37784598199], [0.031, 5.86715902954, 5815.11085963699], [0.027, 1.26702311366, 27044.19229754480], [0.030, 3.44351888035, 104819.57755665119], [0.028, 5.36078058708, 412.37109687440], [0.028, 5.73893599832, 240452.46032331997], [0.034, 5.19151430726, 2008.55753915900], [0.030, 1.73241634839, 163766.09444104519], [0.027, 5.30425762252, 24864.08530079559], [0.032, 1.12362303179, 625.67019231240], [0.030, 2.04171272941, 193937.98608932379], [0.032, 4.78663079749, 75930.51303185058], [0.030, 4.46891226150, 25450.90686955000], [0.032, 4.73906176949, 48847.67062686820], [0.027, 4.12514822062, 104358.24112519680], [0.026, 0.67609297065, 35077.37084700659], [0.033, 2.69651735555, 25647.07785669659], [0.026, 4.94767789631, 209658.82487420217], [0.035, 3.86705432105, 25466.15934073500], [0.026, 4.79912409089, 198489.93958638259], [0.026, 1.59971503257, 31281.27020037200], [0.026, 1.20008223797, 153084.84390447979], [0.026, 3.02443658098, 26724.89941359840], [0.025, 2.03567222767, 52817.21984488739], [0.027, 1.23585314301, 53.09615231440], [0.026, 5.53069670975, 25657.37279743509], [0.028, 0.93845909288, 158746.17595363196], [0.025, 1.46977800361, 1272.68102562720], [0.026, 2.45961936761, 181659.72224941078], [0.034, 2.39774146758, 39763.43339365039], [0.029, 6.23821353511, 102769.65321801379], [0.029, 4.90111965589, 116783.65521669458], [0.025, 3.02186465541, 39450.35284837340], [0.027, 3.77575599741, 103718.82882698359], [0.027, 3.92125046850, 80596.90581759460], [0.023, 0.26970481255, 52609.51802102519], [0.023, 5.98846059571, 27463.67694142000], [0.025, 1.22968381596, 49976.71893986139], [0.023, 5.57437029749, 155887.52156313116], [0.023, 5.99507985020, 50007.04580086580], [0.023, 1.44496012077, 5687.63036895200], [0.024, 0.46516912647, 130446.62925487179], [0.023, 0.94331115897, 28774.62523611540], [0.027, 0.80529908381, 2698.45144737720], [0.027, 0.27124610516, 1265.56747862640], [0.023, 0.89381228793, 156314.11975400720], [0.023, 2.96257779899, 12546.48193908300], [0.022, 5.42940490576, 1485.98012106520], [0.022, 1.03839316349, 103189.13786188899], [0.023, 1.35379542887, 52161.57918914679], [0.026, 6.01331218379, 122444.98726584678], [0.030, 2.66518277698, 25600.26839032000], [0.023, 4.07521268525, 230239.17477710897], [0.024, 0.64355332403, 203041.89308344139], [0.022, 1.39463873909, 952.07662325960], [0.023, 1.98852683178, 7392.45440208480], [0.028, 1.37381287166, 309.27832265580], [0.022, 2.15165551798, 104276.83096772949], [0.025, 4.93854060665, 101703.15774082378], [0.023, 3.12039946936, 77616.69859140778], [0.028, 0.40745832322, 55638.05098901359], [0.024, 0.44199264440, 24285.53115085240], [0.023, 1.33496997363, 163298.12945069079], [0.021, 4.01469381260, 120417.67842777158], [0.024, 0.63196904603, 77940.20400806518], [0.022, 5.70851933792, 2840.50090502600], [0.024, 4.45840068641, 183145.01295611399], [0.023, 3.62152465067, 5635.03372935240], [0.021, 3.04515069387, 9123.57675501740], [0.021, 1.96886020684, 177287.84588263658], [0.023, 0.59040250365, 25672.35065096209], [0.021, 3.40810269373, 129586.31932611899], [0.021, 3.09046433472, 26267.98027185880], [0.024, 1.94276984966, 183674.70392120857], [0.021, 3.98455358233, 6191.02301424680], [0.028, 0.93414213433, 51841.95034237900], [0.020, 4.59348701559, 52061.40717623499], [0.027, 4.61439897742, 52027.72755872209], [0.020, 0.48128544481, 52309.91533273340], [0.020, 3.31281154655, 26248.31051095900], [0.023, 1.67970146036, 23113.29318696320], [0.020, 2.44057473344, 50264.60679993120], [0.025, 5.43422956232, 2.96894541660], [0.026, 3.61410457829, 52024.75861330549], [0.020, 0.60321200025, 138319.60486120995], [0.020, 2.62628682595, 164.43591058941], [0.020, 0.65324774200, 156520.30530244438], [0.027, 4.74395008878, 391318.54712361295], [0.021, 4.45035214874, 25862.07387316400], [0.021, 1.54947465846, 148.07872442630], [0.027, 5.13202499307, 12382.04602849360], [0.020, 0.68567124507, 42.88307490340], [0.019, 1.92072938625, 78800.51393681798], [0.027, 2.48188330716, 25665.23710396129], [0.027, 1.27457874648, 7860.41939243920], [0.022, 2.29809961839, 25865.04281858059], [0.019, 4.09473921906, 76255.15188556358], [0.020, 4.67174071386, 207114.15223730978], [0.022, 2.63315058351, 7768.36655669460], [0.020, 1.24271716091, 52179.73843641149], [0.020, 6.11431848045, 24824.74577899600], [0.023, 4.18071159026, 2125.87740737920], [0.021, 0.74169140667, 1795.25844372100], [0.019, 2.66558529381, 191.44826611160], [0.020, 3.22150044915, 156547.08861034497], [0.021, 6.18753985884, 104127.26777059489], [0.020, 5.52295053123, 130363.24963659538], [0.021, 3.90684382108, 51534.39272140940], [0.020, 3.10019509540, 838.96928775040], [0.025, 5.79466888187, 26098.94884183810], [0.021, 6.23594952039, 103814.80805420138], [0.019, 5.79715725254, 26279.35140768579], [0.022, 0.71256272418, 959.12285995760], [0.021, 1.39589766697, 103395.32341032618], [0.018, 1.52837590084, 107.30530692960], [0.019, 0.60262102760, 27566.76971563859], [0.025, 0.78252166479, 53814.87580033639], [0.025, 2.29282750485, 77520.71936418998], [0.018, 2.11606037402, 26.29831979980], [0.024, 1.60264230919, 208173.53416749899], [0.021, 6.27983567062, 54344.56676543099], [0.018, 2.13288203799, 77314.53381575279], [0.019, 5.02228884604, 26114.20146137400], [0.020, 5.52520867267, 9591.54174537180], [0.017, 4.12183264175, 24602.61243487099], [0.022, 0.51026067819, 95.97922721780], [0.017, 4.48889832500, 208276.62694171758], [0.017, 3.94937058994, 25459.05155552409], [0.017, 5.29323037427, 76137.83201734339], [0.019, 3.67294881327, 6885.14988993081], [0.018, 1.02433476262, 53399.62412392700], [0.020, 2.79332004367, 25927.49577218939], [0.018, 5.83348216244, 293.41078437720], [0.024, 3.00078431660, 23446.56186310200], [0.020, 1.11172116756, 156507.74908854539], [0.017, 0.56645607004, 104984.39630560997], [0.020, 4.48412602835, 52755.49387014719], [0.019, 5.18601674976, 2544.67263689240], [0.023, 4.19936868759, 24952.22626968100], [0.017, 2.06473217893, 130005.80396999417], [0.019, 0.55214472899, 52396.21892558720], [0.019, 1.79653943961, 89.48574784600], [0.022, 3.72989530019, 48997.66049258080], [0.020, 5.93006048006, 11852.35506339900], [0.018, 6.24870732707, 233681.74972207437], [0.021, 3.01566725550, 25907.82601128960], [0.016, 1.73390726659, 52911.68279668019], [0.017, 3.23716624064, 117893.03376878797], [0.022, 0.46092942812, 19367.18916223280], [0.016, 5.06429474773, 43981.53094993980], [0.021, 1.13950009268, 25650.25925043430], [0.019, 3.19311280972, 47803.92991637420], [0.021, 4.64218889935, 112545.88789950538], [0.017, 2.96216633831, 102975.83876645098], [0.016, 0.60226326404, 149846.19399604559], [0.016, 5.86803075725, 127098.90328117118], [0.018, 1.20391834667, 87367.61641884019], [0.016, 4.53670173929, 2667.05233364140], [0.017, 5.77652308057, 51130.65144696079], [0.018, 5.87706432040, 78057.52387628538], [0.019, 5.24206436649, 60370.08161635699], [0.016, 1.31713012946, 78843.39701172139], [0.019, 5.33584429695, 104454.70534051539], [0.015, 4.52789928708, 25984.12095299360], [0.016, 4.12162585450, 189386.03259226496], [0.017, 3.51115348265, 45455.09230380700], [0.015, 1.65943772958, 51596.11869614960], [0.015, 4.28577331083, 117.31986822020], [0.016, 0.28814169191, 78469.89497315978], [0.015, 0.64079475058, 53093.73656913019], [0.020, 5.58915267196, 1423.56473196300], [0.015, 6.19871258212, 156740.71794488319], [0.015, 2.05066243688, 16342.58258571760], [0.018, 0.93517825293, 104344.98400739678], [0.015, 4.64013294295, 2974.60995461100], [0.015, 2.61010767947, 7830.09253143480], [0.015, 2.60585262136, 151.04766984290], [0.018, 0.92309429794, 1577.34354244780], [0.017, 1.36952124854, 78115.63070029629], [0.018, 1.95659679786, 102872.74599223239], [0.017, 5.37350443158, 25384.26995695679], [0.015, 2.12952532360, 128106.31931499895], [0.018, 4.06290374391, 51439.92976961659], [0.015, 4.32808623679, 77741.13200662879], [0.014, 3.46389680879, 104426.39416486409], [0.020, 5.15870331048, 154408.65498906677], [0.014, 4.53089771582, 57503.28239153120], [0.016, 3.64720066701, 24072.23205541439], [0.015, 2.96793644807, 24719.24288872919], [0.014, 0.79165737765, 25928.60140678200], [0.014, 4.36570321274, 78249.48233072099], [0.014, 5.35774038541, 896.07945665540], [0.014, 5.57146329055, 104248.51979207818], [0.014, 6.22061869408, 104874.18998439058], [0.015, 0.66056760946, 77622.29586298359], [0.017, 4.39404084250, 162810.49469943656], [0.017, 4.01700926317, 51876.67988887919], [0.014, 5.96074966457, 4371.87636677420], [0.014, 5.51412243126, 48713.56157728320], [0.014, 5.04161806976, 53029.00266490040], [0.014, 3.09979574700, 128747.35003836859], [0.019, 4.61702547610, 16028.39640584800], [0.017, 2.09526572835, 52277.76880141400], [0.014, 1.51516908270, 52164.76058288449], [0.014, 2.76589411039, 26734.91397488900], [0.017, 5.31477308011, 103608.62250576419], [0.013, 6.04881581356, 52812.80255517260], [0.015, 0.92065367569, 256327.07791868312], [0.016, 2.76936523753, 46046.50924364180], [0.019, 4.91561037107, 277.03499374140], [0.015, 1.87874008695, 26161.20026743319], [0.013, 1.48593089360, 54824.26110862140], [0.015, 1.37228117638, 18043.37807764579], [0.018, 2.95472168569, 76152.05911134499], [0.017, 1.57020520015, 104241.40624507738], [0.018, 2.97721991956, 187167.27548807819], [0.013, 3.49902133309, 78397.81847430758], [0.018, 2.18386661425, 149288.74325784517], [0.017, 5.38851170070, 52041.69723356339], [0.013, 6.26956660770, 90989.16285949759], [0.013, 1.13674691740, 237009.88537835455], [0.014, 2.18322393546, 225687.22128005017], [0.013, 6.15204536524, 35211.47989659159], [0.017, 1.32178768936, 106262.81204951399], [0.014, 1.73651187343, 2912.88397987080], [0.013, 0.84907711504, 102343.05502713779], [0.013, 2.39970220380, 155460.92337225520], [0.017, 4.15374414668, 26014.60601571519], [0.013, 0.72484082297, 153878.96402397219], [0.013, 3.04907288197, 80432.46990700519], [0.013, 1.37316946035, 104035.22069664019], [0.015, 3.12808384217, 173.44857138459], [0.013, 2.93774353095, 533.62311835770], [0.013, 2.24535401962, 246113.79237247215], [0.016, 0.39665846969, 78112.66175487968], [0.015, 4.75053341616, 130020.03106399579], [0.016, 0.76587038276, 557.45073820040], [0.015, 6.01045796437, 51112.49219969609], [0.015, 0.93774708323, 461.33643145440], [0.012, 4.03988032603, 77956.15180375299], [0.015, 1.43833460468, 169093.57054942797], [0.014, 2.14749108820, 78129.60037513758], [0.012, 4.57098987537, 6751.04084034580], [0.017, 0.64086933600, 5131.64108405760], [0.013, 5.02936180992, 144916.86689107097], [0.016, 3.65387335184, 104028.10714963939], [0.013, 3.37789792164, 79212.88503369238], [0.013, 1.38408689559, 4885.80943782820], [0.012, 4.95862705668, 50536.73676596039], [0.014, 2.05563043425, 107692.22499299659], [0.012, 3.93772391530, 104668.00443595338], [0.014, 3.26407683636, 104401.60918820098], [0.014, 2.94492731309, 51120.35650622229], [0.013, 5.30554859990, 155475.15046625677], [0.014, 5.14050840336, 726.48201987020], [0.012, 2.41433841278, 24551.92639860479], [0.013, 3.02673254226, 182828.62108645737], [0.012, 2.94598982599, 5039.58824831300], [0.013, 3.57478000552, 78484.12206716138], [0.013, 2.94343799803, 79315.97780791098], [0.012, 5.17024351037, 103402.43695732698], [0.012, 3.19152649116, 28309.75977617119], [0.012, 6.16852058989, 78413.27262185719], [0.013, 4.35939831008, 133767.65136415116], [0.013, 5.96217383792, 2538.24850425360], [0.012, 2.97455363125, 26290.15653674829], [0.012, 1.94777069809, 156377.85565231059], [0.012, 1.81926611664, 70069.43409151399], [0.013, 1.24212367708, 4437.51420837359], [0.012, 0.53775842570, 106470.37642667518], [0.012, 4.06029507610, 79487.52726550119], [0.012, 1.39982040688, 77417.62658997139], [0.012, 5.70094378358, 79330.20490191258], [0.012, 2.36617272843, 79994.83177765518], [0.012, 4.77094162628, 78999.58593825439], [0.012, 5.23189289937, 26411.40855823160], [0.014, 2.99800402366, 1073.60902419080], [0.012, 6.15146193785, 103704.60173298199], [0.012, 1.58617824624, 78571.26704569219], [0.013, 0.37894193721, 53124.98189211819], [0.012, 3.86549077079, 189853.99758261937], [0.013, 4.70785515154, 234261.43730907317], [0.012, 4.54097648940, 56259.79478985279], [0.012, 1.32257018476, 149756.70824819960], [0.011, 5.69779744921, 222224.97657418498], [0.012, 0.60900120711, 2751.54759969160], [0.011, 0.79876219873, 78225.57638908479], [0.013, 2.57664086838, 1116.49209909420], [0.012, 0.86411055123, 78043.29678228378], [0.011, 4.02869363295, 263097.78851992876], [0.011, 3.97587600566, 76998.14194609619], [0.011, 5.29433199334, 52797.55008398759], [0.013, 5.69550284497, 51688.17153189420], [0.015, 3.91946731118, 27665.24668402200], [0.013, 4.89334198524, 45424.76544280259], [0.012, 2.33066141026, 130336.42293365239], [0.012, 2.97893637259, 25885.64974640009], [0.012, 0.33532325982, 41494.55574658299], [0.011, 1.81390783997, 104301.61594439259], [0.011, 3.67540306066, 79181.63971070439], [0.013, 1.92207364074, 2962.88060177500], [0.012, 4.51335455691, 54190.78795494619], [0.012, 5.89140397220, 156954.01704032117], [0.012, 5.80412470555, 72134.41238521598], [0.011, 2.54446138738, 26183.88236879199], [0.011, 0.57810940674, 142871.55835826878], [0.014, 1.49797486148, 103883.64757594238], [0.011, 0.25563634033, 52663.44103440259], [0.011, 4.34226157432, 63786.35824152260], [0.011, 5.79546155779, 76358.24465978218], [0.011, 5.43581617959, 4398.17468657401], [0.010, 3.45435285202, 26830.89320210680], [0.010, 1.05961891051, 216897.50046580215], [0.010, 5.54078372768, 53867.97195265079], [0.013, 4.09291929409, 78378.14871340781], [0.012, 6.09214378282, 156523.53751408719], [0.012, 2.30793560033, 192828.60753723036], [0.011, 5.49984194986, 130593.29451835579], [0.010, 5.02934387609, 63.73589830340], [0.010, 2.56161075764, 3178.14579056760], [0.010, 4.51229030686, 80912.16425019559], [0.010, 3.26964460988, 143980.93691036216], [0.014, 0.09133406732, 138.51749687070], [0.014, 4.26704901561, 52171.87412988529], [0.010, 2.12874423735, 181563.05360783098], [0.010, 2.68594312022, 53551.58008299420], [0.010, 5.01052160566, 53311.48315504160], [0.013, 2.21304135803, 287.88786006980], [0.010, 5.99285759925, 129063.74190802519], [0.010, 0.23580667035, 159969.99379441058], [0.014, 4.15846442712, 52190.03337714999], [0.014, 2.17544501087, 2506.64496425660], [0.010, 2.39055885342, 78262.22495201428], [0.010, 5.33589950489, 128843.32926558638], [0.010, 3.69795961564, 175934.09713761977], [0.010, 5.50982370855, 181548.82651382938], [0.012, 0.91293309387, 53258.88651544199], [0.010, 0.21546965297, 155674.22246769318], [0.010, 5.05408550952, 182465.75879388480], [0.011, 1.47055363263, 76991.02839909539], [0.014, 1.74381856487, 36.64856292950], [0.014, 1.73080789777, 171292.65789271498], [0.010, 1.79047706298, 235746.72801577637], [0.012, 2.86918517100, 2045.30853280220], [0.013, 5.94639118711, 168959.46149984296], [0.010, 5.24213703651, 130285.73689738619], [0.014, 6.10459624713, 454.90936652730], [0.010, 5.39397583397, 77.75054398390], [0.011, 1.99827759086, 1088.60315660100], [0.010, 1.76064600598, 52489.99246301800], [0.010, 5.11611480967, 113455.51956041438], [0.014, 4.11983704037, 54060.70744656579], [0.012, 2.84049561669, 183041.92018189540], [0.012, 3.18297085790, 228508.05242417639], [0.010, 1.62042818189, 231348.55332920235], [0.010, 2.38308200520, 181975.42470470539], [0.010, 5.17901157458, 203375.74902421076], [0.010, 1.70609651468, 78597.56536549199], [0.010, 3.01880618190, 104501.17576343138], [0.011, 1.42631059185, 58220.03486452380], [0.010, 3.45269160846, 99979.73619952259], [0.011, 4.42716378223, 235320.81923926238], [0.010, 4.45423293249, 5469.88378304060], [0.009, 4.68983089958, 80462.79676800959], [0.009, 1.77635894319, 50290.90511973100], [0.010, 1.41464391522, 48091.81777644400], [0.011, 5.93477819724, 158116.49174472899], [0.010, 2.55614008171, 105418.10804348679], [0.009, 3.11835021508, 52206.13314415280], [0.009, 2.24380470375, 299.12639426920], [0.009, 3.22171579815, 51006.21803173979], [0.009, 3.24808968579, 78697.42116259939], [0.011, 0.73383746517, 17605.73994829580], [0.010, 2.45523846147, 233835.52853255917], [0.009, 4.35363918141, 190809.59732422797], [0.009, 2.77090630961, 76094.94894243999], [0.012, 0.23038883503, 130907.48069822539], [0.009, 5.05551915235, 70383.62027138360], [0.009, 5.11051597902, 156093.70711156839], [0.011, 5.44617170556, 56777.75640211140], [0.009, 4.67339642631, 104771.09721017198], [0.009, 4.56456351898, 259819.64948555277], [0.009, 0.73352390338, 75085.56363415498], [0.010, 2.64743106367, 153186.80642274540], [0.010, 5.18315351919, 1382.19793248460], [0.012, 4.75714453262, 250665.74586953095], [0.011, 5.79093643324, 292628.26660646836], [0.009, 6.24971585432, 202420.14928260216], [0.012, 5.83966176266, 11790.62908865880], [0.011, 2.84614041718, 184204.39488630317], [0.010, 3.41187941424, 1905.46476494040], [0.010, 3.00240265080, 118828.96374949679], [0.009, 3.90754065548, 154308.66174525840], [0.010, 0.88848120961, 51315.49635439559], [0.011, 4.49431301230, 156531.30018480320], [0.009, 0.37279337773, 182622.43553802016], [0.009, 5.94479236467, 38634.38508065720], [0.009, 0.28434529807, 5019.91848741320], [0.011, 5.30507160437, 51257.87599716660], [0.009, 5.05598171209, 62197.64356324779], [0.009, 2.00743011270, 154194.22245657316], [0.010, 2.29548861266, 1211.34107035900], [0.009, 1.40840962373, 78149.27013603736], [0.011, 2.69818187519, 195047.36464141717], [0.009, 3.77338110020, 52073.84376488279], [0.010, 4.16632261841, 1130.15394758580], [0.009, 4.71851534374, 257436.45647077652], [0.009, 1.56697202296, 156107.93420556997], [0.010, 3.84491070936, 42790.96527507320], [0.010, 0.84911221571, 61921.12683900499], [0.011, 3.43504498990, 81725.95413058778], [0.008, 3.46841587447, 156534.53239644598], [0.009, 3.07023951195, 78265.19389743089], [0.011, 5.33240591310, 49424.25868345679], [0.009, 3.80703237983, 184834.07909520617], [0.010, 5.24984657637, 860.30992875280], [0.008, 2.32846981012, 156451.15277816958], [0.009, 5.86810139691, 221135.26778299137], [0.009, 0.07267483428, 54879.42243782400], [0.009, 3.53847001127, 1169.58825140860], [0.008, 0.40730399000, 5852.78031526380], [0.010, 5.08938165465, 53661.09698985160], [0.009, 0.09227292796, 285857.55600522272], [0.009, 1.53921610006, 171004.77003264520], [0.010, 6.02369999880, 105403.88094948517], [0.009, 1.41005383919, 215473.93573383917], [0.008, 2.95064025568, 182611.44065566137], [0.011, 0.82592745776, 52098.05573916449], [0.011, 1.89268014069, 53265.51507434200], [0.009, 0.91534494504, 130446.14426677099], [0.011, 5.68651428373, 97466.46267636596], [0.008, 6.09336539202, 65538.25598994759], [0.010, 4.71864870979, 1865.23140251760], [0.011, 0.33942008091, 2352.86615377180], [0.010, 0.58149039679, 51554.06248230919], [0.009, 4.63908561414, 130329.30938665158], [0.008, 3.29340479484, 76532.58707178998], [0.008, 0.39996086139, 31722.93687092660], [0.009, 2.07892055945, 84307.93800609799], [0.008, 0.10251061291, 130489.51232977519], [0.009, 4.86488540298, 197380.56103428919], [0.008, 2.84319355109, 247223.17092456558], [0.009, 5.40644601602, 205260.65018762814], [0.008, 2.99554948925, 28199.55345495179], [0.008, 2.31903661034, 50951.98844236979], [0.009, 3.67243760379, 132558.27956824939], [0.010, 3.84482406254, 199.07200143640], [0.008, 5.13311255182, 133780.12813457078], [0.008, 4.50659262629, 31775.53351052620], [0.010, 3.05711078565, 12098.18670962840], [0.009, 5.43609233651, 65851.33653522459], [0.008, 3.16471275120, 53438.96364572659], [0.008, 5.49628419906, 208063.32784627957], [0.009, 0.80806156177, 84944.93427812219], [0.008, 1.45936166924, 50160.82461135059], [0.009, 3.83369994945, 79902.77894191058], [0.008, 5.05169260225, 220025.88923089797], [0.010, 0.99908522442, 78373.91574594198], [0.008, 1.78435325528, 4743.40176317040], [0.009, 2.44642878457, 76468.45098100159], [0.010, 0.64041079500, 106684.80895916879], [0.008, 0.22706755866, 130514.29730643828], [0.008, 4.45568539518, 175844.61138977378], [0.008, 5.30875425569, 104991.50985261079], [0.008, 4.26578657244, 78267.64157798568], [0.010, 3.66900856638, 22595.33157470459], [0.008, 5.39530906170, 1168.89883704660], [0.007, 2.97217552646, 130962.09312596478], [0.008, 5.41659156640, 106082.73491922939], [0.007, 6.14449914187, 154835.25317994278], [0.009, 3.77109166248, 76777.72930365738], [0.010, 2.68699198523, 31903.01400121119], [0.010, 4.11325286170, 51861.62010327879], [0.010, 6.22285311837, 52213.93931878620], [0.008, 4.05691998652, 130432.88714897096], [0.008, 5.44182392744, 24844.41553989579], [0.008, 5.31551782104, 26247.20487636640], [0.007, 3.34982243781, 53771.99272543299], [0.007, 0.76435484795, 103829.03514820298], [0.009, 0.48166296597, 4571.62325795859], [0.010, 2.53857628850, 23735.03698780239], [0.009, 3.06932982640, 51102.19725895759], [0.009, 0.81667861584, 180396.56488683258], [0.008, 1.37381137878, 182619.20332637738], [0.010, 4.53462580754, 195181.47369100217], [0.007, 5.92229713446, 102129.75593169978], [0.009, 1.70197819412, 114.39910691340], [0.009, 2.75554865259, 52145.47942214399], [0.007, 5.03002929900, 78905.12298646157], [0.008, 4.70162992466, 77684.02183772379], [0.007, 2.16016333042, 252884.50297371778], [0.007, 4.70104811610, 197092.67317421938], [0.008, 3.34882273958, 92.05283574460], [0.007, 4.64287583099, 104659.17018726638], [0.007, 1.74834665027, 79116.90580647459], [0.007, 1.40803395997, 78149.31031780918], [0.007, 5.96603423152, 1685.05212250160], [0.008, 5.74025115791, 27441.65188659100], [0.007, 3.32172728837, 186057.89693598478], [0.007, 5.77399157694, 52822.81711646319], [0.009, 5.40969007280, 25970.58327335399], [0.007, 5.03097379670, 51092.72605085480], [0.008, 4.85500497006, 79353.41821591619], [0.009, 2.91790460578, 128857.55635958798], [0.010, 2.62831495455, 104145.42701785959], [0.008, 3.65717048924, 50476.52706664519], [0.010, 4.97375703081, 128960.64913380658], [0.007, 0.63731291763, 132350.71519108818], [0.007, 3.70718359263, 61165.27398858079], [0.007, 1.52409890800, 224577.84272795677], [0.007, 5.83295581556, 78339.97549599818], [0.007, 1.28982657880, 127791.06088239799], [0.007, 4.38077281912, 87648.55043279778], [0.007, 0.78772735446, 104044.05494532720], [0.007, 5.55018242223, 148532.89040742096], [0.008, 3.94353800260, 77929.85348395319], [0.007, 4.68484570125, 129971.55071751658], [0.007, 5.46082675395, 76352.50994150538], [0.007, 0.89727780818, 28213.78054895339], [0.006, 2.25546242417, 79955.87509422498], [0.007, 1.85784871452, 28096.46068073319], [0.006, 6.22318977780, 261988.40996783535], [0.006, 3.92166942434, 182402.02289558138], [0.006, 4.54553590954, 26235.98186600050], [0.006, 0.04385251847, 182634.99175191918], [0.006, 3.27000773736, 104557.79811473397], [0.006, 1.48316940910, 26191.68533015479], [0.006, 1.42098831764, 26026.17716683400], [0.006, 4.63624566094, 57369.17334194619], [0.006, 2.24614788518, 131079.41299418497], [0.008, 1.46359871781, 74935.57376844239], [0.007, 0.19039890992, 117077.06600107178], [0.006, 2.30839350284, 27353.47062020059], [0.008, 4.05701479596, 60170.33472517260], [0.006, 2.25676540184, 118007.47305747319], [0.007, 5.19369769843, 91919.56991589899], [0.006, 2.17221286567, 27573.88326263939], [0.006, 3.04358438526, 83591.18553310538], [0.006, 5.50261387027, 26238.95081141709], [0.006, 5.55141392261, 207747.62539098499], [0.007, 3.67760971466, 229129.79622501557], [0.006, 5.14998820697, 130364.73410930368], [0.006, 2.59291082745, 52186.85198341230], [0.006, 3.70620257597, 182608.20844401856], [0.007, 5.89987227798, 53757.76563143139], [0.007, 1.17954845926, 209232.91609768817], [0.007, 1.99199973963, 88285.54670482199], [0.006, 5.29985761538, 175376.64639941938], [0.007, 1.76338847974, 55484.27217852879], [0.008, 0.55724966367, 129806.73196855778], [0.005, 4.19687137282, 111032.83741969639], [0.006, 1.86021237763, 96471.52341295779], [0.006, 1.44535366888, 20043.67456019880], [0.006, 1.48244229587, 260349.34045064732], [0.006, 1.00031747475, 51538.81001112419], [0.005, 0.08842088266, 79859.89586700719], [0.006, 2.17116807817, 156373.64003896038], [0.007, 2.57540094308, 77218.55458853499], [0.006, 4.66124811472, 65717.22748563958], [0.005, 5.69376389474, 52400.15107885030], [0.006, 2.47972848111, 266540.36346489412], [0.005, 4.47086994598, 27360.58416720139], [0.005, 3.20880924837, 259769.65286364855], [0.005, 3.98361684334, 54862.52837768960], [0.007, 2.86077141334, 179172.74704605396], [0.005, 2.46087822928, 156681.19765992998], [0.007, 5.00361119157, 209762.60706278277], [0.005, 5.35670104895, 26513.81191808820], [0.006, 3.62607025643, 27883.16158529519], [0.005, 0.80991017339, 25661.99436506020], [0.006, 0.20069428083, 50490.75416064679], [0.005, 3.77056538505, 164407.50800278416], [0.005, 2.71005052987, 104427.87863757239], [0.006, 0.84754795471, 104466.05185498200], [0.005, 2.69389382491, 180496.55813064100], [0.005, 4.04820376371, 129277.04100346318], [0.006, 0.57829057010, 50600.96048186620], [0.006, 4.21216601811, 182595.65223011957], [0.005, 3.59670550074, 131072.29944718417], [0.005, 0.08842684725, 27993.36790651460], [0.006, 0.00392034365, 73891.83305794839], [0.006, 4.68979746906, 26149.62911631439], [0.005, 4.61789756581, 20894.53608277640], [0.005, 3.57093232780, 53654.67285721279], [0.005, 0.36682731238, 146505.58156934578], [0.005, 1.40545824640, 233202.05537888399], [0.006, 2.35439456378, 139543.42270198860], [0.004, 1.28935961583, 234364.53008329176], [0.004, 1.10749672173, 51086.09749195479], [0.005, 3.64294402198, 27331.39074325260], [0.004, 0.00216060134, 213255.17862965239], [0.004, 4.40507427126, 129483.22655190038], [0.004, 2.18529936793, 23384.28698689860], [0.005, 0.93391333656, 52102.50915728939], [0.004, 2.33941435272, 23389.45169419700], [0.004, 3.59370682931, 46564.47085590040], [0.004, 2.90835831307, 61299.38303816579], [0.004, 6.27884818175, 170068.84005193636], [0.004, 4.90170477242, 104888.41707839219], [0.004, 4.56426377076, 46131.57770177300], [0.005, 2.12658067178, 130542.60848208958], [0.005, 2.50519016528, 79845.66877300559], [0.004, 6.24881318031, 18073.70493865020], [0.004, 1.10868110225, 52072.02409456780], [0.004, 6.14515791357, 34102.10134449819], [0.004, 2.94097893970, 129902.71119577558], [0.004, 2.91542426579, 130215.17091216908], [0.005, 2.20146513310, 82865.65954368559], [0.005, 4.46570663623, 104237.17327761157], [0.004, 5.13334797430, 26387.02953584340], [0.004, 5.34965278511, 24787.07632336920], [0.004, 4.17772291197, 53132.09543911899], [0.004, 2.66996288682, 25572.43927048119], [0.005, 1.14175711692, 188898.39784101077], ], # L1 [ [2608814706222.746, 0.00000000000, 0.00000000000], [1126007.832, 6.21703970996, 26087.90314157420], [303471.395, 3.05565472363, 52175.80628314840], [80538.452, 6.10454743366, 78263.70942472259], [21245.035, 2.83531934452, 104351.61256629678], [5592.094, 5.82675673328, 130439.51570787099], [1472.233, 2.51845458395, 156527.41884944518], [352.244, 3.05238094403, 1109.37855209340], [388.318, 5.48039225891, 182615.32199101939], [93.540, 6.11791163931, 27197.28169366760], [90.579, 0.00045481669, 24978.52458948080], [102.743, 2.14879173777, 208703.22513259359], [51.941, 5.62107554052, 5661.33204915220], [44.370, 4.57348500464, 25028.52121138500], [28.070, 3.04195430989, 51066.42773105500], [22.003, 0.86475371243, 955.59974160860], [27.295, 5.09210138837, 234791.12827416777], [20.425, 3.71509622702, 20426.57109242200], [20.221, 0.51934047295, 21535.94964451540], [17.496, 5.72663608620, 4551.95349705880], [16.680, 1.35134428173, 529.69096509460], [15.306, 1.79184360652, 11322.66409830440], [15.398, 5.74263453989, 19.66976089979], [13.964, 3.59426938083, 24498.83024629040], [12.822, 2.69591798562, 53285.18483524180], [12.621, 3.89530641889, 3.88133535800], [12.566, 4.70537436663, 1059.38193018920], [7.974, 4.17682324505, 26617.59410666880], [7.929, 0.50426804318, 46514.47423399620], [8.024, 3.92723313702, 27043.50288318280], [7.665, 2.48158305355, 57837.13833230060], [8.639, 6.06360282793, 77154.33087262919], [6.838, 2.77387065312, 7.11354700080], [6.554, 5.53478998989, 6770.71060124560], [5.846, 4.28139659800, 16983.99614745660], [7.285, 1.74581868954, 260879.03141574195], [7.179, 2.97766079692, 2218.75710418680], [6.364, 2.13805619380, 25132.30339996560], [5.883, 2.19545230409, 13521.75144159140], [4.969, 2.47752134180, 30639.85663863300], [4.578, 1.55845855383, 27147.28507176339], [4.857, 4.84757952324, 37410.56723987860], [5.022, 3.94124675992, 25661.30495069820], [4.381, 4.94471456712, 213.29909543800], [4.211, 5.53886788148, 83925.04147387479], [4.299, 5.09070560802, 10213.28554621100], [4.593, 0.81920676333, 25558.21217647960], [3.571, 2.34341884629, 32858.61374281979], [4.454, 5.79159156180, 3442.57494496540], [3.547, 3.59413896239, 26068.23338067440], [3.664, 1.39952931281, 77204.32749453338], [3.417, 0.49855041138, 22645.32819660879], [3.195, 1.25743024246, 14765.23904326980], [3.031, 4.45207030477, 7238.67559160000], [3.284, 5.22996707635, 25448.00585526019], [2.974, 0.14234349726, 50586.73338786459], [2.855, 0.67083991526, 26091.78447693220], [2.773, 3.54351198199, 72602.37737557039], [3.132, 6.21365344759, 26080.78959457339], [2.732, 5.64171761904, 1589.07289528380], [2.652, 0.88219699366, 52705.49724824299], [3.125, 6.07160751766, 28306.66024576099], [2.799, 2.51152391376, 26107.57290247399], [2.403, 1.15515130360, 25035.63475838580], [2.274, 1.85167073193, 36301.18868778519], [2.501, 4.34723465048, 41962.52073693740], [2.321, 5.44262378304, 26084.02180621620], [2.535, 5.80101392346, 26095.01668857500], [2.872, 1.63503968499, 25021.40766438420], [2.066, 1.07231845630, 43071.89928903080], [2.616, 2.78322243283, 103242.23401420339], [1.987, 2.95923214706, 23969.13928119580], [1.979, 4.44092591248, 103292.23063610759], [1.974, 0.83681704901, 12566.15169998280], [1.700, 2.28603732736, 110012.94461544899], [1.677, 4.63366122462, 53235.18821333759], [1.954, 4.67733727976, 286966.93455731618], [1.653, 1.25518276011, 33326.57873317420], [1.785, 1.80830270808, 26301.20223701220], [1.784, 5.17926273269, 426.59819087600], [2.143, 5.16312278245, 51220.20654153979], [1.597, 5.53494401703, 56727.75978020720], [1.590, 0.07660134798, 23869.14603738740], [1.574, 3.75870586370, 73711.75592766379], [1.362, 1.13830507985, 68050.42387851159], [1.358, 1.45317020242, 51646.11531805379], [1.586, 4.65681044624, 79373.08797681599], [1.347, 3.80254397382, 19317.19254032860], [1.242, 3.79389911401, 25874.60404613620], [1.124, 1.28920904043, 31749.23519072640], [1.065, 4.31416942177, 40853.14218484400], [1.014, 3.58126441973, 48733.23133818299], [1.259, 1.73130656223, 12432.04265039780], [0.989, 0.33276224293, 52156.13652224860], [1.057, 4.35251408825, 77734.01845962799], [1.033, 3.72503880786, 6283.07584999140], [0.894, 0.29768279333, 105460.99111839019], [0.910, 0.49823258962, 99799.65906923798], [0.999, 5.29812267938, 65697.55772473979], [1.138, 2.56391312022, 29530.47808653960], [0.876, 4.91112286703, 62389.09182935939], [0.912, 0.27449857787, 98690.28051714458], [0.879, 4.78847722011, 18849.22754997420], [0.869, 3.87957425954, 78793.40038981718], [0.831, 2.35459129726, 27676.97603685800], [0.791, 1.17444825871, 129380.13377768178], [0.782, 3.92653768734, 38654.05484155699], [0.782, 3.69412482234, 52179.68761850640], [0.745, 2.09648894863, 51535.90899683439], [0.736, 6.05470921559, 114.43928868521], [0.733, 3.23019978320, 47623.85278608960], [0.698, 2.99026308247, 52168.69273614759], [0.780, 5.77004504059, 129330.13715577759], [0.752, 4.22525357653, 51123.53789995999], [0.752, 4.70099207936, 51109.31080595839], [0.651, 5.87383050095, 2333.19639287200], [0.699, 4.82823185979, 38519.94579197200], [0.656, 3.65375726729, 25668.41849769900], [0.660, 1.98037689941, 26514.50133245020], [0.808, 6.27898737551, 53131.40602475700], [0.753, 5.64446551994, 45892.73043315699], [0.610, 1.21194007471, 153.77881048480], [0.604, 5.29267380518, 136100.84775702318], [0.811, 4.22885181263, 25654.19140369739], [0.697, 1.89331617498, 77308.10968311399], [0.581, 2.61707271637, 76674.63652943878], [0.549, 4.18661776549, 94138.32702008578], [0.567, 6.08785859254, 25234.70675982219], [0.549, 2.08003708209, 91785.46086631398], [0.563, 1.38660458000, 79323.09135491178], [0.527, 5.83448542494, 50057.04242277000], [0.524, 2.45745967369, 467.96499035440], [0.570, 3.10425513710, 15874.61759536320], [0.699, 2.57322536922, 52182.91983014920], [0.501, 0.39578180187, 32370.97899156560], [0.542, 2.77109053528, 54394.56338733519], [0.525, 1.31791713133, 313054.83769889036], [0.513, 2.28640740711, 82815.66292178139], [0.579, 5.45103833735, 52195.47604404819], [0.617, 4.18395572588, 639.89728631400], [0.449, 3.10044122691, 49957.04917896160], [0.495, 2.11807671869, 52171.92494779040], [0.431, 3.06714836720, 131548.89425996438], [0.427, 5.35367311100, 49.99662190420], [0.470, 1.46585019834, 1066.49547719000], [0.470, 1.07485595760, 103821.92160120218], [0.415, 2.50109134151, 71980.63357473118], [0.395, 5.24320159822, 58946.51688439399], [0.408, 0.92030240581, 77837.11123384659], [0.523, 4.92390082310, 52389.10537858640], [0.377, 3.50882025297, 125887.56221081219], [0.508, 1.03838633466, 24491.71669928959], [0.418, 0.36439379673, 51962.50718771040], [0.400, 3.51557589073, 20760.42703319140], [0.359, 0.03091967859, 2118.76386037840], [0.356, 2.03727281128, 1052.26838318840], [0.423, 4.21437546240, 18093.37469954999], [0.340, 1.64349471632, 79219.30916633119], [0.336, 1.55276786593, 24505.94379329119], [0.348, 1.06528227311, 66941.04532641819], [0.327, 5.45093694594, 7880.08915333899], [0.303, 1.67537340603, 88476.99497093359], [0.323, 5.59204872298, 55618.38122811380], [0.281, 0.83478570176, 63498.47038145279], [0.393, 0.55222046684, 45405.09568190280], [0.280, 0.69995179262, 64741.95798313119], [0.381, 2.16540447546, 522.57741809380], [0.279, 4.17319236859, 155468.03691925600], [0.314, 1.52755129973, 44937.13069154840], [0.280, 3.33549459014, 78244.03966382280], [0.272, 5.34763989826, 53764.87917843220], [0.287, 4.98400171694, 25551.09862947879], [0.288, 3.26773464056, 124778.18365871879], [0.275, 0.59220058467, 104881.30353139139], [0.229, 5.07700202235, 52602.40447402440], [0.265, 1.04033681288, 25938.33994443960], [0.224, 5.10726819180, 117873.36400788819], [0.242, 0.44760602599, 23754.70674870219], [0.214, 3.50460190598, 58458.88213313979], [0.230, 2.45937674101, 155418.04029735178], [0.211, 3.92377004339, 103925.01437542078], [0.282, 3.81265243625, 536.80451209540], [0.218, 4.88963285925, 103396.01282468818], [0.200, 5.41573374322, 16066.06586147480], [0.218, 0.41409439248, 78267.59076008058], [0.201, 2.38235635877, 23439.44831610119], [0.203, 2.69458032262, 59414.48187474840], [0.196, 0.92807787406, 120226.23016165999], [0.201, 2.00560473829, 162188.75089859738], [0.183, 3.83128433173, 69159.80243060499], [0.180, 2.20428238305, 89586.37352302698], [0.215, 5.35652096610, 206.18554843720], [0.178, 1.24568538055, 103.09277421860], [0.196, 0.44564203205, 51756.32163927320], [0.183, 2.88003872828, 3328.13565628019], [0.216, 4.48180965712, 26241.68195205900], [0.215, 2.26752450953, 33967.99229491319], [0.193, 4.34407767816, 105307.21230790539], [0.200, 1.01165813281, 51742.09454527159], [0.170, 5.57003076622, 98068.53671630539], [0.224, 0.97932137082, 77211.44104153418], [0.168, 5.96360976147, 157636.79740153858], [0.178, 1.42319344949, 77197.21394753258], [0.196, 5.59654497318, 78270.82297172339], [0.161, 5.51918174079, 26555.86813192860], [0.197, 4.79975858562, 25455.11940226100], [0.181, 4.39987679970, 105410.99449648599], [0.159, 2.63928704121, 28421.09953444620], [0.158, 0.75224521142, 51116.42435295920], [0.196, 4.92493608061, 102762.53967101299], [0.162, 2.82561928047, 26202.34243025941], [0.194, 1.02167898855, 44181.27784112419], [0.179, 5.11561177302, 25440.89230825939], [0.152, 5.21934955501, 77623.81213840858], [0.150, 5.98491689335, 78256.59587772179], [0.184, 0.26375114604, 419.48464387520], [0.144, 2.90657294970, 51322.60990139639], [0.163, 1.01728531879, 26727.80042788820], [0.160, 1.39225289207, 26011.63707029860], [0.145, 5.76503611587, 80482.46652890938], [0.140, 0.27227514908, 46848.33017476560], [0.136, 0.22641179921, 151975.46535238638], [0.142, 4.24343923379, 339142.74084046460], [0.178, 4.08547287819, 129909.82474277639], [0.142, 3.31130337074, 78050.41032928458], [0.131, 0.70125733168, 3340.61242669980], [0.154, 1.72826405606, 78477.00852016058], [0.159, 5.29643521725, 108903.56606335558], [0.129, 3.26743532785, 25973.46385288896], [0.128, 6.10775258657, 76044.95232053580], [0.144, 4.06091644657, 50579.61984086379], [0.164, 6.17696810226, 19406.67828817460], [0.139, 5.11979950242, 433.71173787680], [0.153, 1.30046862259, 13655.86049117640], [0.132, 5.23445066335, 26610.48055966799], [0.115, 4.61845793770, 50593.84693486539], [0.121, 2.52027376421, 76144.94556434419], [0.114, 4.51555533683, 27154.39861876420], [0.106, 5.18068866237, 85502.38501632259], [0.110, 3.45757703411, 25565.32572348040], [0.100, 0.11496600894, 74821.13447975718], [0.100, 3.95989644984, 26037.90651966999], [0.100, 3.01535382150, 28206.66700195260], [0.099, 5.99257260255, 29416.03879785439], [0.117, 3.56597928882, 71492.99882347698], [0.131, 5.96070215452, 1223.81784077861], [0.095, 1.84065750300, 85034.42002596818], [0.102, 4.69459571654, 114564.89811250778], [0.097, 0.87353840441, 181555.94006083018], [0.118, 2.02298794976, 78283.37918562238], [0.111, 4.07316227960, 93028.94846799239], [0.090, 5.01726237192, 115674.27666460119], [0.094, 2.31806507832, 81706.28436968799], [0.089, 5.94413487088, 25131.61398560359], [0.095, 3.72299894590, 90829.86112470538], [0.120, 5.44384753792, 51749.20809227239], [0.105, 5.01803826552, 78259.82808936459], [0.086, 1.83551544255, 143961.26714946239], [0.108, 4.53825443085, 71025.03383312259], [0.083, 0.64015893446, 130012.91751699499], [0.099, 0.52218556269, 26624.70765366959], [0.094, 2.65386396812, 9103.90699411760], [0.098, 3.31480172250, 853.19638175200], [0.080, 2.13424472361, 42153.96900304900], [0.086, 2.05760695844, 79852.78232000639], [0.084, 0.97023030623, 131395.11544947958], [0.081, 0.28916970825, 84546.78527471398], [0.081, 5.18614814481, 220.41264243880], [0.081, 1.98383157756, 149.56319713460], [0.082, 0.05817684667, 104331.94280539699], [0.074, 1.62836007935, 25984.81036735560], [0.075, 1.84245188133, 78690.30761559859], [0.087, 3.58634855360, 130969.20667296558], [0.074, 5.06505616563, 27140.17152476259], [0.075, 5.47760610876, 134.10904958500], [0.089, 6.25587801019, 150866.08680029298], [0.098, 4.71698591369, 12725.45343477500], [0.069, 5.05822197567, 1911.19948321720], [0.081, 2.05307563846, 1596.18644228460], [0.075, 2.05688075943, 26137.89976347840], [0.069, 3.67576176321, 24609.03656750980], [0.081, 1.38060133126, 52329.58509363319], [0.069, 1.60181551296, 129483.91596626239], [0.067, 5.43668176629, 181505.94343892598], [0.066, 1.56953438995, 19804.82729158280], [0.066, 3.92553131581, 146314.13330323418], [0.062, 3.46967694133, 24925.42843716640], [0.079, 3.56674606057, 49842.60989027639], [0.067, 4.76959706409, 25881.71759313700], [0.061, 2.61995550094, 183724.70054311279], [0.061, 1.63344766876, 13541.42120249119], [0.061, 2.31153135385, 124156.43985787958], [0.058, 3.88678278617, 18207.81398823521], [0.082, 1.36242531494, 128850.44281258718], [0.058, 2.98990179150, 110.20632121940], [0.064, 4.98131448153, 188276.65404017159], [0.067, 2.32849722473, 26294.08869001139], [0.057, 3.72454115593, 29428.51556827400], [0.066, 1.69869503126, 51543.02254383520], [0.055, 2.30093263701, 52643.77127350280], [0.069, 1.78774826271, 51639.00177105299], [0.067, 4.00863968986, 103299.34418310839], [0.074, 6.14089486388, 14477.35118320000], [0.054, 5.27646510692, 49527.35145767539], [0.056, 2.33495620660, 104358.72611329758], [0.062, 3.41967311766, 104355.49390165479], [0.050, 1.20854390978, 23976.25282819660], [0.064, 0.58512976749, 307.55762096960], [0.062, 3.69245785160, 641.41356173899], [0.062, 4.47317710621, 636.99627202420], [0.049, 4.09291926847, 52815.70356946240], [0.061, 0.78849475911, 155997.72788435058], [0.047, 2.14659254610, 7994.52844202420], [0.047, 0.00507866085, 104138.31347085879], [0.045, 2.28588893693, 25764.39772491679], [0.051, 2.98348805265, 40565.25432477420], [0.047, 4.03957254582, 77829.99768684579], [0.047, 3.21862563103, 178063.36849396059], [0.045, 4.41401819607, 103285.11708910679], [0.054, 3.47879330948, 77844.22478084739], [0.054, 2.83659707386, 6681.22485339960], [0.056, 1.11360360738, 131498.89763806018], [0.046, 3.38384624666, 26507.38778544939], [0.055, 2.68637168389, 25934.12433108940], [0.046, 4.78696197215, 104564.91166173479], [0.059, 1.29879100690, 38813.35657634920], [0.043, 3.86025201636, 10021.83728009940], [0.044, 1.90320971624, 51528.79544983359], [0.055, 0.48335079540, 23962.02573419499], [0.042, 4.11693586607, 26190.99591579279], [0.044, 1.64247485835, 76.26607127560], [0.042, 6.21848377968, 26094.53170047421], [0.041, 2.73996884659, 25867.49049913539], [0.043, 0.38981425968, 1089.70879119360], [0.043, 4.89046790101, 24395.73747207180], [0.041, 0.44351702671, 25619.93815121980], [0.041, 1.47439583353, 76681.75007643958], [0.039, 1.71519867865, 111590.28815789679], [0.041, 5.67594181048, 54509.00267602040], [0.049, 1.65739950579, 1581.95934828300], [0.040, 1.85008425708, 27999.10262479140], [0.038, 3.99668572981, 9384.84100807520], [0.037, 2.83147987268, 102132.85546210999], [0.039, 0.84546566819, 365230.64398203877], [0.037, 4.65200082367, 90695.75207512038], [0.037, 0.94736176192, 76667.52298243798], [0.040, 0.16806354899, 22759.76748529401], [0.049, 2.02480943113, 134991.46920492980], [0.041, 5.85592543833, 52290.24557183361], [0.040, 1.21491127400, 64607.84893354619], [0.041, 3.07842612799, 26081.27458267419], [0.035, 3.89800430981, 157483.01859105378], [0.037, 0.29068345666, 97580.90196505119], [0.035, 4.74965057267, 39629.32434406539], [0.035, 1.88777425098, 26521.61487945100], [0.033, 3.60227423859, 156100.82065856917], [0.035, 1.96114191570, 74.78159856730], [0.045, 3.72467663437, 39609.65458316560], [0.038, 4.29218444251, 39743.76363275060], [0.032, 5.95900501016, 77410.51304297059], [0.032, 0.64794221724, 2648.45482547300], [0.039, 5.08510962281, 25863.55834587229], [0.031, 1.62486752727, 141762.17980617538], [0.031, 1.25910229689, 53242.30176033840], [0.031, 2.65918037491, 104344.49901929598], [0.032, 0.00169740803, 52061.36699446317], [0.031, 6.12210016938, 25977.69682035479], [0.030, 5.72239820341, 579.68758699880], [0.030, 0.70553319870, 52125.80966124419], [0.039, 1.60801806885, 333.85594076940], [0.030, 5.28578152795, 102232.84870591838], [0.029, 0.53270948692, 50696.93970908399], [0.029, 0.40281274949, 35472.74414964940], [0.028, 2.96171859812, 100909.03762133139], [0.034, 1.41428136641, 140652.80125408198], [0.029, 6.00401578551, 54294.57014352679], [0.032, 0.45221016093, 116917.76426627958], [0.028, 5.07088961710, 26237.46633870879], [0.028, 5.33382835025, 107794.18751126219], [0.030, 3.86080757411, 207643.84320240439], [0.028, 4.81897403543, 170049.17029103660], [0.031, 1.90989851759, 26308.31578401300], [0.035, 1.26114015069, 97112.93697469679], [0.028, 2.01146788563, 52698.38370124219], [0.033, 4.31496976407, 154938.34595416137], [0.028, 4.46781875730, 78417.48823520739], [0.033, 0.25034815279, 51653.22886505459], [0.026, 0.07835049738, 51013.33157874059], [0.029, 3.32582529322, 110634.68841628819], [0.027, 6.01993388409, 25227.59321282139], [0.036, 0.79025288269, 119116.85160956658], [0.026, 4.68624143375, 632.78373931320], [0.027, 1.14521834701, 121335.60871375339], [0.025, 3.42095174931, 956.28915597060], [0.028, 2.73386270717, 27311.72098235281], [0.024, 0.82215620694, 314.18617986960], [0.025, 5.21681600178, 25241.82030682300], [0.025, 3.57372833543, 52712.61079524379], [0.027, 5.05183520711, 105940.68546158058], [0.031, 2.25462520789, 26720.68688088739], [0.025, 4.86890931082, 104778.21075717278], [0.023, 3.01659387998, 52182.43484204840], [0.026, 2.13973174244, 103711.71527998279], [0.023, 4.60383496965, 52072.71350892979], [0.023, 4.55605691468, 155571.81910783658], [0.022, 3.69622699918, 735.87651353180], [0.023, 2.40544682432, 8194.27533320860], [0.022, 2.44094101414, 2703.61615467560], [0.027, 5.29221944987, 26162.68474014150], [0.022, 4.11517024183, 19202.75325164339], [0.029, 4.25385019536, 647.01083331480], [0.021, 2.11851790816, 207593.84658050019], [0.029, 2.91003553544, 176953.98994186718], [0.026, 5.68398596586, 95247.70557217918], [0.021, 5.29289519906, 150244.34299945380], [0.024, 3.05210539174, 130419.84594697120], [0.020, 2.54144132983, 51219.51712717779], [0.020, 6.16401959180, 35191.81013569180], [0.022, 3.22920342008, 1083.08023229360], [0.028, 0.30709453091, 157057.10981453978], [0.023, 1.65280537431, 214364.55718174577], [0.027, 3.72484040647, 621.74380083920], [0.023, 2.59065413623, 71582.48457132299], [0.022, 0.94588004362, 52022.02747266360], [0.020, 3.84776796820, 5327.47610838280], [0.024, 4.82779429778, 104371.28232719658], [0.019, 1.94368317235, 22747.29071487440], [0.023, 3.19739923216, 6044.22858137540], [0.020, 0.58967836529, 172402.03644480839], [0.019, 2.73169091081, 55503.94193942859], [0.018, 1.63099638721, 48835.19385644859], [0.022, 1.62646807429, 104347.73123093879], [0.018, 4.90435895585, 77630.92568540938], [0.018, 0.59687432455, 183570.92173262799], [0.024, 5.58828197916, 34282.17847478280], [0.018, 5.54856348293, 209812.60368468694], [0.019, 0.53136209334, 55516.41870984820], [0.020, 0.73777252741, 129387.24732468258], [0.021, 4.62446809035, 13362.44970679920], [0.021, 1.94768946886, 487.63475125420], [0.019, 4.18946427203, 78114.14622758799], [0.023, 2.43977160852, 24822.33566294780], [0.017, 2.24086275048, 26222.01219115920], [0.018, 5.08348808758, 27684.08958385880], [0.017, 4.31062701282, 50064.15596977079], [0.017, 0.62713581550, 44295.71712980940], [0.022, 0.09847423078, 26941.09952332620], [0.019, 2.09224104001, 86143.79857806159], [0.016, 0.43713509764, 101.96251826560], [0.016, 4.27219175799, 24176.70365835700], [0.018, 5.24040005379, 68241.87214462319], [0.020, 5.09682447452, 60055.89543648739], [0.016, 4.08590900542, 147423.51185532758], [0.018, 2.12913862198, 106570.36967048359], [0.016, 1.00668387150, 25138.72753260440], [0.016, 5.76419504418, 14.22709400160], [0.021, 6.16511987091, 52169.17772424839], [0.016, 0.82798074394, 96357.08412427259], [0.016, 3.75399093257, 159.30173479220], [0.017, 4.95698248546, 52225.80290505260], [0.017, 6.11461465994, 26198.10946279360], [0.017, 6.19302565011, 204151.27163553477], [0.017, 5.34573358099, 78731.67441507700], [0.016, 1.90468795194, 128320.75184749259], [0.017, 3.73180335896, 182085.63102592478], [0.017, 5.86222137701, 32132.13172294960], [0.019, 1.56034038551, 51969.62073471119], [0.018, 2.54086242120, 25780.34552060460], [0.015, 4.29267057949, 1692.16566950240], [0.016, 1.75865740707, 53228.07466633679], [0.020, 2.35700883433, 75615.25459924959], [0.015, 5.29296109539, 130446.62925487179], [0.014, 0.85174293693, 78903.60671103658], [0.015, 5.50776870695, 52808.59002246159], [0.017, 5.96622721781, 32769.12799497380], [0.014, 5.40589812318, 52381.99183158559], [0.014, 2.92783624754, 130226.21661243298], [0.014, 4.73334676783, 26164.16921284980], [0.018, 4.09540263999, 157586.80077963436], [0.015, 5.00568645183, 28791.51929624980], [0.013, 0.88297787282, 24292.64469785319], [0.018, 0.07544318179, 2199.08734328700], [0.014, 0.39198838648, 1162.47470440780], [0.012, 4.87283902225, 64901.25971792339], [0.013, 4.28417448099, 23866.04650697719], [0.013, 3.77892895408, 391318.54712361295], [0.012, 0.90287358387, 104202.04936916218], [0.012, 1.68139724364, 72936.23331633979], [0.015, 3.76108194990, 111122.32316754239], [0.012, 1.82629728829, 22909.75735100660], [0.013, 1.25451832397, 26724.89941359840], [0.012, 5.74844907374, 97670.38771289718], [0.012, 1.52451201886, 130652.81480330898], [0.011, 5.30694474936, 24601.92302050899], [0.014, 2.82065667408, 1639.06951718800], [0.015, 4.79144654769, 77726.90491262719], [0.013, 5.37369194634, 8989.46770543239], [0.013, 3.84042504901, 25953.79409198919], [0.015, 0.08558342266, 130443.39704322898], [0.011, 5.16135808879, 233681.74972207437], [0.012, 0.99700192092, 65831.66677432480], [0.012, 4.51508367315, 78187.44335344699], [0.012, 0.62022460619, 36109.74042167360], [0.011, 1.08182792000, 129373.02023068098], [0.014, 5.59428027773, 25446.48957983520], [0.011, 4.68045355937, 74923.09699802278], [0.014, 4.68060965317, 27669.86248985719], [0.012, 4.91061349082, 54087.00576636560], [0.010, 0.73914692842, 103917.90082841998], [0.013, 4.96538793287, 161079.37234650398], [0.011, 0.31330958005, 182188.72380014337], [0.013, 3.74649756573, 145204.75475114078], [0.010, 1.79124533717, 949.17560896980], [0.010, 4.24347093551, 78109.93061423779], [0.010, 1.22394899357, 104505.39137678158], [0.012, 3.21001019103, 102018.41617342478], [0.011, 4.48294709049, 102769.65321801379], [0.010, 4.33936275875, 95.97922721780], [0.010, 3.73409843943, 199599.31813847594], [0.012, 6.08780023115, 25450.90686955000], [0.012, 0.52219299955, 125112.03959948818], [0.012, 3.12928292612, 11610.55195837420], [0.013, 2.59745313501, 78378.14871340781], [0.010, 0.95664142687, 45290.65639321759], [0.011, 3.04942272888, 309.27832265580], [0.012, 3.42470973506, 143005.66740785379], [0.009, 5.24571653547, 34082.43158359840], [0.012, 1.94632930172, 1135.67687189320], [0.010, 2.75654212398, 103.78218858060], [0.010, 6.06089846081, 78270.33798362259], [0.009, 1.42295924162, 12546.48193908300], [0.009, 5.23889079020, 160.40736938481], [0.010, 1.77339719648, 25754.04720080480], [0.011, 3.45444324976, 27177.61193276780], [0.010, 2.40808781707, 3462.24470586520], [0.012, 0.21115577900, 103932.12792242158], [0.010, 0.44397528833, 26729.31670331319], [0.009, 4.39355955971, 224.34479570190], [0.009, 5.76319803259, 86457.98475793119], [0.009, 3.21350384534, 123668.80510662538], [0.009, 5.50134612867, 25352.02662804239], [0.009, 3.61240341796, 76784.84285065818], [0.009, 3.71346537596, 78213.71280281838], [0.011, 0.04658635952, 136722.59155786238], [0.009, 3.16339317765, 24079.34560241519], [0.010, 1.52307057829, 196137.07343261078], [0.009, 5.78277172101, 137210.22630911658], [0.009, 5.34709321166, 16703.06213349900], [0.010, 1.10603431719, 76152.05911134499], [0.010, 2.92130709301, 78257.08086582259], [0.009, 4.92591389280, 52609.51802102519], [0.008, 4.47915729665, 167850.08294774959], [0.010, 3.52532046928, 50049.92887576919], [0.009, 5.74701495675, 128220.75860368418], [0.009, 3.39636103723, 25771.51127191760], [0.009, 0.40885845708, 173511.41499690176], [0.009, 0.05214771460, 209232.91609768817], [0.011, 4.39473500560, 166740.70439565618], [0.008, 0.83788793173, 52101.02468458109], [0.009, 0.39740145698, 208173.53416749899], [0.009, 2.14648409917, 52250.58788171570], [0.011, 0.77019715443, 181026.24909573558], [0.008, 0.46458507594, 11.04570026390], [0.009, 3.75726239516, 26395.46076254379], [0.011, 3.88183253605, 99024.13645791399], [0.009, 5.91589628233, 26404.29501123080], [0.008, 3.62038830716, 28736.35796704720], [0.009, 5.53218561478, 50910.23880452200], [0.008, 3.98222002302, 51226.63067417859], [0.008, 2.20332298794, 35077.37084700659], [0.010, 1.71606704784, 132028.58860315479], [0.009, 4.19828805921, 123200.84011627098], [0.008, 4.94949508683, 1263.15736257819], [0.008, 0.38255024740, 78800.51393681798], [0.008, 3.55931433878, 25508.21555457540], [0.008, 2.06623542364, 133882.09065283637], [0.008, 2.76004606287, 103498.41618454478], [0.009, 6.07146960892, 52595.29092702359], [0.010, 4.64768763301, 240452.46032331997], [0.010, 4.75089417351, 158116.49174472899], [0.009, 3.16830318341, 156531.30018480320], [0.009, 0.51442466727, 233731.74634397859], [0.008, 1.84170519176, 52325.36948028299], [0.009, 1.58020929410, 130866.11389874699], [0.008, 1.31021834242, 78160.61665050399], [0.007, 3.52394232228, 209658.82487420217], [0.007, 5.30361639156, 51852.30086649099], [0.007, 1.68129390597, 103704.60173298199], [0.007, 4.93711462539, 77616.69859140778], [0.007, 4.26547182656, 130363.24963659538], [0.008, 5.88262362064, 51955.39364070959], [0.009, 2.85041915486, 52286.01260436779], [0.009, 4.54751921819, 222224.97657418498], [0.007, 2.95164397426, 58857.03113654799], [0.007, 5.09932324366, 26421.75908234360], [0.008, 5.95900851407, 625.67019231240], [0.008, 2.87611784406, 182595.65223011957], [0.007, 2.95245442922, 70269.18098269838], [0.009, 1.85768285044, 2168.76048228260], [0.009, 5.87894263333, 203041.89308344139], [0.007, 5.76376514627, 53399.62412392700], [0.007, 3.19368974135, 77947.31755506598], [0.007, 0.58513513972, 17893.62780836560], [0.007, 1.25969543054, 104275.34649502118], [0.007, 1.78997113742, 187167.27548807819], [0.007, 3.04234073392, 77101.23472031478], [0.007, 5.13452237557, 77307.42026875199], [0.008, 2.39389370291, 51534.39272140940], [0.007, 0.36315569295, 179172.74704605396], [0.009, 4.65044386389, 156954.01704032117], [0.007, 5.75015377153, 78580.10129437919], [0.008, 4.90310056069, 101703.15774082378], [0.007, 2.81152781596, 92741.06060792258], [0.007, 4.53777069646, 78339.97549599818], [0.008, 3.72793390212, 77795.74443436819], [0.007, 4.99225219771, 102659.44689679438], [0.008, 1.24101149187, 128857.55635958798], [0.006, 1.24806705522, 181659.72224941078], [0.007, 1.41908776548, 39450.35284837340], [0.008, 5.07207947299, 202420.14928260216], [0.006, 3.88021248158, 104991.50985261079], [0.007, 0.44811727260, 104301.61594439259], [0.007, 6.19019459405, 37698.45509994840], [0.008, 3.27628873745, 183145.01295611399], [0.006, 1.04156861985, 104197.83375581198], [0.007, 6.04804574225, 103189.13786188899], [0.007, 6.15588549143, 75930.51303185058], [0.007, 2.01982955946, 176332.24614102798], [0.007, 4.68299502093, 838.96928775040], [0.007, 4.32694078051, 104248.51979207818], [0.006, 0.30098706976, 54824.26110862140], [0.007, 2.39268679107, 80596.90581759460], [0.006, 0.45279066685, 225687.22128005017], [0.006, 4.93617566760, 215473.93573383917], [0.006, 4.22528261713, 79330.20490191258], [0.007, 5.53062936347, 917.93028598180], [0.006, 0.27837413876, 76137.83201734339], [0.007, 1.50054882304, 78313.70604662679], [0.006, 4.84865195534, 213255.17862965239], [0.007, 0.37969316028, 102872.74599223239], [0.006, 4.82915128356, 79859.89586700719], [0.007, 2.36435599398, 58220.03486452380], [0.007, 0.76243719900, 183674.70392120857], [0.006, 3.48561717935, 61560.64729122359], [0.007, 3.15542325331, 53029.00266490040], [0.006, 2.04066112896, 156534.53239644598], [0.006, 4.08906102427, 91919.56991589899], [0.006, 3.64988511750, 151199.94274106238], [0.006, 4.09613031145, 53867.97195265079], [0.006, 3.49486002612, 66653.15746634839], [0.007, 2.89745929648, 230239.17477710897], [0.006, 3.99809593088, 50380.54783942739], [0.006, 3.65663654813, 70383.62027138360], [0.006, 6.23319937932, 182619.20332637738], [0.006, 0.15202166498, 51859.41441349179], [0.006, 0.36162525319, 26823.77965510599], [0.006, 5.03417122369, 78786.28684281638], [0.006, 2.61401898803, 80382.47328510099], [0.006, 5.06939782090, 51841.95034237900], [0.008, 4.96432797037, 52396.21892558720], [0.006, 3.74091556543, 155475.15046625677], [0.006, 4.29792825666, 52812.80255517260], [0.007, 6.02219529486, 156507.74908854539], [0.005, 6.28085632767, 31415.37924995700], [0.006, 2.70517720720, 52492.19815280499], [0.007, 6.25185953525, 74935.57376844239], [0.005, 6.03800330793, 84944.93427812219], [0.007, 2.08385155566, 104819.57755665119], [0.005, 2.79143401592, 51315.49635439559], [0.007, 0.15300257128, 2014.98167179780], [0.006, 5.45690475475, 1243.48760167840], [0.005, 1.72310829290, 103718.82882698359], [0.005, 0.05343175320, 27044.19229754480], [0.005, 1.35980682609, 94329.77528619739], [0.007, 5.94496795198, 256327.07791868312], [0.006, 1.88665916947, 80174.90890793978], [0.005, 2.15640465605, 235900.50682626115], [0.005, 5.97271372078, 156314.11975400720], [0.006, 2.66620904510, 229129.79622501557], [0.005, 2.52891655111, 123758.29085447139], [0.006, 1.20953605164, 130459.18546877075], [0.005, 4.06443360712, 130285.73689738619], [0.007, 1.34355308244, 1731.12235293260], [0.005, 2.36158299954, 78896.49316403578], [0.005, 0.96987247797, 149288.74325784517], [0.005, 0.76610110351, 24864.08530079559], [0.005, 1.95647355963, 76571.54375522019], [0.005, 1.13701088228, 26312.24793727610], [0.005, 1.05826639118, 27780.06881107659], [0.005, 4.54130791881, 156740.71794488319], [0.006, 3.58276567647, 198489.93958638259], [0.005, 0.51603916276, 171292.65789271498], [0.006, 3.03452226064, 77741.13200662879], [0.005, 1.46111595893, 101011.00013959699], [0.005, 0.02805624095, 149756.70824819960], [0.005, 5.10195955921, 112231.70171963578], [0.005, 4.87459278742, 78413.27262185719], [0.007, 3.69898590349, 81604.32185142238], [0.005, 0.76195152302, 417406.45026518719], [0.005, 0.55904094194, 2383.19301477620], [0.005, 3.95096384085, 78188.92782615528], [0.005, 1.76549372525, 53771.99272543299], [0.005, 3.35356708410, 205260.65018762814], [0.006, 5.57902902188, 87253.17713015496], [0.005, 0.26610630357, 235746.72801577637], [0.005, 2.90596877294, 154194.22245657316], [0.004, 1.16974176650, 193937.98608932379], [0.004, 3.93130462476, 130289.95251073639], [0.004, 4.33627478046, 89.48574784600], [0.005, 2.80022335340, 4437.51420837359], [0.006, 4.70286246928, 91805.13062721379], [0.005, 1.82284966431, 1884.90116341740], [0.005, 2.02580304988, 259769.65286364855], [0.004, 4.65165864815, 195047.36464141717], [0.004, 0.58858147700, 323.50541665740], [0.004, 4.00623668740, 175376.64639941938], [0.004, 0.64833718455, 156377.85565231059], [0.004, 2.71436739189, 182402.02289558138], [0.005, 4.68929437146, 79315.97780791098], [0.004, 5.71176695959, 81591.84508100279], [0.004, 1.42876132655, 52252.07235442399], [0.005, 2.55069425936, 154308.66174525840], [0.005, 1.42813778372, 266540.36346489412], [0.004, 2.00085806148, 189386.03259226496], [0.005, 4.29231489707, 220025.88923089797], [0.004, 6.20316213523, 79116.90580647459], [0.004, 0.85257120719, 118007.47305747319], [0.004, 5.77579934605, 129799.61842155698], [0.004, 4.47492094862, 137678.19129947099], [0.004, 1.64566631180, 78697.42116259939], [0.005, 2.17514536840, 51329.72344839720], [0.006, 4.78710650697, 102755.42612401219], [0.004, 1.46002058771, 935.92998070881], [0.005, 5.13889133658, 130907.48069822539], [0.004, 1.89321187110, 2111.65031337760], [0.004, 0.10839681347, 38.13303563780], [0.005, 4.42201446083, 78057.52387628538], [0.005, 5.65870377214, 1300.82681820500], [0.005, 5.90579064813, 1478.86657406440], [0.004, 5.24580055005, 52309.91533273340], [0.004, 2.74756161638, 144916.86689107097], [0.005, 3.31232177694, 48847.67062686820], [0.004, 4.43048849829, 118828.96374949679], [0.004, 0.51369916437, 181563.05360783098], [0.004, 5.22571179686, 261988.40996783535], [0.004, 0.80000960641, 1485.29070670320], [0.004, 3.25642623421, 195181.47369100217], [0.005, 5.23264312237, 126996.94076290558], [0.004, 3.86524951456, 209762.60706278277], [0.004, 3.43760746038, 234261.43730907317], [0.004, 0.67741502331, 131079.41299418497], [0.004, 5.40862384292, 104984.39630560997], [0.004, 0.30384598125, 285907.55262712698], [0.004, 5.65734972357, 51868.24866217880], [0.004, 5.55015227967, 149846.19399604559], [0.004, 1.51752118872, 103814.80805420138], [0.004, 2.53135799952, 79487.52726550119], [0.004, 1.88512485652, 54879.42243782400], [0.004, 5.12386500502, 182622.43553802016], [0.004, 4.36228014188, 207747.62539098499], [0.004, 3.24471199066, 130020.03106399579], [0.004, 0.51045647492, 107692.22499299659], [0.004, 4.26267840541, 132658.27281205778], [0.004, 3.08522628552, 175844.61138977378], [0.004, 3.38866894732, 104888.41707839219], [0.004, 1.21404057369, 139543.42270198860], [0.005, 3.75130732000, 62197.64356324779], [0.004, 0.30056239753, 233202.05537888399], [0.004, 4.20598588282, 218916.51067880457], [0.004, 1.34568004641, 182828.62108645737], [0.004, 0.68519128486, 104276.83096772949], [0.004, 0.20412928769, 169093.57054942797], [0.003, 0.98973904852, 105418.10804348679], [0.004, 3.42019897755, 61279.71327726600], [0.003, 5.22780381742, 78338.49102328988], [0.003, 2.67114319601, 24998.19435038059], [0.004, 1.65814724695, 50800.03248330259], [0.004, 3.24764679291, 28286.99048486120], [0.004, 6.01723954923, 104237.17327761157], [0.003, 3.99050522839, 71378.55953479178], [0.003, 3.46632047879, 45494.58142974879], [0.003, 4.27304181959, 130593.29451835579], [0.003, 4.05932083484, 52822.81711646319], [0.003, 5.89324219451, 50483.64061364600], [0.003, 2.88091404327, 78149.27013603736], [0.003, 4.09573256493, 155460.92337225520], [0.003, 0.40695406256, 52278.89905736699], [0.003, 0.53381434741, 26709.64694241340], [0.003, 1.00008179165, 50264.60679993120], [0.004, 5.67939124426, 106470.37642667518], [0.003, 0.77610404005, 142871.55835826878], [0.003, 3.80375047171, 26402.08932144380], [0.003, 2.44134109777, 156520.30530244438], [0.003, 0.98764974659, 128843.32926558638], [0.003, 3.62903815930, 130435.63437251298], [0.003, 2.12651302584, 78469.89497315978], [0.003, 4.29158350083, 154408.65498906677], [0.003, 1.06499703474, 26734.91397488900], [0.003, 1.86490629185, 51707.84129279399], [0.003, 5.95559848753, 104344.98400739678], [0.004, 3.60184879954, 207114.15223730978], [0.003, 3.28684847821, 208276.62694171758], [0.003, 2.80509981839, 104358.24112519680], [0.003, 5.02808401414, 130432.40216087017], [0.003, 6.16601650050, 20043.67456019880], [0.003, 5.29581547615, 57503.28239153120], [0.003, 1.35036448550, 23919.14265929160], [0.002, 3.75076268715, 130005.80396999417], [0.003, 3.05479754348, 162810.49469943656], [0.003, 2.06087055668, 52065.59996192899], [0.003, 1.11245383788, 192828.60753723036], [0.002, 1.90218644384, 24356.78078864160], [0.002, 4.74203919229, 76887.93562487679], [0.002, 0.63548334553, 23384.28698689860], [0.002, 2.51564214512, 26667.59072857300], [0.002, 6.08909078783, 116783.65521669458], [0.002, 3.56733241522, 26073.67604757259], [0.003, 5.60392923976, 104466.05185498200], [0.002, 3.56126103854, 26189.86565983980], [0.002, 5.97797555746, 50167.24874398939], [0.002, 4.41481991835, 65538.25598994759], [0.002, 5.91297170155, 87367.61641884019], [0.002, 5.17508169630, 163298.12945069079], [0.003, 1.10832319418, 25600.26839032000], [0.002, 2.11477268878, 25773.71696170459], [0.002, 2.15515419441, 51951.46148744649], [0.003, 5.43138498093, 106684.80895916879], [0.002, 0.11511311275, 27170.98337386779], [0.002, 5.22579437397, 6885.14988993081], [0.002, 2.93412437896, 63786.35824152260], [0.003, 6.19860078008, 25004.82290928060], [0.002, 0.23150025826, 24448.83362438620], [0.002, 0.54898566845, 153084.84390447979], [0.002, 0.63373893542, 1265.56747862640], [0.002, 4.49873870855, 50007.04580086580], [0.002, 5.57750243319, 25928.60140678200], [0.002, 5.66467419812, 25466.15934073500], [0.002, 5.10682926241, 159969.99379441058], [0.002, 3.49751807681, 259819.64948555277], ], # L2 [ [53049.845, 0.00000000000, 0.00000000000], [16903.658, 4.69072300649, 26087.90314157420], [7396.711, 1.34735624669, 52175.80628314840], [3018.297, 4.45643539705, 78263.70942472259], [1107.419, 1.26226537554, 104351.61256629678], [378.173, 4.31998055900, 130439.51570787099], [122.998, 1.06868541052, 156527.41884944518], [38.663, 4.08011610182, 182615.32199101939], [14.898, 4.63343085810, 1109.37855209340], [11.861, 0.79187646439, 208703.22513259359], [5.243, 4.71799772791, 24978.52458948080], [3.575, 3.77317513032, 234791.12827416777], [2.566, 1.44059109766, 27197.28169366760], [2.045, 1.49570544876, 51066.42773105500], [1.064, 0.46023695675, 260879.03141574195], [0.972, 1.80344701358, 955.59974160860], [0.628, 6.18483168149, 529.69096509460], [0.628, 4.84930105320, 24498.83024629040], [0.763, 4.54299337366, 77154.33087262919], [0.654, 0.98170349539, 5661.33204915220], [0.572, 5.92841937309, 25028.52121138500], [0.552, 2.13228646570, 20426.57109242200], [0.507, 4.11466890786, 4551.95349705880], [0.608, 4.54152310086, 2218.75710418680], [0.439, 3.40705996719, 11322.66409830440], [0.381, 2.83442391504, 26617.59410666880], [0.370, 0.82360646560, 6770.71060124560], [0.312, 5.18785829630, 46514.47423399620], [0.314, 3.42002895816, 286966.93455731618], [0.307, 3.20507351217, 1059.38193018920], [0.332, 0.97416155325, 25132.30339996560], [0.327, 2.22989850002, 21535.94964451540], [0.303, 4.68482058244, 27043.50288318280], [0.247, 5.87612469398, 16983.99614745660], [0.311, 4.22422008005, 3442.57494496540], [0.237, 4.37101224231, 114.43928868521], [0.234, 0.93917232374, 30639.85663863300], [0.273, 1.29086264556, 103242.23401420339], [0.209, 3.30158370895, 213.29909543800], [0.197, 2.07792605062, 22645.32819660879], [0.182, 0.62534354989, 25448.00585526019], [0.219, 1.34188738340, 28306.66024576099], [0.168, 6.20806483822, 27147.28507176339], [0.156, 3.91999448441, 32858.61374281979], [0.160, 5.79377449410, 52705.49724824299], [0.153, 4.33936015634, 1589.07289528380], [0.161, 4.80105233203, 23869.14603738740], [0.148, 1.97575825359, 72602.37737557039], [0.145, 5.96024756685, 14765.23904326980], [0.129, 4.16213277137, 23969.13928119580], [0.135, 3.86775437070, 51220.20654153979], [0.140, 3.66642468738, 25558.21217647960], [0.108, 1.39723983534, 50586.73338786459], [0.115, 0.15124159675, 26301.20223701220], [0.113, 4.98137485250, 79373.08797681599], [0.115, 3.05230359467, 53285.18483524180], [0.099, 3.99635236807, 56727.75978020720], [0.099, 3.84242768306, 83925.04147387479], [0.093, 2.04998627084, 26068.23338067440], [0.092, 0.08628005998, 313054.83769889036], [0.094, 4.30968259383, 129330.13715577759], [0.085, 3.01984486981, 53235.18821333759], [0.105, 5.32363189985, 7238.67559160000], [0.095, 2.24093904831, 19317.19254032860], [0.099, 1.00218248773, 29530.47808653960], [0.075, 5.40269356209, 26091.78447693220], [0.074, 4.31017375756, 2333.19639287200], [0.086, 0.78555390902, 57837.13833230060], [0.081, 0.95889229790, 26107.57290247399], [0.085, 3.28561166885, 12432.04265039780], [0.070, 3.55533072657, 13521.75144159140], [0.078, 0.27707431029, 37410.56723987860], [0.063, 0.65828525440, 110012.94461544899], [0.064, 2.68437002997, 43071.89928903080], [0.067, 3.89216578780, 26084.02180621620], [0.064, 2.75958867988, 40853.14218484400], [0.061, 5.77836694481, 12566.15169998280], [0.069, 3.44813862795, 10213.28554621100], [0.060, 0.79452201416, 53131.40602475700], [0.063, 5.02106928248, 98690.28051714458], [0.063, 2.49160532665, 78793.40038981718], [0.059, 0.15541098170, 36301.18868778519], [0.056, 1.01839356017, 27676.97603685800], [0.053, 1.55958841442, 49957.04917896160], [0.052, 5.14041028675, 52156.13652224860], [0.052, 1.15062443564, 26202.34243025941], [0.052, 0.53687576880, 77308.10968311399], [0.048, 1.60851837486, 25234.70675982219], [0.048, 5.19507775798, 48733.23133818299], [0.053, 5.49113976101, 25661.30495069820], [0.046, 5.18676728087, 77204.32749453338], [0.044, 4.97145613800, 25973.46385288896], [0.054, 0.32708522231, 25874.60404613620], [0.042, 2.21900478384, 52179.68761850640], [0.045, 2.52716095523, 103292.23063610759], [0.048, 0.48944876530, 51646.11531805379], [0.039, 6.25275173960, 47623.85278608960], [0.041, 2.81015791586, 41962.52073693740], [0.037, 5.01445357044, 26080.78959457339], [0.038, 6.08585317961, 79323.09135491178], [0.043, 3.24574920597, 52389.10537858640], [0.041, 2.43000457106, 639.89728631400], [0.039, 0.76157461206, 82815.66292178139], [0.034, 3.28090243752, 62389.09182935939], [0.037, 0.05738918168, 38519.94579197200], [0.035, 5.78457148656, 68050.42387851159], [0.040, 3.14856042352, 426.59819087600], [0.042, 4.09553132731, 52195.47604404819], [0.032, 2.45518077222, 38654.05484155699], [0.039, 1.80165134294, 33326.57873317420], [0.041, 4.32141055637, 26095.01668857500], [0.032, 3.72358129034, 136100.84775702318], [0.040, 5.69015360764, 31749.23519072640], [0.032, 1.65828846012, 105460.99111839019], [0.032, 1.02549984810, 155418.04029735178], [0.030, 1.57915654792, 52168.69273614759], [0.031, 0.69335015231, 50057.04242277000], [0.033, 4.04678616141, 55618.38122811380], [0.029, 3.72464718175, 51535.90899683439], [0.029, 5.73654447860, 129380.13377768178], [0.038, 3.74472554242, 18849.22754997420], [0.028, 3.05059885517, 339142.74084046460], [0.035, 0.74194291507, 52171.92494779040], [0.028, 0.73918545262, 7880.08915333899], [0.036, 1.26742819742, 51116.42435295920], [0.035, 5.29298143160, 45405.09568190280], [0.032, 5.79438282818, 18093.37469954999], [0.026, 5.79318346346, 66941.04532641819], [0.028, 4.27104078603, 54394.56338733519], [0.024, 5.06304791610, 2118.76386037840], [0.030, 1.05420470769, 52182.91983014920], [0.025, 1.75996910240, 124778.18365871879], [0.022, 4.43631488516, 3328.13565628019], [0.022, 5.09106835544, 99799.65906923798], [0.022, 1.88199362566, 78244.03966382280], [0.021, 2.56123211200, 94138.32702008578], [0.025, 5.46150069597, 104881.30353139139], [0.025, 0.05236467599, 26514.50133245020], [0.025, 3.02983070039, 77734.01845962799], [0.020, 3.48966334599, 103396.01282468818], [0.021, 3.97495995227, 53764.87917843220], [0.018, 1.07895331282, 28421.09953444620], [0.019, 1.98308917333, 23754.70674870219], [0.018, 4.58631365960, 76044.95232053580], [0.019, 2.90042907299, 6283.07584999140], [0.019, 3.18954246101, 51109.31080595839], [0.018, 2.11231697626, 73711.75592766379], [0.017, 0.06118735536, 88476.99497093359], [0.018, 6.26984143774, 15874.61759536320], [0.018, 2.58820345674, 51123.53789995999], [0.017, 5.82864656129, 32370.97899156560], [0.018, 5.22519288335, 78267.59076008058], [0.015, 5.43053381026, 64741.95798313119], [0.015, 2.53107093357, 155468.03691925600], [0.020, 4.40959528115, 1223.81784077861], [0.015, 4.05461375332, 51962.50718771040], [0.015, 3.52769852262, 79219.30916633119], [0.015, 0.45988103836, 162188.75089859738], [0.015, 0.87152359342, 78283.37918562238], [0.014, 1.87990160627, 125887.56221081219], [0.016, 2.82759858554, 105410.99449648599], [0.013, 4.67219046898, 78256.59587772179], [0.016, 0.04901690153, 78477.00852016058], [0.014, 4.21146699511, 52290.24557183361], [0.014, 4.08726245298, 78270.82297172339], [0.015, 3.80902990348, 33967.99229491319], [0.016, 0.28761005157, 44937.13069154840], [0.014, 5.84330605810, 103821.92160120218], [0.015, 6.03738264520, 13655.86049117640], [0.012, 0.81685952408, 81706.28436968799], [0.015, 3.79894620695, 108903.56606335558], [0.011, 3.26651828162, 52602.40447402440], [0.011, 1.28755195884, 29416.03879785439], [0.011, 4.03185618461, 181505.94343892598], [0.011, 5.58448046140, 120226.23016165999], [0.012, 0.32316787548, 91785.46086631398], [0.013, 2.02636565149, 71492.99882347698], [0.015, 3.56357453844, 76674.63652943878], [0.013, 3.80590035776, 78259.82808936459], [0.010, 0.04109363791, 77197.21394753258], [0.010, 6.00753285175, 365230.64398203877], [0.010, 1.74642821988, 52061.36699446317], [0.013, 2.79229719351, 636.99627202420], [0.011, 5.52780687723, 26727.80042788820], [0.011, 4.04728142335, 45892.73043315699], [0.008, 4.96985130540, 151975.46535238638], [0.008, 3.44547998787, 23439.44831610119], [0.011, 2.54429302352, 44181.27784112419], [0.010, 3.50274229100, 65697.55772473979], [0.009, 2.45809063705, 93028.94846799239], [0.009, 4.92568932060, 104331.94280539699], [0.008, 0.80535713418, 71980.63357473118], [0.010, 2.20026830808, 130969.20667296558], [0.007, 2.30885367448, 18207.81398823521], [0.010, 5.72020107388, 77211.44104153418], [0.007, 0.15536656581, 129483.91596626239], [0.008, 2.31255848253, 58458.88213313979], [0.007, 2.07713892797, 90829.86112470538], [0.007, 3.50101836609, 117873.36400788819], [0.007, 3.20275960823, 64607.84893354619], [0.007, 4.73829767381, 51322.60990139639], [0.007, 5.65553946700, 181555.94006083018], [0.009, 2.56870006051, 129909.82474277639], [0.008, 0.67171808844, 79852.78232000639], [0.007, 4.06204756163, 39609.65458316560], [0.007, 1.46575838897, 853.19638175200], [0.007, 2.57400610109, 69159.80243060499], [0.006, 3.86283147263, 59414.48187474840], [0.006, 1.33545681950, 102132.85546210999], [0.007, 2.80506785787, 39743.76363275060], [0.006, 1.66711581835, 28206.66700195260], [0.008, 4.73806237855, 150866.08680029298], [0.006, 0.81325444169, 207593.84658050019], [0.006, 0.06925555540, 58946.51688439399], [0.006, 3.09908354288, 114564.89811250778], [0.006, 0.88473087003, 104358.72611329758], [0.006, 3.51715962887, 188276.65404017159], [0.006, 4.13083556162, 54509.00267602040], [0.006, 3.14680331401, 104564.91166173479], [0.007, 5.89465282471, 131498.89763806018], [0.005, 0.27174681491, 143961.26714946239], [0.005, 5.25316838887, 3340.61242669980], [0.007, 1.99860349328, 104355.49390165479], [0.005, 1.47362369989, 9103.90699411760], [0.007, 0.60725013988, 60055.89543648739], [0.005, 3.20081630256, 13541.42120249119], [0.006, 0.50137409605, 63498.47038145279], [0.005, 5.07739475360, 97580.90196505119], [0.005, 1.35632842517, 104344.49901929598], [0.005, 2.16611734526, 103925.01437542078], [0.005, 4.04581717475, 98068.53671630539], [0.005, 4.90166806916, 22759.76748529401], [0.005, 3.87246722733, 89586.37352302698], [0.005, 3.01510200596, 103285.11708910679], [0.006, 1.44791474080, 78050.41032928458], [0.005, 2.47831218420, 26241.68195205900], [0.005, 3.85799454501, 107794.18751126219], [0.005, 0.57300969993, 134991.46920492980], [0.005, 2.38724530268, 146314.13330323418], [0.004, 6.11121027497, 90695.75207512038], [0.004, 1.83181231470, 74821.13447975718], [0.004, 5.23938469806, 130012.91751699499], [0.005, 1.18020888905, 27311.72098235281], [0.005, 3.00001411726, 85034.42002596818], [0.005, 5.56662713374, 155997.72788435058], [0.005, 2.35342507828, 145204.75475114078], [0.004, 4.57119707855, 157636.79740153858], [0.004, 5.78384635962, 51742.09454527159], [0.004, 2.41778026187, 157483.01859105378], [0.005, 2.53226316949, 103299.34418310839], [0.004, 3.71458526250, 26555.86813192860], [0.004, 3.83639975710, 150244.34299945380], [0.004, 3.30201863644, 76144.94556434419], [0.004, 0.68904721853, 124156.43985787958], [0.004, 1.73206522989, 178063.36849396059], [0.005, 3.20991489892, 71025.03383312259], [0.005, 3.69408876581, 105940.68546158058], [0.004, 2.75867944254, 391318.54712361295], [0.005, 0.53586068200, 80482.46652890938], [0.004, 5.07565982849, 51756.32163927320], [0.004, 0.12462379137, 78690.30761559859], [0.004, 5.25512859919, 157057.10981453978], [0.004, 5.66367904256, 9384.84100807520], [0.004, 4.70366039546, 54294.57014352679], [0.004, 4.74767635950, 204151.27163553477], [0.003, 3.24177385660, 155571.81910783658], [0.003, 0.85377908455, 16066.06586147480], [0.003, 1.58566666033, 130226.21661243298], [0.004, 5.58218314089, 119116.85160956658], [0.004, 0.94898112028, 78378.14871340781], [0.004, 6.15781348253, 97112.93697469679], [0.004, 2.31787867435, 52815.70356946240], [0.004, 2.73401660736, 78417.48823520739], [0.004, 5.67762508473, 183674.70392120857], [0.004, 0.21138526735, 214364.55718174577], [0.004, 5.24311464709, 116917.76426627958], [0.003, 3.86634858823, 104371.28232719658], [0.004, 5.42881221134, 233731.74634397859], [0.003, 1.97251042531, 183145.01295611399], [0.003, 0.60740481915, 133882.09065283637], [0.003, 6.23399386415, 181659.72224941078], [0.004, 6.22336284288, 140652.80125408198], [0.003, 5.94876130841, 25035.63475838580], [0.003, 3.83428144879, 233681.74972207437], [0.003, 2.32902857669, 182085.63102592478], [0.003, 2.84354681160, 123200.84011627098], [0.003, 1.53933182823, 176953.98994186718], [0.004, 2.45893471155, 207643.84320240439], [0.003, 5.72001402121, 102762.53967101299], [0.004, 1.40880562474, 80382.47328510099], [0.003, 4.90489886883, 51749.20809227239], [0.003, 4.76799924569, 104138.31347085879], [0.004, 6.26291139255, 25021.40766438420], [0.003, 0.40352872921, 132028.58860315479], [0.003, 2.66696150741, 157586.80077963436], [0.003, 5.23202292846, 84546.78527471398], [0.003, 4.59428408981, 131548.89425996438], [0.003, 2.53649995681, 50579.61984086379], [0.003, 2.55542640702, 77829.99768684579], [0.004, 1.67304824627, 130419.84594697120], [0.003, 6.21862713072, 95247.70557217918], [0.003, 5.37878648081, 44295.71712980940], [0.003, 4.68342323732, 156507.74908854539], [0.003, 3.36164307862, 104778.21075717278], [0.003, 2.91632245418, 166740.70439565618], [0.002, 0.72039482289, 7994.52844202420], [0.002, 5.43309839263, 78903.60671103658], [0.002, 1.12849064703, 183724.70054311279], [0.003, 1.94668130835, 143005.66740785379], [0.003, 0.56289392960, 104347.73123093879], [0.002, 1.78482957305, 156531.30018480320], [0.003, 5.03542424850, 130443.39704322898], [0.003, 4.72735160431, 78149.27013603736], [0.002, 5.31651763274, 208173.53416749899], [0.003, 5.36470448658, 131395.11544947958], [0.002, 0.06581745526, 196137.07343261078], [0.002, 2.93678015526, 167850.08294774959], [0.002, 5.84781134233, 65831.66677432480], [0.002, 5.56634055777, 70269.18098269838], [0.002, 5.42145220392, 183570.92173262799], [0.002, 6.06636386319, 53242.30176033840], [0.002, 4.37154457896, 128220.75860368418], [0.002, 0.35903300236, 187167.27548807819], [0.002, 2.78347515438, 79330.20490191258], [0.002, 4.51952536661, 203041.89308344139], [0.002, 3.36865001265, 170049.17029103660], [0.002, 3.08184453618, 50593.84693486539], [0.002, 4.32534428501, 55503.94193942859], [0.002, 1.81636961816, 110634.68841628819], [0.002, 5.58793955981, 103917.90082841998], [0.002, 5.79409172557, 417406.45026518719], [0.002, 0.85923934181, 235900.50682626115], [0.002, 4.60084058009, 26941.09952332620], [0.002, 5.14995676460, 182188.72380014337], [0.002, 3.91756419842, 130446.62925487179], [0.002, 2.88997273266, 27154.39861876420], [0.003, 5.85721944439, 52329.58509363319], [0.002, 6.10145799164, 77623.81213840858], [0.002, 1.98246165585, 77844.22478084739], [0.002, 0.11071759480, 130866.11389874699], [0.002, 0.64849171165, 52643.77127350280], [0.002, 3.98410950717, 104466.05185498200], [0.002, 1.83715639115, 123668.80510662538], [0.002, 5.61305711026, 76667.52298243798], [0.002, 5.83992902277, 19804.82729158280], [0.002, 0.54331921743, 130459.18546877075], [0.002, 0.00997429525, 141762.17980617538], [0.002, 5.59377744943, 35191.81013569180], [0.002, 0.39746661127, 26521.61487945100], [0.002, 6.16192704020, 130652.81480330898], [0.002, 0.85416063806, 25934.12433108940], [0.002, 2.18339110714, 156100.82065856917], [0.002, 4.39281517355, 130432.40216087017], [0.002, 5.50117730009, 172402.03644480839], [0.001, 3.49234867738, 130435.63437251298], [0.001, 4.80995492080, 77837.11123384659], [0.002, 6.26921260007, 87367.61641884019], [0.002, 2.79561490409, 115674.27666460119], [0.002, 4.92122664455, 24864.08530079559], [0.001, 2.41576832330, 26037.90651966999], [0.001, 6.04596837149, 129373.02023068098], [0.002, 0.94020572434, 80596.90581759460], [0.002, 0.30073776192, 51639.00177105299], [0.001, 0.18846827752, 34082.43158359840], [0.001, 3.62844435085, 161079.37234650398], [0.002, 5.13133615893, 49842.60989027639], [0.001, 0.30832555285, 53228.07466633679], [0.001, 5.56519625382, 129387.24732468258], [0.001, 5.63110777945, 46848.33017476560], [0.001, 1.38420566741, 26011.63707029860], [0.001, 5.86450783334, 26724.89941359840], [0.001, 6.14517818644, 76681.75007643958], [0.001, 3.19299019423, 25654.19140369739], [0.001, 0.34495954566, 128850.44281258718], [0.001, 3.60230008239, 20760.42703319140], [0.001, 5.80015495751, 19406.67828817460], [0.001, 4.42116052212, 100909.03762133139], [0.001, 0.48535289275, 52698.38370124219], [0.001, 6.22940855233, 111590.28815789679], [0.001, 0.16055219324, 105307.21230790539], [0.001, 2.19795772042, 29428.51556827400], [0.001, 5.09783503526, 102232.84870591838], [0.001, 0.61014627166, 25668.41849769900], [0.001, 5.62459774786, 25565.32572348040], [0.001, 0.90991571866, 103711.71527998279], [0.001, 0.28037611495, 25450.90686955000], [0.001, 0.54824728173, 26137.89976347840], [0.001, 4.25324476801, 209812.60368468694], [0.001, 0.08089899001, 51543.02254383520], [0.001, 0.33953378597, 51528.79544983359], [0.001, 4.15667461533, 25551.09862947879], [0.001, 1.59597814656, 72936.23331633979], [0.001, 5.59362222240, 25619.93815121980], [0.001, 3.26520760555, 240452.46032331997], [0.001, 5.52286605071, 52125.80966124419], ], # L3 [ [188.077, 0.03466830117, 52175.80628314840], [142.152, 3.12505452600, 26087.90314157420], [96.877, 3.00378171915, 78263.70942472259], [43.669, 6.01867965826, 104351.61256629678], [35.395, 0.00000000000, 0.00000000000], [18.045, 2.77538373991, 130439.51570787099], [6.971, 5.81808665742, 156527.41884944518], [2.556, 2.57014364454, 182615.32199101939], [0.900, 5.59308888939, 208703.22513259359], [0.307, 2.32189002493, 234791.12827416777], [0.117, 3.16567324160, 24978.52458948080], [0.102, 5.32134064237, 260879.03141574195], [0.077, 6.24155593431, 51066.42773105500], [0.057, 6.11222330831, 27197.28169366760], [0.034, 2.03244612467, 286966.93455731618], [0.038, 2.99912912226, 77154.33087262919], [0.031, 3.11483471984, 53285.18483524180], [0.017, 6.02950226714, 103242.23401420339], [0.011, 5.00109293882, 313054.83769889036], [0.009, 0.59396483404, 20426.57109242200], [0.009, 3.65190477342, 46514.47423399620], [0.009, 6.28305510644, 79373.08797681599], [0.008, 2.74138109305, 129330.13715577759], [0.007, 5.79018632644, 25132.30339996560], [0.005, 0.33554769835, 72602.37737557039], [0.005, 1.31115810350, 26617.59410666880], [0.004, 2.46414914425, 51220.20654153979], [0.004, 1.74528964721, 339142.74084046460], [0.004, 4.31141963105, 52705.49724824299], [0.004, 3.07093349506, 27043.50288318280], [0.004, 5.68013701250, 30639.85663863300], [0.003, 5.80662640937, 155418.04029735178], [0.003, 4.64519088060, 27147.28507176339], [0.004, 3.02893592955, 23869.14603738740], [0.003, 4.35199345075, 79323.09135491178], [0.003, 1.29040630287, 53235.18821333759], [0.003, 4.34017676059, 14765.23904326980], [0.003, 2.86652251194, 105460.99111839019], [0.003, 6.23875368963, 28306.66024576099], [0.003, 3.37815322354, 98690.28051714458], [0.002, 5.37466119262, 110012.94461544899], [0.002, 0.16040583556, 50586.73338786459], [0.002, 0.35038889636, 19317.19254032860], [0.002, 6.23271649650, 49957.04917896160], [0.002, 2.52219274566, 181505.94343892598], [0.002, 5.05358903232, 162188.75089859738], [0.002, 0.15071040297, 124778.18365871879], [0.002, 2.29024350361, 56727.75978020720], [0.002, 0.42411179784, 71492.99882347698], [0.002, 6.11262694468, 57837.13833230060], [0.002, 2.17198531948, 108903.56606335558], [0.002, 2.92723030315, 54394.56338733519], [0.002, 2.40411188609, 83925.04147387479], [0.002, 3.43613336205, 78267.59076008058], [0.002, 4.77873510695, 365230.64398203877], [0.002, 3.54043808451, 64741.95798313119], [0.002, 1.60502923885, 77734.01845962799], [0.002, 3.11800510932, 150866.08680029298], [0.002, 1.02098746090, 78793.40038981718], [0.002, 4.39439085682, 88476.99497093359], [0.002, 1.49912329404, 43071.89928903080], [0.002, 1.96277160647, 25558.21217647960], [0.002, 4.76774165204, 77204.32749453338], [0.002, 0.61066658116, 155468.03691925600], [0.002, 5.26875308161, 77308.10968311399], [0.002, 0.52736095020, 94138.32702008578], [0.002, 2.05793854229, 103396.01282468818], [0.002, 4.12698349577, 66941.04532641819], [0.002, 5.43336870762, 78283.37918562238], [0.002, 1.97520131105, 136100.84775702318], [0.002, 5.54343111585, 81706.28436968799], [0.002, 1.25444219651, 40853.14218484400], [0.002, 1.07684180123, 103292.23063610759], [0.001, 3.23979322492, 52156.13652224860], [0.002, 5.33834891475, 52182.91983014920], [0.002, 3.36867866204, 99799.65906923798], [0.002, 5.40697906670, 82815.66292178139], [0.001, 5.80853057947, 4551.95349705880], [0.001, 4.95909385120, 129483.91596626239], [0.001, 3.17481245588, 76674.63652943878], [0.001, 1.53803169600, 52389.10537858640], [0.001, 2.48052961456, 53764.87917843220], [0.001, 1.20843095195, 105410.99449648599], [0.002, 3.64576833526, 45405.09568190280], [0.002, 4.00710217385, 104881.30353139139], [0.001, 3.09532094520, 76044.95232053580], [0.001, 5.52119023864, 58946.51688439399], [0.002, 5.53036712466, 131548.89425996438], [0.001, 0.38352295948, 52179.68761850640], [0.001, 0.08902944955, 51116.42435295920], [0.001, 1.47514166670, 62389.09182935939], [0.001, 4.20864838814, 131498.89763806018], [0.001, 2.88161012078, 79219.30916633119], [0.001, 5.03155341199, 51646.11531805379], [0.001, 0.05873279909, 53131.40602475700], [0.001, 0.60647620600, 38654.05484155699], [0.001, 1.58007357234, 391318.54712361295], [0.001, 0.68687557696, 130969.20667296558], [0.001, 3.90367213586, 129380.13377768178], [0.001, 2.11138180302, 32858.61374281979], [0.001, 0.18542211423, 78244.03966382280], [0.001, 1.24063083423, 9103.90699411760], [0.001, 1.78547815249, 188276.65404017159], [0.001, 0.94125502564, 93028.94846799239], [0.001, 2.41309932759, 55618.38122811380], [0.001, 2.29683748973, 52195.47604404819], [0.001, 3.39284109553, 25028.52121138500], [0.001, 4.29717383023, 26301.20223701220], [0.001, 6.10639166059, 102132.85546210999], [0.001, 4.58189329524, 37410.56723987860], [0.001, 6.16145880062, 125887.56221081219], [0.001, 5.22010441376, 52171.92494779040], [0.001, 5.95645110567, 80482.46652890938], [0.001, 4.81981872221, 26107.57290247399], [0.001, 4.27546069271, 36301.18868778519], [0.001, 2.43374991272, 51535.90899683439], [0.001, 4.03088051207, 1109.37855209340], [0.001, 5.60495524983, 207593.84658050019], [0.001, 4.89918476796, 35191.81013569180], [0.001, 6.07747011982, 27676.97603685800], [0.001, 5.48361013686, 29530.47808653960], [0.001, 0.15288602386, 25448.00585526019], [0.001, 2.18342825402, 63498.47038145279], [0.001, 3.67054321453, 21535.94964451540], [0.001, 1.49815422727, 26084.02180621620], [0.001, 1.75551273491, 26095.01668857500], [0.001, 2.60061927559, 12566.15169998280], [0.001, 2.69537843932, 52290.24557183361], [0.001, 4.87760109673, 25874.60404613620], [0.001, 2.82170820105, 26091.78447693220], [0.001, 0.20736391933, 52061.36699446317], [0.001, 3.82330817663, 68050.42387851159], [0.001, 4.42501613287, 22645.32819660879], [0.001, 6.01128227925, 52168.69273614759], [0.001, 0.28595674172, 11322.66409830440], [0.001, 5.86280830053, 26202.34243025941], [0.001, 3.42109354799, 25973.46385288896], [0.001, 0.30050065300, 41962.52073693740], [0.001, 2.73414310032, 25035.63475838580], [0.001, 1.72346523407, 51962.50718771040], [0.001, 4.77297529316, 78477.00852016058], [0.001, 5.84491832575, 50057.04242277000], [0.001, 3.22072290870, 25021.40766438420], [0.001, 4.74388045372, 26514.50133245020], [0.001, 4.31760630574, 69159.80243060499], [0.001, 0.65529515413, 426.59819087600], [0.000, 1.96307435492, 1059.38193018920], [0.001, 5.58694327783, 79852.78232000639], [0.000, 3.84680432548, 26080.78959457339], [0.001, 6.07111696987, 102762.53967101299], [0.000, 0.59142287644, 73711.75592766379], [0.001, 5.84438975852, 105307.21230790539], [0.001, 2.82906439989, 24498.83024629040], ], # L4 [ [114.078, 3.14159265359, 0.00000000000], [3.247, 2.02848007619, 26087.90314157420], [1.914, 1.41731803758, 78263.70942472259], [1.727, 4.50137643801, 52175.80628314840], [1.237, 4.49970181057, 104351.61256629678], [0.645, 1.26591776986, 130439.51570787099], [0.298, 4.30600984981, 156527.41884944518], [0.128, 1.05702505039, 182615.32199101939], [0.051, 4.08566191934, 208703.22513259359], [0.020, 0.82130394681, 234791.12827416777], [0.008, 3.82199615635, 260879.03141574195], [0.003, 0.54824060574, 286966.93455731618], [0.002, 3.52134138964, 313054.83769889036], [0.001, 1.67435118540, 24978.52458948080], [0.002, 4.60718203612, 51066.42773105500], [0.001, 1.11396201203, 129330.13715577759], [0.001, 4.35040700322, 103242.23401420339], [0.001, 4.17434865844, 79373.08797681599], [0.001, 1.20388630609, 77154.33087262919], [0.001, 4.84677084740, 27197.28169366760], [0.001, 0.29913093643, 339142.74084046460], [0.000, 4.11587125815, 155418.04029735178], [0.000, 0.73293870976, 46514.47423399620], [0.000, 3.68822427283, 21535.94964451540], [0.000, 3.83816920045, 20426.57109242200], [0.000, 4.73086078962, 1059.38193018920], [0.000, 0.40939402954, 24498.83024629040], [0.000, 3.30678220146, 365230.64398203877], ], # L5 [ [0.877, 3.14159265359, 0.00000000000], [0.059, 3.37513289692, 52175.80628314840], [0.042, 0.02433099382, 78263.70942472259], [0.043, 4.65071406046, 26087.90314157420], [0.031, 2.98112204944, 104351.61256629678], [0.019, 6.00992467582, 130439.51570787099], [0.010, 2.75699791920, 156527.41884944518], [0.005, 5.79082359724, 182615.32199101939], [0.002, 2.51435448230, 208703.22513259359], [0.001, 5.49411470932, 234791.12827416777], [0.001, 2.23688504668, 260879.03141574195], [0.001, 5.18718589133, 286966.93455731618], [0.000, 2.11315496491, 313054.83769889036], ], ] """This table contains Mercury's periodic terms (all of them) from the planetary theory VSOP87 for the heliocentric longitude at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in pages 414-415.""" VSOP87_B = [ # B0 [ [11737528.962, 1.98357498767, 26087.90314157420], [2388076.996, 5.03738959685, 52175.80628314840], [1222839.532, 3.14159265359, 0.00000000000], [543251.810, 1.79644363963, 78263.70942472259], [129778.770, 4.83232503961, 104351.61256629678], [31866.927, 1.58088495667, 130439.51570787099], [7963.301, 4.60972126348, 156527.41884944518], [2014.189, 1.35324164694, 182615.32199101939], [513.953, 4.37835409309, 208703.22513259359], [207.674, 4.91772564073, 27197.28169366760], [208.584, 2.02020294153, 24978.52458948080], [132.013, 1.11908492283, 234791.12827416777], [100.454, 5.65684734206, 20426.57109242200], [121.395, 1.81271752059, 53285.18483524180], [91.566, 2.28163128692, 25028.52121138500], [99.214, 0.09391887097, 51116.42435295920], [94.574, 1.24184909234, 31749.23519072640], [78.785, 4.40725880000, 57837.13833230060], [77.747, 0.52557061749, 1059.38193018920], [84.264, 5.08510388314, 51066.42773105500], [49.948, 3.49752993688, 5661.33204915220], [46.454, 3.23739270829, 77204.32749453338], [44.767, 4.87849816734, 79373.08797681599], [40.766, 2.46558332165, 46514.47423399620], [37.378, 4.45768797944, 4551.95349705880], [34.082, 4.14209210575, 260879.03141574195], [35.911, 1.09057317869, 1109.37855209340], [31.953, 1.18516389747, 83925.04147387479], [30.954, 3.50328027210, 21535.94964451540], [31.808, 2.41474588439, 47623.85278608960], [28.691, 1.84828614269, 77154.33087262919], [25.765, 2.77593370583, 27043.50288318280], [25.199, 3.59062266460, 27147.28507176339], [20.244, 3.06833797229, 51646.11531805379], [18.591, 5.58427274440, 73711.75592766379], [16.971, 0.02791276551, 103292.23063610759], [20.099, 4.06593040301, 25132.30339996560], [17.002, 6.13739392193, 41962.52073693740], [14.984, 1.64717994813, 105460.99111839019], [14.186, 0.33074185469, 10213.28554621100], [15.577, 6.07693643204, 53131.40602475700], [15.795, 3.79629547258, 529.69096509460], [14.011, 5.52786452723, 72602.37737557039], [12.309, 3.16626298867, 14765.23904326980], [11.261, 0.11326534696, 13521.75144159140], [12.448, 4.05109331029, 39609.65458316560], [13.044, 3.48016433624, 37410.56723987860], [11.042, 4.23192662377, 110012.94461544899], [11.152, 0.55658461820, 63498.47038145279], [10.717, 1.53686240986, 25661.30495069820], [10.213, 2.87881017166, 12566.15169998280], [9.924, 0.94824584866, 65697.55772473979], [11.047, 5.79741510309, 51749.20809227239], [10.460, 5.82962163777, 50586.73338786459], [9.774, 1.66271762650, 24498.83024629040], [9.412, 1.82364886045, 15874.61759536320], [12.866, 4.81650804018, 30639.85663863300], [9.123, 4.88604394110, 103242.23401420339], [9.011, 1.04262074744, 426.59819087600], [8.735, 3.04132552652, 68050.42387851159], [8.491, 1.05130498445, 1589.07289528380], [8.835, 0.88128343813, 286966.93455731618], [8.823, 5.81343662067, 11322.66409830440], [8.196, 0.84015129448, 51220.20654153979], [7.640, 3.43584035231, 36301.18868778519], [9.175, 6.16059719071, 77734.01845962799], [8.897, 0.39691733779, 53235.18821333759], [7.253, 2.37179970828, 99799.65906923798], [7.104, 5.73557153523, 26617.59410666880], [8.322, 5.27157128800, 25558.21217647960], [6.578, 2.66741925057, 52705.49724824299], [5.825, 6.25072627414, 33326.57873317420], [5.625, 3.08030000230, 129380.13377768178], [5.295, 1.35863387771, 45892.73043315699], [5.116, 2.67576280851, 76674.63652943878], [5.035, 2.66614676257, 77837.11123384659], [4.762, 4.68983196238, 131548.89425996438], [5.714, 2.87339047644, 79219.30916633119], [5.601, 5.37190885150, 955.59974160860], [4.965, 3.47619946892, 59414.48187474840], [5.468, 1.43781223143, 56727.75978020720], [4.080, 4.01667499000, 91785.46086631398], [3.971, 5.44452771841, 6283.07584999140], [4.063, 5.64291749144, 26068.23338067440], [3.877, 3.60887633874, 89586.37352302698], [4.047, 5.95235957644, 38654.05484155699], [4.064, 1.46283079734, 26107.57290247399], [3.681, 0.47365215122, 62389.09182935939], [4.247, 6.23163402945, 40853.14218484400], [3.694, 2.75543227024, 7238.67559160000], [3.348, 5.91868911857, 43071.89928903080], [4.475, 2.28937952702, 98690.28051714458], [3.115, 0.74943919509, 32858.61374281979], [3.100, 3.35203735852, 19804.82729158280], [3.215, 6.11374633777, 94138.32702008578], [3.558, 0.98820289555, 136100.84775702318], [2.908, 4.06284172838, 26514.50133245020], [2.799, 1.63602212056, 129330.13715577759], [2.800, 3.88358619611, 77308.10968311399], [2.680, 4.48235268618, 71980.63357473118], [2.767, 4.12700796923, 27676.97603685800], [3.285, 0.39398081520, 18849.22754997420], [3.290, 2.93487892542, 103821.92160120218], [3.048, 0.67698362024, 9103.90699411760], [2.484, 5.42332204960, 125887.56221081219], [2.663, 1.70280488847, 16983.99614745660], [2.791, 2.76839978418, 26091.78447693220], [2.747, 5.75135788288, 19317.19254032860], [2.676, 5.73635682216, 78793.40038981718], [2.710, 4.31274902720, 58946.51688439399], [2.877, 3.45410696457, 79323.09135491178], [2.787, 4.34025817469, 26084.02180621620], [2.097, 2.09090732812, 23869.14603738740], [2.297, 3.90321251530, 313054.83769889036], [2.535, 3.05170623483, 69159.80243060499], [2.211, 4.65120210900, 28306.66024576099], [1.912, 5.78403850812, 102762.53967101299], [2.265, 3.34478937379, 22645.32819660879], [1.817, 5.74251490625, 103925.01437542078], [1.961, 5.94577427093, 105307.21230790539], [1.922, 4.43763124338, 82815.66292178139], [1.667, 4.51887419928, 52195.47604404819], [1.771, 6.12278757535, 155468.03691925600], [1.515, 1.72458115830, 54394.56338733519], [1.585, 0.23900687506, 85502.38501632259], [1.477, 4.73359545019, 29530.47808653960], [1.469, 1.44574704924, 157636.79740153858], [1.653, 2.41345886386, 52156.13652224860], [1.377, 0.59981573116, 26080.78959457339], [1.430, 0.78416943990, 117873.36400788819], [1.680, 3.42684715134, 6770.71060124560], [1.604, 4.52048871587, 3442.57494496540], [1.345, 0.31857167988, 51535.90899683439], [1.357, 3.17349203273, 25874.60404613620], [1.250, 2.33380858079, 25448.00585526019], [1.196, 2.09277609512, 48733.23133818299], [1.194, 0.36376300747, 115674.27666460119], [1.443, 2.73186009497, 64741.95798313119], [1.375, 5.32672767568, 124778.18365871879], [1.325, 3.57805811914, 88476.99497093359], [1.115, 0.26092087309, 639.89728631400], [1.094, 2.22755234371, 32370.97899156560], [1.433, 3.03965981318, 66941.04532641819], [1.370, 3.45924813827, 44937.13069154840], [1.003, 0.28769164324, 25934.12433108940], [1.136, 1.11057140999, 52171.92494779040], [1.000, 0.52457514920, 26241.68195205900], [1.033, 2.55563840213, 45405.09568190280], [1.096, 5.01257889902, 7.11354700080], [1.146, 5.40631829059, 213.29909543800], [1.080, 5.97835772937, 129909.82474277639], [0.988, 1.25815251981, 98068.53671630539], [1.062, 2.88132742088, 120226.23016165999], [0.892, 0.63710475446, 103396.01282468818], [1.041, 0.89365572198, 52602.40447402440], [0.978, 0.93067667928, 53764.87917843220], [1.136, 5.82023159264, 52179.68761850640], [0.838, 4.66556603681, 155418.04029735178], [0.910, 5.53568417425, 58458.88213313979], [0.834, 5.16159172473, 49957.04917896160], [1.100, 4.02157761190, 162188.75089859738], [0.805, 1.03425281191, 23969.13928119580], [0.835, 5.28205659749, 50057.04242277000], [0.891, 0.21542628779, 105410.99449648599], [0.743, 0.86945390288, 52389.10537858640], [0.783, 3.32304812554, 26301.20223701220], [0.711, 1.57780048955, 2118.76386037840], [0.801, 2.18220012579, 151975.46535238638], [0.915, 1.71247948367, 51962.50718771040], [0.832, 5.53506450006, 74821.13447975718], [0.750, 2.16183196338, 52168.69273614759], [0.923, 2.50170936928, 104881.30353139139], [0.727, 6.05394635764, 95247.70557217918], [0.640, 2.71738158564, 131395.11544947958], [0.628, 1.43868691098, 55618.38122811380], [0.622, 3.46102298068, 77623.81213840858], [0.825, 1.00561540075, 85034.42002596818], [0.611, 0.99677911598, 2218.75710418680], [0.605, 4.68164610499, 52182.91983014920], [0.646, 2.57803910757, 128850.44281258718], [0.621, 1.16576338077, 108903.56606335558], [0.651, 1.60040223342, 26095.01668857500], [0.599, 2.51123620954, 130012.91751699499], [0.570, 1.27714994259, 78283.37918562238], [0.616, 2.88990323867, 52026.24308601380], [0.553, 5.17654422678, 25938.33994443960], [0.560, 3.32834155275, 51109.31080595839], [0.538, 4.74592892110, 80482.46652890938], [0.514, 5.52495783925, 25021.40766438420], [0.512, 2.12021253064, 25035.63475838580], [0.545, 1.31029342517, 26555.86813192860], [0.475, 4.05390077061, 149.56319713460], [0.464, 3.26222495894, 111590.28815789679], [0.460, 5.34048307893, 46848.33017476560], [0.550, 5.84636069235, 25619.93815121980], [0.447, 3.57688571640, 1066.49547719000], [0.550, 6.22077946049, 51123.53789995999], [0.596, 0.64492352990, 339142.74084046460], [0.484, 3.16177806139, 38519.94579197200], [0.441, 0.67395966884, 1052.26838318840], [0.477, 0.22606306742, 71025.03383312259], [0.423, 2.08215220948, 76144.94556434419], [0.472, 3.35508518254, 35191.81013569180], [0.418, 3.57908956341, 52329.58509363319], [0.441, 4.91196768491, 78050.41032928458], [0.440, 4.47866581814, 183724.70054311279], [0.435, 1.98197259533, 26094.53170047421], [0.564, 5.45416215614, 78244.03966382280], [0.540, 2.87570725847, 181555.94006083018], [0.450, 6.09063658976, 93028.94846799239], [0.461, 3.82361162048, 143961.26714946239], [0.408, 3.34314470563, 52022.02747266360], [0.412, 2.07516355558, 150866.08680029298], [0.435, 5.12507754577, 26081.27458267419], [0.409, 0.56822912556, 64607.84893354619], [0.388, 4.16039183226, 78259.82808936459], [0.393, 3.23715146834, 13655.86049117640], [0.375, 5.33297275541, 26011.63707029860], [0.467, 5.77388878977, 90829.86112470538], [0.350, 5.62301652558, 71492.99882347698], [0.352, 3.27694758804, 26727.80042788820], [0.350, 3.39302729957, 141762.17980617538], [0.390, 2.58800166779, 78267.59076008058], [0.365, 3.19925143022, 52099.54021187280], [0.433, 1.55185163390, 20760.42703319140], [0.327, 5.69228054184, 12432.04265039780], [0.339, 1.58088572820, 45494.58142974879], [0.338, 2.73161573173, 155997.72788435058], [0.315, 4.00061444247, 78477.00852016058], [0.435, 0.36408526333, 114564.89811250778], [0.344, 5.02616143626, 78256.59587772179], [0.346, 4.14121333484, 111122.32316754239], [0.286, 5.40513646014, 6681.22485339960], [0.283, 3.65516534367, 76.26607127560], [0.325, 4.30412080460, 124156.43985787958], [0.364, 2.32771554672, 84546.78527471398], [0.331, 0.76882559900, 188276.65404017159], [0.267, 3.81778097058, 19406.67828817460], [0.270, 6.02010732963, 78114.14622758799], [0.273, 3.66726180240, 129483.91596626239], [0.263, 0.18743596408, 77197.21394753258], [0.268, 3.25051884036, 131498.89763806018], [0.284, 1.93848296863, 76044.95232053580], [0.295, 5.53951004419, 130969.20667296558], [0.335, 5.92048177497, 146314.13330323418], [0.246, 1.45343047775, 78270.82297172339], [0.259, 3.08241704780, 77211.44104153418], [0.253, 2.86398164134, 121335.60871375339], [0.338, 3.95823396010, 78690.30761559859], [0.317, 3.98138369220, 79852.78232000639], [0.232, 4.66776441683, 28206.66700195260], [0.247, 1.40414696612, 181505.94343892598], [0.228, 0.25677390582, 103711.71527998279], [0.219, 4.69799359762, 71582.48457132299], [0.221, 4.46394113791, 81706.28436968799], [0.254, 1.43735157085, 5327.47610838280], [0.199, 5.76674433704, 157483.01859105378], [0.253, 2.47481215159, 72936.23331633979], [0.191, 4.17749403686, 134991.46920492980], [0.246, 5.21552773120, 178063.36849396059], [0.182, 4.31488794636, 104371.28232719658], [0.206, 1.62004139707, 106570.36967048359], [0.234, 2.18979921440, 100909.03762133139], [0.176, 3.58325574282, 48835.19385644859], [0.188, 2.58568452037, 51707.84129279399], [0.177, 1.89461095130, 52169.17772424839], [0.168, 3.01264496377, 23754.70674870219], [0.222, 4.35573235377, 52643.77127350280], [0.169, 5.25194313253, 102232.84870591838], [0.188, 5.55333225508, 156100.82065856917], [0.163, 1.72109994467, 104138.31347085879], [0.205, 5.64507146979, 154938.34595416137], [0.161, 0.06514575292, 78187.44335344699], [0.155, 3.29540644622, 97112.93697469679], [0.152, 1.66425291176, 25654.19140369739], [0.179, 2.20248310353, 104331.94280539699], [0.157, 5.91615237188, 51742.09454527159], [0.176, 5.03409571975, 52182.43484204840], [0.145, 0.34814763869, 78417.48823520739], [0.151, 0.84016182050, 26237.46633870879], [0.143, 0.36102957131, 27154.39861876420], [0.142, 5.87490895177, 26037.90651966999], [0.167, 4.43520444137, 25668.41849769900], [0.137, 2.85089329350, 119116.85160956658], [0.161, 5.91020381915, 207643.84320240439], [0.130, 6.26801612444, 137678.19129947099], [0.130, 0.93376066695, 433.71173787680], [0.140, 1.22522976768, 26137.89976347840], [0.144, 4.56326656247, 419.48464387520], [0.145, 2.53141564902, 116917.76426627958], [0.145, 3.74606280935, 27140.17152476259], [0.155, 3.65976494728, 365230.64398203877], [0.124, 0.92716868075, 104347.73123093879], [0.140, 0.11287334170, 78109.93061423779], [0.126, 1.13823138141, 51322.60990139639], [0.146, 3.25675289634, 3340.61242669980], [0.122, 5.10611624534, 176953.98994186718], [0.125, 5.63666753628, 104355.49390165479], [0.155, 2.30861381490, 51756.32163927320], [0.136, 3.41914767255, 140652.80125408198], [0.115, 6.25299482333, 39743.76363275060], [0.113, 0.79353194356, 7994.52844202420], [0.126, 0.12477487369, 52815.70356946240], [0.121, 0.68099507149, 50483.64061364600], [0.118, 0.87294905519, 137210.22630911658], [0.112, 2.41390426449, 97580.90196505119], [0.130, 1.22267912068, 209812.60368468694], [0.110, 3.15687226733, 25234.70675982219], [0.109, 2.85465805569, 24395.73747207180], [0.108, 5.73587160710, 853.19638175200], [0.141, 4.76875897743, 28421.09953444620], [0.143, 0.57659923971, 170049.17029103660], [0.127, 5.39590556187, 110634.68841628819], [0.110, 0.79294568581, 104564.91166173479], [0.103, 5.77115680934, 182085.63102592478], [0.108, 0.78147749534, 42153.96900304900], [0.101, 6.24176236571, 1692.16566950240], [0.125, 1.72822604057, 104344.49901929598], [0.112, 1.53691309669, 18093.37469954999], [0.100, 6.03656277681, 147423.51185532758], [0.102, 2.16777222106, 32769.12799497380], [0.127, 5.69552946334, 44181.27784112419], [0.096, 2.81662615895, 104202.04936916218], [0.094, 6.16378269144, 103299.34418310839], [0.095, 3.08582674985, 70269.18098269838], [0.096, 3.26682732105, 103285.11708910679], [0.101, 1.49832461293, 40565.25432477420], [0.099, 0.11817727117, 167850.08294774959], [0.099, 3.80154992347, 214364.55718174577], [0.093, 3.27120904242, 90695.75207512038], [0.104, 5.35405285854, 126996.94076290558], [0.105, 0.73008875321, 104778.21075717278], [0.089, 2.82753100547, 50579.61984086379], [0.098, 0.55393078868, 33967.99229491319], [0.087, 1.47928882834, 97670.38771289718], [0.117, 0.17401840597, 61279.71327726600], [0.089, 0.41552735762, 26164.16921284980], [0.091, 2.28447351962, 157057.10981453978], [0.103, 2.67784306575, 172402.03644480839], [0.084, 4.31852113132, 60055.89543648739], [0.085, 4.50666554965, 104358.72611329758], [0.098, 0.74967522191, 105940.68546158058], [0.082, 2.80078395016, 52101.02468458109], [0.086, 0.38069361609, 74923.09699802278], [0.077, 4.91602955543, 24491.71669928959], [0.104, 6.08692240129, 10021.83728009940], [0.094, 2.21754829180, 25973.46385288896], [0.079, 4.63574888508, 2333.19639287200], [0.076, 0.06676607630, 157586.80077963436], [0.076, 4.09119863738, 1596.18644228460], [0.089, 0.51926466594, 50593.84693486539], [0.078, 5.85412082904, 18207.81398823521], [0.083, 1.48347794862, 54294.57014352679], [0.102, 1.11648927836, 150244.34299945380], [0.081, 0.43168464249, 155571.81910783658], [0.071, 2.77560894834, 77829.99768684579], [0.098, 3.04617186486, 16066.06586147480], [0.089, 3.91487126164, 68241.87214462319], [0.076, 3.32839538947, 129799.61842155698], [0.091, 4.99146967087, 102132.85546210999], [0.088, 4.54401955709, 51543.02254383520], [0.092, 4.88825714860, 26202.34243025941], [0.066, 1.97272013972, 632.78373931320], [0.066, 1.34921841483, 52808.59002246159], [0.071, 1.21551241620, 107794.18751126219], [0.088, 3.90671333341, 74.78159856730], [0.076, 1.11684262920, 78731.67441507700], [0.060, 4.94665488683, 78257.08086582259], [0.067, 4.24719146625, 14477.35118320000], [0.069, 5.46721744006, 77844.22478084739], [0.059, 2.80000354604, 25863.55834587229], [0.060, 4.23924716288, 52225.80290505260], [0.059, 5.90340687048, 103.09277421860], [0.059, 3.81127888964, 76571.54375522019], [0.060, 5.62072757879, 77795.74443436819], [0.069, 4.36673018646, 207593.84658050019], [0.066, 0.49890308433, 51951.46148744649], [0.058, 1.63810168022, 51013.33157874059], [0.058, 4.28286858594, 77410.51304297059], [0.066, 0.61313044187, 51639.00177105299], [0.057, 3.15657420172, 104275.34649502118], [0.058, 4.41262101447, 26720.68688088739], [0.075, 0.13973480485, 1581.95934828300], [0.057, 0.41985749035, 23439.44831610119], [0.069, 6.04001555481, 29428.51556827400], [0.055, 0.87548003173, 161079.37234650398], [0.054, 2.10504641371, 2648.45482547300], [0.070, 1.90064683191, 204151.27163553477], [0.054, 3.73359360369, 24925.42843716640], [0.055, 4.74493087072, 49527.35145767539], [0.071, 2.67007207774, 24505.94379329119], [0.057, 1.10422154948, 130459.18546877075], [0.068, 5.29164108644, 26013.12154300690], [0.054, 0.06047544079, 52072.71350892979], [0.053, 0.06419360550, 536.80451209540], [0.053, 5.00852687358, 25977.69682035479], [0.052, 4.17403886040, 25131.61398560359], [0.052, 3.31036935415, 7880.08915333899], [0.070, 6.10702300469, 52278.89905736699], [0.059, 1.97971323674, 51219.51712717779], [0.052, 0.17883872581, 224.34479570190], [0.057, 2.64616122722, 52125.80966124419], [0.051, 2.51127480556, 183570.92173262799], [0.050, 4.67814206741, 130226.21661243298], [0.050, 4.77326024770, 25780.34552060460], [0.053, 2.81579181250, 55516.41870984820], [0.057, 2.13355985608, 128320.75184749259], [0.049, 2.32162107938, 26395.46076254379], [0.049, 4.96049794937, 956.28915597060], [0.047, 4.20636709156, 52250.58788171570], [0.058, 2.23088591593, 52065.59996192899], [0.048, 5.31209962934, 1162.47470440780], [0.062, 6.11793881000, 22747.29071487440], [0.051, 5.16823572193, 130419.84594697120], [0.058, 1.50494628165, 54509.00267602040], [0.060, 0.43836944868, 116783.65521669458], [0.059, 1.50474668065, 26507.38778544939], [0.047, 3.28426374672, 25565.32572348040], [0.056, 2.45288584577, 181026.24909573558], [0.051, 3.46813929041, 53242.30176033840], [0.045, 0.64303440167, 52698.38370124219], [0.049, 0.43622928396, 27999.10262479140], [0.046, 0.93537805397, 26162.68474014150], [0.043, 5.95311422864, 76667.52298243798], [0.060, 1.79764830651, 78270.33798362259], [0.056, 2.27809233545, 182188.72380014337], [0.043, 3.95909386803, 26521.61487945100], [0.043, 2.06740816154, 51859.41441349179], [0.051, 5.31772214752, 66653.15746634839], [0.044, 1.68470111077, 23888.81579828719], [0.054, 3.94217571152, 52325.36948028299], [0.043, 5.13864955940, 11610.55195837420], [0.042, 4.61363107691, 52492.19815280499], [0.046, 3.39633739377, 104505.39137678158], [0.046, 4.83387098498, 110.20632121940], [0.045, 3.54092987543, 50800.03248330259], [0.041, 5.69167231584, 24712.12934172840], [0.040, 0.05181171325, 123200.84011627098], [0.053, 0.61042891791, 53228.07466633679], [0.039, 3.11194295827, 25984.81036735560], [0.046, 2.53528410360, 50696.93970908399], [0.038, 4.44293961717, 29416.03879785439], [0.041, 2.66264705448, 233731.74634397859], [0.037, 3.37388547918, 1375.77379984580], [0.038, 5.61891042604, 143005.66740785379], [0.037, 5.42828179354, 28286.99048486120], [0.049, 5.33653478407, 99024.13645791399], [0.040, 5.63484527365, 522.57741809380], [0.039, 3.40419666656, 25551.09862947879], [0.036, 5.94925007197, 145204.75475114078], [0.038, 2.07740095188, 153084.84390447979], [0.039, 3.20021878147, 163766.09444104519], [0.037, 5.22659089943, 52595.29092702359], [0.042, 4.90625897857, 25771.51127191760], [0.041, 2.99128318097, 26190.99591579279], [0.044, 1.11685231827, 26404.29501123080], [0.045, 4.61987657347, 132658.27281205778], [0.037, 0.21788276252, 166740.70439565618], [0.034, 1.94222980062, 203041.89308344139], [0.045, 3.16157322891, 104197.83375581198], [0.046, 4.46372826281, 316.39186965660], [0.039, 2.02681719442, 136722.59155786238], [0.034, 1.34191646454, 467.96499035440], [0.043, 3.34582658464, 78903.60671103658], [0.039, 3.65232351757, 196137.07343261078], [0.037, 0.37289111380, 391318.54712361295], [0.037, 2.88378512797, 36109.74042167360], [0.037, 1.66197775716, 52290.24557183361], [0.036, 3.91856090884, 54087.00576636560], [0.034, 0.07777074766, 26294.08869001139], [0.033, 2.57658065167, 26941.09952332620], [0.034, 1.66706631543, 49842.60989027639], [0.042, 3.65143192554, 76681.75007643958], [0.032, 4.02685079656, 24356.78078864160], [0.041, 3.48117117726, 26610.48055966799], [0.040, 1.30798263894, 77630.92568540938], [0.033, 3.31591322468, 65831.66677432480], [0.042, 4.68305225464, 24609.03656750980], [0.034, 2.43308912753, 26421.75908234360], [0.031, 0.55207634036, 13362.44970679920], [0.031, 3.97168176907, 130435.63437251298], [0.035, 5.90195011358, 78188.92782615528], [0.032, 5.58275762493, 25881.71759313700], [0.032, 3.03394602316, 27780.06881107659], [0.038, 4.61602478200, 130432.40216087017], [0.031, 5.37268049479, 75930.51303185058], [0.034, 4.68006477569, 25754.04720080480], [0.030, 2.76917399150, 173511.41499690176], [0.037, 4.37537497770, 1478.86657406440], [0.030, 2.69970929614, 208173.53416749899], [0.029, 2.28199342452, 130443.39704322898], [0.039, 4.04390928499, 34282.17847478280], [0.033, 1.47153495142, 55503.94193942859], [0.029, 3.09374594552, 27819.02549450680], [0.030, 2.30968283835, 26624.70765366959], [0.035, 2.18534594257, 22759.76748529401], [0.027, 0.63624513172, 240452.46032331997], [0.035, 5.40588312340, 58857.03113654799], [0.028, 5.46904052697, 123668.80510662538], [0.028, 3.82629644574, 130866.11389874699], [0.027, 3.91273567728, 163298.12945069079], [0.032, 3.55783772742, 52252.07235442399], [0.036, 5.26852179816, 52061.36699446317], [0.027, 0.81868301401, 25455.11940226100], [0.030, 6.23608007707, 24176.70365835700], [0.025, 1.48874402537, 60370.08161635699], [0.027, 4.41957053501, 78896.49316403578], [0.025, 3.33404428554, 206.18554843720], [0.025, 2.22580879047, 12725.45343477500], [0.025, 5.37774707105, 183145.01295611399], [0.026, 3.83674753452, 132028.58860315479], [0.025, 2.93605355840, 129387.24732468258], [0.025, 5.86161454740, 130289.95251073639], [0.024, 4.03572089813, 26089.38761428249], [0.024, 3.09138745629, 26086.41866886590], [0.024, 1.40452977850, 25446.48957983520], [0.033, 3.35253473958, 193937.98608932379], [0.024, 4.81342275570, 27311.72098235281], [0.024, 2.36840229716, 25440.89230825939], [0.024, 2.60590286552, 125112.03959948818], [0.027, 2.64006708171, 44295.71712980940], [0.029, 3.85906422319, 130652.81480330898], [0.033, 4.26007262410, 235900.50682626115], [0.026, 3.37356285012, 87367.61641884019], [0.024, 3.83432680564, 52381.99183158559], [0.027, 4.14811634858, 176332.24614102798], [0.023, 0.19227535404, 647.01083331480], [0.025, 0.03897225418, 129373.02023068098], [0.023, 5.73072631591, 26729.31670331319], [0.026, 2.78110886808, 64901.25971792339], [0.028, 6.14191568069, 38813.35657634920], [0.025, 5.64677901976, 198489.93958638259], [0.022, 2.47489263310, 24864.08530079559], [0.023, 4.26682241390, 26222.01219115920], [0.024, 4.52962335246, 123758.29085447139], [0.023, 2.88962909157, 25953.79409198919], [0.028, 4.67408679361, 80382.47328510099], [0.021, 2.19925857864, 23866.04650697719], [0.025, 0.81737451667, 94329.77528619739], [0.021, 5.56863005528, 52712.61079524379], [0.021, 0.94657470314, 27684.08958385880], [0.023, 1.24923754668, 130446.62925487179], [0.022, 1.55521175306, 24998.19435038059], [0.024, 3.25930776298, 27669.86248985719], [0.021, 3.16657819785, 183674.70392120857], [0.020, 1.45970914613, 75615.25459924959], [0.028, 2.65124448902, 78366.80219894118], [0.021, 2.85719729554, 78160.61665050399], [0.022, 0.14164137879, 51528.79544983359], [0.022, 1.54435105177, 158746.17595363196], [0.019, 1.95606380894, 25344.91308104160], [0.019, 3.62491058376, 78039.36462902068], [0.019, 2.59809360557, 17893.62780836560], [0.019, 5.86487152937, 103917.90082841998], [0.019, 5.07516493363, 230239.17477710897], [0.023, 1.73809221823, 128220.75860368418], [0.018, 3.70453311537, 77726.90491262719], [0.020, 5.58951443277, 27177.61193276780], [0.019, 2.26298959398, 103932.12792242158], [0.018, 5.26103373994, 28736.35796704720], [0.018, 4.77075669731, 77101.23472031478], [0.019, 4.18613339997, 104819.57755665119], [0.019, 3.72825596269, 31415.37924995700], [0.018, 5.11985094325, 77307.42026875199], [0.019, 1.61447515906, 51653.22886505459], [0.022, 3.45569006244, 101011.00013959699], [0.017, 3.34823797519, 23919.14265929160], [0.017, 0.84289136609, 86143.79857806159], [0.018, 0.81997628030, 26073.67604757259], [0.020, 0.96632907921, 52609.51802102519], [0.016, 1.27839838984, 51868.24866217880], [0.020, 0.07187923898, 155887.52156313116], [0.018, 5.44524309894, 25508.21555457540], [0.016, 0.62722455150, 102659.44689679438], [0.016, 0.52102795891, 2221.85663459700], [0.017, 3.93009669878, 51852.30086649099], [0.016, 5.74180318220, 96357.08412427259], [0.019, 5.09029341511, 118828.96374949679], [0.017, 2.59947793429, 24448.83362438620], [0.016, 5.52244950928, 2199.08734328700], [0.015, 3.36667960581, 1911.19948321720], [0.021, 3.53223071778, 181659.72224941078], [0.019, 1.29524947399, 233681.74972207437], [0.016, 1.11236515889, 103498.41618454478], [0.020, 3.19274792861, 51969.62073471119], [0.017, 3.27645001526, 26312.24793727610], [0.016, 5.54159968247, 207114.15223730978], [0.015, 2.75565944373, 26709.64694241340], [0.015, 1.72732606714, 104344.98400739678], [0.016, 5.31828785394, 78153.50310350319], [0.016, 1.13565154505, 742.99006053260], [0.015, 6.19247438386, 130363.24963659538], [0.015, 1.16646378812, 92741.06060792258], [0.015, 4.39941321864, 25466.15934073500], [0.014, 1.03341872997, 78313.70604662679], [0.016, 1.77081422797, 27044.19229754480], [0.016, 1.77854347809, 26667.59072857300], [0.014, 2.39782698608, 103883.64757594238], [0.019, 6.27226219255, 25764.39772491679], [0.014, 1.89621592736, 37698.45509994840], [0.014, 5.86393829627, 81604.32185142238], [0.015, 2.41952075336, 27250.37784598199], [0.017, 5.62378615870, 51432.81622261579], [0.014, 0.57479381854, 8194.27533320860], [0.014, 2.01915873640, 156507.74908854539], [0.014, 4.00033644851, 187167.27548807819], [0.016, 3.05516572588, 22625.65843570900], [0.014, 0.41333257896, 76887.93562487679], [0.014, 3.81333935444, 28256.66362385679], [0.016, 5.63829774136, 209658.82487420217], [0.017, 2.79674558169, 323.50541665740], [0.015, 4.52292533775, 27726.97265876220], [0.017, 1.61686538851, 26198.10946279360], [0.017, 4.28628662370, 133882.09065283637], [0.013, 1.02936352404, 25867.49049913539], [0.014, 5.57651447296, 2008.55753915900], [0.014, 1.55161726953, 156314.11975400720], [0.017, 6.07989986315, 49953.94964855139], [0.015, 4.87081069542, 104358.24112519680], [0.013, 3.77228393975, 19.66976089979], [0.015, 5.41429733370, 208276.62694171758], [0.013, 1.15273910706, 949.17560896980], [0.017, 4.64614224273, 112231.70171963578], [0.015, 5.32485053265, 154408.65498906677], [0.013, 4.02426203972, 417406.45026518719], [0.013, 2.83441937048, 25169.97285559240], [0.016, 3.55004561005, 86457.98475793119], [0.014, 3.36717179008, 12546.48193908300], [0.013, 0.99900287294, 78338.49102328988], [0.012, 3.72935261349, 78786.28684281638], [0.013, 4.55769261775, 80596.90581759460], [0.013, 3.68794178346, 79315.97780791098], [0.014, 4.16918945992, 156547.08861034497], [0.012, 3.12295185577, 149288.74325784517], [0.012, 2.69822851627, 153.77881048480], [0.012, 4.38117483432, 27005.83342755599], [0.012, 0.19322533903, 27463.67694142000], [0.014, 4.15127082280, 29550.14784743939], [0.012, 2.80411772823, 102755.42612401219], [0.011, 5.82734448081, 259819.64948555277], [0.011, 2.40607503106, 169093.57054942797], [0.012, 0.49737747696, 102769.65321801379], [0.014, 5.69923121834, 76784.84285065818], [0.012, 5.56466695759, 26402.08932144380], [0.012, 1.48301102812, 78580.10129437919], [0.011, 5.15388067065, 77947.31755506598], [0.011, 1.64586759073, 25773.71696170459], [0.011, 2.45779334771, 34082.43158359840], [0.014, 2.00354520885, 846.08283475120], [0.013, 0.71980668578, 78413.27262185719], [0.011, 5.17906120193, 162810.49469943656], [0.011, 2.73596940194, 171292.65789271498], [0.011, 5.59141622457, 24203.00197815680], [0.011, 0.45608202666, 2111.65031337760], [0.010, 3.29404880642, 192828.60753723036], [0.010, 0.45857052500, 222224.97657418498], [0.013, 5.70684493376, 78213.71280281838], [0.011, 4.37474459591, 103718.82882698359], [0.011, 0.63918585951, 26118.23000257860], [0.013, 5.83092856998, 26411.40855823160], [0.010, 5.45367935399, 52483.36390411799], [0.010, 4.70344741563, 2125.87740737920], [0.011, 0.28816338163, 26057.57628056979], [0.010, 5.57764903480, 151199.94274106238], [0.011, 0.03362968403, 104991.50985261079], [0.010, 3.71565881071, 148532.89040742096], [0.013, 0.25119201649, 79330.20490191258], [0.010, 6.23763004539, 128106.31931499895], [0.011, 6.23138757669, 130285.73689738619], [0.013, 3.60703035316, 39629.32434406539], [0.011, 2.08623018213, 78683.19406859778], [0.011, 2.89478268807, 122444.98726584678], [0.011, 1.47224457688, 156520.30530244438], [0.012, 0.18308102701, 130593.29451835579], [0.009, 5.24611723729, 138319.60486120995], [0.009, 5.64920582852, 1265.56747862640], [0.009, 6.25551575071, 53906.92863608099], [0.011, 3.36985744471, 142871.55835826878], [0.009, 5.47085206361, 156531.30018480320], [0.009, 4.79150958411, 101703.15774082378], [0.009, 2.73233240797, 38.13303563780], [0.009, 5.91954900221, 62197.64356324779], [0.009, 4.73154570336, 78378.14871340781], [0.011, 0.80389582741, 3328.13565628019], [0.009, 6.25489842872, 91919.56991589899], [0.009, 5.87197255624, 199599.31813847594], [0.009, 0.76033087382, 156523.53751408719], [0.008, 0.63159267832, 80174.90890793978], [0.009, 5.02352759781, 229129.79622501557], [0.008, 2.63272452796, 25138.72753260440], [0.008, 0.59154768044, 156954.01704032117], [0.008, 3.95681232703, 120417.67842777158], [0.008, 3.46882638388, 77616.69859140778], [0.008, 0.20349823136, 113455.51956041438], [0.008, 0.21724719953, 13541.42120249119], [0.008, 1.77719128692, 26076.85744131030], [0.009, 6.21878690440, 189853.99758261937], [0.007, 5.88768146200, 51226.63067417859], [0.007, 0.61161547244, 158116.49174472899], [0.008, 2.05860519043, 78149.27013603736], [0.007, 0.09500184933, 90989.16285949759], [0.007, 0.56541937862, 25985.94062330859], [0.007, 0.73212945216, 78469.89497315978], [0.007, 0.44088896603, 104127.26777059489], [0.008, 5.86653927002, 104454.70534051539], [0.007, 0.70585294359, 52177.29075585669], [0.009, 1.96929942879, 1272.68102562720], [0.010, 2.72173324175, 104276.83096772949], [0.007, 5.16315798030, 26189.86565983980], [0.007, 5.17079740730, 179172.74704605396], [0.008, 5.26981396126, 48847.67062686820], [0.008, 0.19880797043, 1.48447270830], [0.007, 6.26371276121, 52174.32181044009], [0.008, 0.98956493578, 16703.06213349900], [0.007, 0.08448723866, 26098.94884183810], [0.008, 5.67030179581, 53029.00266490040], [0.007, 1.15333561308, 261988.40996783535], [0.007, 0.70724943755, 65717.22748563958], [0.007, 0.52800551865, 103814.80805420138], [0.008, 2.25202792521, 149756.70824819960], [0.007, 1.45586274187, 51841.95034237900], [0.007, 2.28027029168, 54374.89362643540], [0.007, 1.96795602434, 103395.32341032618], [0.007, 0.91100826202, 27972.80430499159], [0.007, 6.04142381509, 155475.15046625677], [0.008, 0.66187102958, 156740.71794488319], [0.007, 0.94700216301, 202420.14928260216], [0.008, 0.34397341638, 78339.97549599818], [0.008, 1.99164711035, 84944.93427812219], [0.006, 3.16647388859, 76041.85279012559], [0.007, 1.18920934641, 104984.39630560997], [0.007, 6.12812258419, 53867.97195265079], [0.007, 2.68832841048, 156377.85565231059], [0.007, 4.82261895829, 52286.01260436779], [0.006, 2.12110075547, 148.07872442630], [0.006, 3.05937939252, 151.04766984290], [0.007, 0.09315209734, 220025.88923089797], [0.008, 5.56250511075, 52509.66222391780], [0.006, 2.57622376266, 224577.84272795677], [0.007, 2.65171386195, 220.41264243880], [0.006, 2.00091220299, 102018.41617342478], [0.007, 0.86158158633, 50444.68393021580], [0.007, 1.61990482140, 103189.13786188899], [0.006, 2.68512587119, 77520.71936418998], [0.006, 4.82671721903, 154308.66174525840], [0.006, 2.40727316051, 78800.51393681798], [0.006, 5.66286619587, 234261.43730907317], [0.007, 1.38238075345, 106470.37642667518], [0.007, 4.62193558950, 81591.84508100279], [0.007, 0.26927581545, 127098.90328117118], [0.006, 0.92172283144, 57503.28239153120], [0.006, 5.39808870469, 130020.03106399579], [0.006, 2.52761413373, 52817.21984488739], [0.006, 0.06817978613, 53757.76563143139], [0.007, 3.13547312140, 155460.92337225520], [0.005, 2.17501494391, 209232.91609768817], [0.005, 2.16759656006, 104241.40624507738], [0.006, 2.68409858369, 130005.80396999417], [0.005, 1.58914721681, 50167.24874398939], [0.005, 1.01687539089, 55638.05098901359], [0.007, 1.31888655444, 149846.19399604559], [0.005, 2.48117306579, 9384.84100807520], [0.005, 3.70948655428, 266540.36346489412], [0.007, 5.71513815276, 70383.62027138360], [0.006, 4.55015130253, 51955.39364070959], [0.005, 3.51602263966, 102975.83876645098], [0.005, 3.69945557546, 39450.35284837340], [0.005, 3.98232048303, 53771.99272543299], [0.006, 1.01394190869, 77940.20400806518], [0.005, 2.50588363651, 102872.74599223239], [0.007, 3.01244944080, 50264.60679993120], [0.006, 0.45316437598, 50064.15596977079], [0.007, 6.03933985106, 1485.98012106520], [0.005, 1.35734487293, 53814.87580033639], [0.005, 4.43939776623, 51534.39272140940], [0.005, 2.29075654159, 61560.64729122359], [0.005, 0.07896316759, 78057.52387628538], [0.005, 0.95484155225, 130907.48069822539], [0.005, 1.56485117164, 53399.62412392700], [0.005, 4.55586232099, 52137.67324751059], [0.006, 4.34778590755, 156534.53239644598], [0.005, 3.72691818970, 128747.35003836859], [0.004, 0.56386565513, 189386.03259226496], [0.004, 2.67910077904, 107692.22499299659], [0.006, 6.10947724529, 104248.51979207818], [0.004, 3.99859010561, 104401.60918820098], [0.004, 0.51280078907, 54344.56676543099], [0.005, 4.19917665740, 129586.31932611899], [0.004, 5.91763059229, 52041.69723356339], [0.005, 3.18633834950, 181975.42470470539], [0.005, 0.99354989216, 1795.25844372100], [0.004, 6.20030341798, 209762.60706278277], [0.004, 4.57601261459, 184834.07909520617], [0.006, 4.81632935419, 77741.13200662879], [0.004, 2.32553366031, 53265.51507434200], [0.004, 4.83867556795, 52755.49387014719], [0.004, 0.47379105299, 105403.88094948517], [0.004, 2.62000942355, 50049.92887576919], [0.005, 1.01847704961, 52309.91533273340], [0.004, 5.12416312887, 52027.72755872209], [0.004, 0.26524339921, 50007.04580086580], [0.005, 0.30725353996, 207747.62539098499], [0.004, 4.93794243881, 63786.35824152260], [0.004, 4.51168915835, 77956.15180375299], [0.005, 1.16733741695, 27566.76971563859], [0.004, 3.77703754152, 104501.17576343138], [0.004, 5.44859511930, 129971.55071751658], [0.005, 5.22593130125, 51329.72344839720], [0.004, 1.64237114391, 130446.14426677099], [0.004, 1.28513103275, 112545.88789950538], [0.004, 3.50115780256, 76152.05911134499], [0.004, 4.79032272131, 130432.88714897096], [0.004, 5.62786746084, 43981.53094993980], [0.004, 4.12687975050, 52024.75861330549], [0.004, 5.13202982684, 735.87651353180], [0.004, 4.64327471216, 76255.15188556358], [0.004, 1.34781477964, 106684.80895916879], [0.004, 2.34997151211, 177287.84588263658], ], # B1 [ [429151.362, 3.50169780393, 26087.90314157420], [146233.668, 3.14159265359, 0.00000000000], [22675.295, 0.01515366880, 52175.80628314840], [10894.981, 0.48540174006, 78263.70942472259], [6353.462, 3.42943919982, 104351.61256629678], [2495.743, 0.16051210665, 130439.51570787099], [859.585, 3.18452433647, 156527.41884944518], [277.503, 6.21020774184, 182615.32199101939], [86.233, 2.95244391822, 208703.22513259359], [26.133, 5.97708962692, 234791.12827416777], [27.696, 0.29068938889, 27197.28169366760], [12.831, 3.37744320558, 53285.18483524180], [12.720, 0.53792661684, 24978.52458948080], [7.781, 2.71768609268, 260879.03141574195], [7.527, 3.58305121268, 51066.42773105500], [6.183, 2.92383205004, 31749.23519072640], [5.453, 1.97318763801, 51116.42435295920], [3.394, 0.34761695275, 77154.33087262919], [3.481, 0.10739761667, 79373.08797681599], [2.932, 5.95430013169, 57837.13833230060], [2.742, 0.98758439378, 25028.52121138500], [2.126, 4.16352818018, 47623.85278608960], [2.286, 5.74036496396, 286966.93455731618], [2.380, 4.00213666550, 21535.94964451540], [1.651, 4.43606584681, 27043.50288318280], [1.523, 1.97926797181, 5661.33204915220], [1.518, 5.01636479848, 77204.32749453338], [1.398, 0.66375029294, 20426.57109242200], [1.345, 3.39193943388, 103242.23401420339], [1.297, 5.34251327744, 37410.56723987860], [1.076, 0.95624460335, 50586.73338786459], [1.050, 3.00944151152, 26107.57290247399], [0.918, 1.89988871166, 1059.38193018920], [1.063, 1.28486292967, 53131.40602475700], [0.905, 3.34776562702, 25558.21217647960], [0.929, 4.81159652409, 51646.11531805379], [0.782, 6.08817839271, 529.69096509460], [0.783, 1.50962699410, 41962.52073693740], [0.794, 2.16868396183, 63498.47038145279], [0.731, 0.92148918837, 73711.75592766379], [0.755, 4.10910637390, 26068.23338067440], [0.703, 2.22466530621, 10213.28554621100], [0.922, 2.30268247092, 1109.37855209340], [0.739, 3.05842748947, 105460.99111839019], [0.681, 1.40695567526, 51749.20809227239], [0.841, 5.93206787810, 26084.02180621620], [0.616, 5.95368982430, 39609.65458316560], [0.610, 2.96796433797, 25132.30339996560], [0.721, 1.16472614778, 46514.47423399620], [0.638, 1.16941585214, 26091.78447693220], [0.633, 3.07427024064, 30639.85663863300], [0.665, 2.47994200156, 313054.83769889036], [0.669, 4.10310179631, 72602.37737557039], [0.495, 0.14776350456, 129330.13715577759], [0.474, 2.61466823958, 32858.61374281979], [0.470, 5.04436148211, 13521.75144159140], [0.494, 0.07430556450, 28306.66024576099], [0.459, 5.81611579004, 51220.20654153979], [0.467, 5.56622114735, 4551.95349705880], [0.433, 2.10197184422, 24498.83024629040], [0.430, 3.91046377635, 76674.63652943878], [0.436, 1.46213785727, 43071.89928903080], [0.383, 6.05537830853, 52195.47604404819], [0.335, 0.55996605330, 23869.14603738740], [0.369, 4.43217995206, 22645.32819660879], [0.329, 2.59508442112, 65697.55772473979], [0.346, 2.03170085305, 27147.28507176339], [0.424, 0.29775934661, 1589.07289528380], [0.378, 5.09810178577, 53235.18821333759], [0.308, 3.30225015955, 54394.56338733519], [0.314, 2.40932519602, 83925.04147387479], [0.364, 5.87784809361, 58946.51688439399], [0.352, 0.87939481900, 52156.13652224860], [0.352, 5.92675293084, 25661.30495069820], [0.310, 2.69873876637, 52171.92494779040], [0.345, 0.84406679212, 98690.28051714458], [0.358, 6.14890038263, 56727.75978020720], [0.248, 2.34396840060, 51535.90899683439], [0.286, 2.39648280163, 19804.82729158280], [0.338, 1.55189200325, 52705.49724824299], [0.239, 3.35169081927, 52168.69273614759], [0.234, 2.51108507067, 77308.10968311399], [0.229, 5.16737598091, 36301.18868778519], [0.245, 4.26996032400, 19317.19254032860], [0.210, 3.16281965425, 29530.47808653960], [0.212, 5.33861521612, 15874.61759536320], [0.291, 4.22929240183, 52179.68761850640], [0.263, 4.64138649646, 69159.80243060499], [0.235, 5.08060846802, 59414.48187474840], [0.251, 1.90047504790, 14765.23904326980], [0.253, 4.21581970504, 79219.30916633119], [0.194, 5.05904557922, 51109.31080595839], [0.188, 3.90664116889, 48733.23133818299], [0.207, 2.89949362192, 7.11354700080], [0.179, 4.43018837604, 77837.11123384659], [0.223, 2.96569885227, 110012.94461544899], [0.176, 5.15204624857, 89586.37352302698], [0.215, 4.50903357312, 78793.40038981718], [0.173, 3.18496771460, 155418.04029735178], [0.205, 1.89888752382, 79323.09135491178], [0.175, 2.91183047213, 82815.66292178139], [0.165, 0.49123694380, 25035.63475838580], [0.183, 1.42148796836, 77734.01845962799], [0.158, 3.63030783882, 49957.04917896160], [0.201, 4.78711687782, 40853.14218484400], [0.157, 3.02451795123, 52182.91983014920], [0.192, 5.50218209050, 339142.74084046460], [0.145, 3.39803928124, 45892.73043315699], [0.140, 2.64826898848, 16983.99614745660], [0.190, 3.05043439775, 27676.97603685800], [0.169, 3.40273824751, 25874.60404613620], [0.148, 3.87588943419, 124778.18365871879], [0.134, 0.94930028730, 25021.40766438420], [0.174, 5.88326736492, 136100.84775702318], [0.138, 2.34393108627, 1052.26838318840], [0.163, 6.05484015332, 26080.78959457339], [0.142, 3.07209103150, 3442.57494496540], [0.137, 2.10984857727, 426.59819087600], [0.126, 1.89432609260, 1066.49547719000], [0.122, 1.04298624291, 45405.09568190280], [0.135, 4.66414339767, 25448.00585526019], [0.115, 2.81365851520, 78283.37918562238], [0.114, 4.47315411813, 68050.42387851159], [0.134, 5.35393682799, 213.29909543800], [0.125, 1.61827845372, 129380.13377768178], [0.158, 5.53788931475, 9103.90699411760], [0.116, 0.50075235780, 102762.53967101299], [0.136, 0.24559658100, 50057.04242277000], [0.124, 2.20590858584, 33326.57873317420], [0.106, 6.15493608726, 11322.66409830440], [0.123, 4.43265735200, 639.89728631400], [0.137, 3.93191153638, 78244.03966382280], [0.138, 4.46503235172, 51123.53789995999], [0.119, 3.64440622006, 26617.59410666880], [0.099, 6.18313188027, 55618.38122811380], [0.101, 5.52733987069, 103396.01282468818], [0.107, 4.79994153405, 6770.71060124560], [0.096, 0.01853371395, 80482.46652890938], [0.115, 1.57423656512, 66941.04532641819], [0.111, 1.00588061631, 78267.59076008058], [0.121, 5.90839328752, 26095.01668857500], [0.095, 5.74549458142, 78259.82808936459], [0.100, 1.90676485528, 103292.23063610759], [0.107, 5.73194510449, 131548.89425996438], [0.098, 5.49064814924, 77623.81213840858], [0.112, 0.87682090108, 74821.13447975718], [0.090, 5.82373560803, 955.59974160860], [0.093, 0.15279056716, 78256.59587772179], [0.100, 1.21759895953, 104881.30353139139], [0.087, 4.20722631983, 12566.15169998280], [0.088, 5.00176994115, 38519.94579197200], [0.086, 1.23375034376, 26301.20223701220], [0.085, 1.88852891739, 77197.21394753258], [0.082, 3.75652571856, 99799.65906923798], [0.089, 4.95684147986, 105410.99449648599], [0.096, 5.10490831351, 52389.10537858640], [0.075, 2.50722139185, 2218.75710418680], [0.093, 6.00229475799, 53764.87917843220], [0.073, 6.11603054445, 78270.82297172339], [0.091, 4.67762120545, 155468.03691925600], [0.080, 1.98564256640, 7238.67559160000], [0.089, 1.62820970873, 6283.07584999140], [0.073, 5.93728826025, 108903.56606335558], [0.087, 2.61787684648, 162188.75089859738], [0.092, 2.55298032665, 85034.42002596818], [0.076, 4.44230028342, 38654.05484155699], [0.070, 2.07147354168, 25934.12433108940], [0.078, 1.79664677749, 23969.13928119580], [0.068, 2.15267768357, 64607.84893354619], [0.069, 1.37976390686, 77211.44104153418], [0.080, 0.75440631101, 2118.76386037840], [0.060, 5.95179539253, 18849.22754997420], [0.058, 0.98126270514, 51962.50718771040], [0.057, 0.63495768344, 150866.08680029298], [0.063, 0.40577774917, 76044.95232053580], [0.061, 3.20728040856, 76144.94556434419], [0.053, 1.34424134476, 51742.09454527159], [0.052, 4.11944860444, 71492.99882347698], [0.054, 2.23964604878, 44937.13069154840], [0.064, 1.19785741966, 64741.95798313119], [0.058, 6.22316473811, 181505.94343892598], [0.060, 2.12727479557, 88476.99497093359], [0.049, 1.76854754615, 13655.86049117640], [0.049, 1.27506119902, 26727.80042788820], [0.048, 2.04581990152, 78477.00852016058], [0.050, 4.62948267835, 93028.94846799239], [0.055, 5.47526225139, 62389.09182935939], [0.047, 4.99113735496, 27154.39861876420], [0.055, 4.79762177368, 94138.32702008578], [0.051, 5.56459812422, 52602.40447402440], [0.055, 1.20462687751, 95247.70557217918], [0.050, 2.21530140501, 365230.64398203877], [0.049, 0.68636780387, 104331.94280539699], [0.047, 4.30403626352, 23754.70674870219], [0.042, 3.32657201754, 25654.19140369739], [0.051, 1.08082309375, 25619.93815121980], [0.047, 2.79966035046, 26514.50133245020], [0.040, 2.91932668980, 81706.28436968799], [0.040, 4.65660434525, 129909.82474277639], [0.041, 4.21875403274, 130969.20667296558], [0.050, 1.46644208786, 120226.23016165999], [0.047, 3.77053215629, 25973.46385288896], [0.047, 2.82867670887, 25668.41849769900], [0.046, 4.14427477722, 125887.56221081219], [0.039, 4.06156914485, 104355.49390165479], [0.037, 3.22245380356, 51322.60990139639], [0.039, 2.26439106521, 129483.91596626239], [0.040, 0.54598734169, 105307.21230790539], [0.035, 5.53895897820, 433.71173787680], [0.038, 6.05329467990, 419.48464387520], [0.039, 2.72082598885, 79852.78232000639], [0.035, 1.72937228501, 131498.89763806018], [0.034, 0.83611265968, 12432.04265039780], [0.032, 4.45254278754, 50579.61984086379], [0.042, 1.41457022130, 181555.94006083018], [0.032, 4.73349986920, 52026.24308601380], [0.036, 5.60766535694, 188276.65404017159], [0.033, 3.98525990131, 78050.41032928458], [0.032, 5.86059322955, 104371.28232719658], [0.040, 5.45287901295, 27140.17152476259], [0.031, 5.17982917253, 71025.03383312259], [0.039, 3.34206786809, 26202.34243025941], [0.029, 1.94010215318, 103821.92160120218], [0.036, 0.65969730203, 51756.32163927320], [0.030, 0.82864967511, 46848.33017476560], [0.038, 0.80809536333, 151975.46535238638], [0.029, 2.89227792530, 104358.72611329758], [0.029, 4.49728060011, 103299.34418310839], [0.035, 1.48121158024, 85502.38501632259], [0.028, 5.48224379273, 91785.46086631398], [0.030, 3.11318420566, 106570.36967048359], [0.034, 4.26548581082, 90829.86112470538], [0.031, 5.67743476614, 117873.36400788819], [0.028, 4.97598935775, 103285.11708910679], [0.033, 5.18111128318, 114564.89811250778], [0.027, 0.88054842818, 157636.79740153858], [0.026, 2.57652351573, 134991.46920492980], [0.029, 2.64144900778, 26137.89976347840], [0.028, 3.23650761988, 128850.44281258718], [0.030, 6.03255187776, 32370.97899156560], [0.029, 3.23415692694, 104344.49901929598], [0.032, 3.21019810469, 28421.09953444620], [0.024, 2.52484264487, 1596.18644228460], [0.024, 0.27171495756, 24491.71669928959], [0.026, 1.20902208843, 44181.27784112419], [0.027, 5.71639245109, 111122.32316754239], [0.031, 3.68314656803, 28206.66700195260], [0.030, 2.36500429653, 103711.71527998279], [0.022, 4.47547965260, 77829.99768684579], [0.022, 5.93080138405, 98068.53671630539], [0.021, 4.45887879737, 52815.70356946240], [0.022, 1.51276188597, 35191.81013569180], [0.025, 3.67349275753, 853.19638175200], [0.021, 5.21045664362, 104564.91166173479], [0.023, 3.52400873624, 100909.03762133139], [0.021, 0.91705070968, 97580.90196505119], [0.021, 3.93681460045, 25455.11940226100], [0.020, 2.51210823023, 104347.73123093879], [0.027, 2.35592427305, 78690.30761559859], [0.020, 5.09828683951, 52099.54021187280], [0.019, 3.37799607043, 45494.58142974879], [0.021, 1.47540794459, 115674.27666460119], [0.020, 1.17802900406, 155997.72788435058], [0.025, 4.46628547605, 146314.13330323418], [0.023, 2.29934592297, 33967.99229491319], [0.020, 0.67974525638, 24505.94379329119], [0.020, 5.32443861216, 25234.70675982219], [0.018, 4.83011056299, 50593.84693486539], [0.020, 2.19515561332, 51639.00177105299], [0.020, 4.54362105039, 26037.90651966999], [0.018, 3.66945372389, 176953.98994186718], [0.022, 2.36457126914, 143961.26714946239], [0.020, 1.91605933726, 53242.30176033840], [0.017, 3.65797302958, 25938.33994443960], [0.017, 4.72356636284, 39743.76363275060], [0.017, 4.63385029370, 70269.18098269838], [0.023, 3.47296935942, 102132.85546210999], [0.018, 3.89075237232, 77844.22478084739], [0.016, 1.39550514982, 119116.85160956658], [0.017, 3.19413997784, 2333.19639287200], [0.018, 0.10505670252, 52290.24557183361], [0.015, 5.66501892458, 7994.52844202420], [0.017, 5.59546671313, 60055.89543648739], [0.015, 3.35297565546, 58458.88213313979], [0.019, 1.88696722328, 1581.95934828300], [0.016, 3.51339563149, 26094.53170047421], [0.015, 5.87796844640, 105940.68546158058], [0.014, 4.90677373859, 632.78373931320], [0.017, 2.94915136654, 18093.37469954999], [0.016, 3.30923893089, 26507.38778544939], [0.017, 2.79032831551, 124156.43985787958], [0.017, 2.32026007183, 53228.07466633679], [0.015, 1.27735280723, 103925.01437542078], [0.014, 0.47578456087, 104138.31347085879], [0.014, 4.33486658309, 18207.81398823521], [0.014, 6.25912081869, 102232.84870591838], [0.016, 5.19489448771, 52022.02747266360], [0.015, 3.36079341013, 26241.68195205900], [0.016, 0.62153007569, 71980.63357473118], [0.016, 0.34240403974, 26081.27458267419], [0.015, 4.43868814661, 207643.84320240439], [0.017, 3.44704905407, 183724.70054311279], [0.016, 0.08608453345, 77410.51304297059], [0.013, 4.45469253351, 90695.75207512038], [0.014, 5.26281612633, 391318.54712361295], [0.013, 2.28140033187, 26521.61487945100], [0.013, 4.75564434373, 536.80451209540], [0.013, 3.72895039092, 130419.84594697120], [0.015, 6.26388997196, 54509.00267602040], [0.014, 1.32802909705, 20760.42703319140], [0.012, 0.96182853080, 157057.10981453978], [0.017, 3.00168933222, 207593.84658050019], [0.016, 0.54167157981, 52061.36699446317], [0.016, 3.76004077423, 178063.36849396059], [0.012, 0.50356687265, 5327.47610838280], [0.014, 0.65739903621, 84546.78527471398], [0.014, 2.64166191335, 42153.96900304900], [0.011, 1.87375624710, 97112.93697469679], [0.012, 5.28144640817, 26610.48055966799], [0.012, 1.02715379165, 130012.91751699499], [0.011, 4.76973198116, 157586.80077963436], [0.011, 4.03645617358, 26011.63707029860], [0.012, 1.03774094920, 116917.76426627958], [0.011, 2.34762914711, 214364.55718174577], [0.013, 5.96105286469, 49527.35145767539], [0.013, 0.38784055589, 54294.57014352679], [0.011, 0.80279403389, 130443.39704322898], [0.012, 1.91910219792, 140652.80125408198], [0.011, 4.82050468552, 647.01083331480], [0.012, 3.95784286024, 72936.23331633979], [0.010, 2.38363926963, 52698.38370124219], [0.012, 5.21962000846, 25551.09862947879], [0.011, 1.24041943634, 51543.02254383520], [0.010, 1.23610986711, 76667.52298243798], [0.011, 5.27116774881, 155571.81910783658], [0.011, 5.98419309923, 107794.18751126219], [0.010, 0.55390559777, 26941.09952332620], [0.010, 1.49161844344, 52329.58509363319], [0.011, 4.68946178137, 26190.99591579279], [0.009, 5.63092803389, 27684.08958385880], [0.011, 6.09445403088, 26555.86813192860], [0.010, 0.09698975387, 29416.03879785439], [0.010, 0.72339727974, 22759.76748529401], [0.009, 1.96066446481, 51528.79544983359], [0.009, 4.28124553384, 121335.60871375339], [0.008, 4.26127907796, 182085.63102592478], [0.009, 3.34775259107, 22747.29071487440], [0.008, 1.25238578145, 129387.24732468258], [0.008, 3.86388656969, 24864.08530079559], [0.010, 1.34737181255, 2648.45482547300], [0.008, 5.72234642822, 161079.37234650398], [0.009, 5.45351693096, 104778.21075717278], [0.011, 2.85637796333, 52643.77127350280], [0.008, 3.27339488052, 27311.72098235281], [0.010, 1.31510855953, 52125.80966124419], [0.009, 1.17621493154, 172402.03644480839], [0.008, 2.43297081646, 131395.11544947958], [0.009, 0.46231104626, 26624.70765366959], [0.007, 4.93485551094, 48835.19385644859], [0.007, 5.92438953036, 130446.62925487179], [0.007, 5.15107638670, 149.56319713460], [0.008, 0.00476652316, 209812.60368468694], [0.008, 5.06558822410, 61279.71327726600], [0.009, 0.56618846666, 522.57741809380], [0.007, 2.63009300708, 130459.18546877075], [0.008, 2.08959717350, 25565.32572348040], [0.009, 5.37562306264, 170049.17029103660], [0.008, 4.05554156200, 156100.82065856917], [0.007, 5.58541192959, 129799.61842155698], [0.007, 1.76385898252, 129373.02023068098], [0.006, 4.86066957244, 7880.08915333899], [0.008, 4.47849277972, 10021.83728009940], [0.006, 5.30561035943, 77726.90491262719], [0.006, 1.27631388714, 103917.90082841998], [0.006, 4.61189217781, 157483.01859105378], [0.006, 3.96170038596, 123668.80510662538], [0.006, 1.33523648266, 78903.60671103658], [0.006, 0.55702386570, 204151.27163553477], [0.005, 1.55562437906, 26294.08869001139], [0.006, 2.05839183005, 130652.81480330898], [0.005, 5.58094407959, 130435.63437251298], [0.005, 1.47580092631, 78114.14622758799], [0.006, 4.10195998301, 51707.84129279399], [0.005, 5.42356096080, 3340.61242669980], [0.005, 0.71252148739, 103932.12792242158], [0.005, 3.31021043385, 111590.28815789679], [0.005, 5.18242316734, 13362.44970679920], [0.007, 0.02670007799, 130432.40216087017], [0.006, 5.64961767520, 52225.80290505260], [0.006, 0.24412111381, 128220.75860368418], [0.005, 4.45623339313, 145204.75475114078], [0.006, 5.59932602145, 154938.34595416137], [0.005, 0.44843767302, 203041.89308344139], [0.006, 0.61515143577, 126996.94076290558], [0.006, 3.76267562514, 110634.68841628819], [0.005, 3.87958020217, 25440.89230825939], [0.006, 6.12898547290, 132658.27281205778], [0.006, 1.78589858446, 76681.75007643958], [0.006, 3.31942003464, 25881.71759313700], [0.005, 4.83610476376, 78417.48823520739], [0.005, 1.62128192664, 65831.66677432480], [0.006, 5.79832326006, 150244.34299945380], [0.004, 4.90210493212, 123200.84011627098], [0.004, 0.04822157393, 71582.48457132299], [0.004, 1.25993980368, 233731.74634397859], [0.004, 4.09490053686, 143005.66740785379], [0.004, 0.60263195052, 6681.22485339960], [0.005, 3.53504145685, 130226.21661243298], [0.004, 2.52659732174, 132028.58860315479], [0.004, 5.09490146272, 76.26607127560], [0.004, 1.41880070183, 31415.37924995700], [0.005, 5.67226040777, 68241.87214462319], [0.006, 6.07125845396, 1478.86657406440], [0.004, 2.90387262796, 128320.75184749259], [0.004, 3.16756186361, 78378.14871340781], [0.004, 0.32589274840, 52595.29092702359], [0.005, 1.78096081490, 116783.65521669458], [0.004, 4.99518857973, 166740.70439565618], [0.005, 4.90494970331, 79330.20490191258], [0.004, 5.23437839920, 206.18554843720], [0.004, 2.64302747396, 75615.25459924959], [0.004, 0.81407144130, 75930.51303185058], [0.004, 0.53239895977, 156507.74908854539], [0.004, 4.27504704332, 956.28915597060], [0.004, 3.01307667234, 80596.90581759460], [0.003, 4.15170143655, 25867.49049913539], [0.003, 4.02158764895, 52712.61079524379], [0.004, 5.97032773544, 78731.67441507700], [0.004, 5.13753166239, 137678.19129947099], [0.003, 5.38378225170, 79315.97780791098], [0.003, 4.90402266218, 77630.92568540938], [0.004, 3.35681065144, 80382.47328510099], [0.004, 3.34724303278, 55503.94193942859], [0.003, 4.39477038963, 102755.42612401219], [0.004, 2.19880101386, 137210.22630911658], [0.003, 1.92191274920, 87367.61641884019], [0.004, 3.62687237484, 78149.27013603736], [0.003, 5.34278285975, 77616.69859140778], [0.003, 4.04927793779, 183145.01295611399], [0.003, 2.33740424416, 86143.79857806159], [0.003, 0.29051326311, 66653.15746634839], [0.004, 3.19530187424, 103498.41618454478], [0.003, 1.83670250940, 78187.44335344699], [0.004, 6.08402133763, 233681.74972207437], [0.003, 5.44799723236, 52609.51802102519], [0.003, 3.88568044923, 156531.30018480320], [0.003, 1.56467339056, 183674.70392120857], [0.003, 2.37223694472, 11610.55195837420], [0.004, 2.36349454401, 3328.13565628019], [0.003, 2.21015804942, 130866.11389874699], [0.003, 1.00111385284, 12546.48193908300], [0.003, 5.04736992413, 167850.08294774959], [0.004, 2.74224804458, 133882.09065283637], [0.003, 6.04124419781, 16066.06586147480], [0.003, 2.00390511344, 25984.81036735560], [0.003, 3.58451231520, 19406.67828817460], [0.003, 5.58865591583, 52381.99183158559], [0.003, 5.49839860031, 78786.28684281638], [0.003, 2.35251877810, 50483.64061364600], [0.003, 2.23638545873, 417406.45026518719], [0.003, 0.89820153238, 182188.72380014337], [0.003, 2.18659555288, 196137.07343261078], [0.003, 1.23213629886, 183570.92173262799], [0.003, 0.65362427623, 1162.47470440780], [0.003, 2.37265737062, 141762.17980617538], [0.003, 2.37167138660, 103.09277421860], [0.003, 3.43071585489, 51219.51712717779], [0.002, 5.43620933898, 240452.46032331997], [0.002, 4.79210725186, 64901.25971792339], [0.003, 0.58543714627, 136722.59155786238], [0.002, 3.65273296014, 53029.00266490040], [0.003, 1.40305085463, 52278.89905736699], [0.003, 2.91888451759, 235900.50682626115], [0.002, 5.24862580724, 32769.12799497380], [0.003, 0.92825301327, 29428.51556827400], [0.002, 1.28026650043, 96357.08412427259], [0.003, 3.47745075021, 49842.60989027639], [0.003, 1.27522510736, 44295.71712980940], [0.003, 2.06356044829, 181659.72224941078], [0.002, 1.82577636633, 181026.24909573558], [0.002, 3.73653346143, 48847.67062686820], [0.002, 4.29258038531, 198489.93958638259], [0.003, 1.30423082531, 26237.46633870879], [0.002, 5.62405074860, 112231.70171963578], [0.003, 4.34969907580, 78213.71280281838], [0.002, 4.40950391344, 155475.15046625677], [0.002, 5.10859116787, 27669.86248985719], [0.002, 2.40342983563, 53771.99272543299], [0.002, 1.76898437388, 104505.39137678158], [0.002, 1.13321786137, 208173.53416749899], [0.003, 4.95012664609, 102769.65321801379], [0.002, 2.37593594042, 51951.46148744649], [0.003, 0.65556179120, 1692.16566950240], [0.002, 1.65727778641, 163766.09444104519], ], # B2 [ [11830.934, 4.79065585784, 26087.90314157420], [1913.516, 0.00000000000, 0.00000000000], [1044.801, 1.21216540536, 52175.80628314840], [266.213, 4.43418336532, 78263.70942472259], [170.280, 1.62255638714, 104351.61256629678], [96.300, 4.80023692017, 130439.51570787099], [44.692, 1.60758267772, 156527.41884944518], [18.316, 4.66904655377, 182615.32199101939], [6.927, 1.43404888930, 208703.22513259359], [2.479, 4.47495202955, 234791.12827416777], [1.739, 1.83080039600, 27197.28169366760], [0.852, 1.22749255198, 260879.03141574195], [0.641, 4.87358642253, 53285.18483524180], [0.301, 1.96098924430, 51066.42773105500], [0.306, 5.03912693671, 24978.52458948080], [0.284, 4.25874901943, 286966.93455731618], [0.235, 3.14549432371, 51116.42435295920], [0.232, 4.22847849119, 31749.23519072640], [0.186, 5.05207772442, 77154.33087262919], [0.143, 5.71074961492, 21535.94964451540], [0.114, 5.62232460770, 27043.50288318280], [0.123, 1.51066137419, 79373.08797681599], [0.093, 1.83776226489, 103242.23401420339], [0.081, 0.85802178989, 57837.13833230060], [0.079, 5.50027152752, 47623.85278608960], [0.093, 1.01040170383, 313054.83769889036], [0.058, 2.35944147105, 53131.40602475700], [0.074, 2.28645155343, 50586.73338786459], [0.049, 1.78193753560, 28306.66024576099], [0.058, 5.88387132512, 77204.32749453338], [0.060, 0.54679388547, 37410.56723987860], [0.046, 5.77182292982, 529.69096509460], [0.052, 3.58488737294, 25558.21217647960], [0.061, 1.64891174657, 20426.57109242200], [0.043, 6.15538236294, 51646.11531805379], [0.042, 4.89875940528, 129330.13715577759], [0.036, 5.61094806248, 22645.32819660879], [0.033, 4.34189175312, 32858.61374281979], [0.037, 4.50512068847, 26107.57290247399], [0.032, 1.99466664427, 25132.30339996560], [0.030, 0.76607738630, 5661.33204915220], [0.027, 4.87180838160, 54394.56338733519], [0.029, 5.66168505554, 26068.23338067440], [0.025, 3.31115218239, 1059.38193018920], [0.029, 2.70280425915, 41962.52073693740], [0.029, 3.56940606994, 63498.47038145279], [0.029, 4.01947170286, 339142.74084046460], [0.028, 0.80200569507, 39609.65458316560], [0.023, 5.30820497885, 23869.14603738740], [0.024, 4.86369445330, 46514.47423399620], [0.027, 3.32081057071, 10213.28554621100], [0.030, 1.15631768661, 26084.02180621620], [0.024, 2.71284750937, 26091.78447693220], [0.021, 5.85119251529, 25874.60404613620], [0.026, 3.11971794265, 43071.89928903080], [0.023, 1.14258266850, 58946.51688439399], [0.021, 4.78965226125, 51220.20654153979], [0.025, 5.17153436907, 76674.63652943878], [0.020, 6.05659966832, 25028.52121138500], [0.017, 4.06375348164, 51535.90899683439], [0.019, 2.26589689692, 72602.37737557039], [0.019, 2.02802084878, 73711.75592766379], [0.020, 2.44092663198, 51749.20809227239], [0.017, 1.67702029587, 155418.04029735178], [0.018, 2.11191340126, 26617.59410666880], [0.019, 0.32685450395, 4551.95349705880], [0.016, 4.02105643770, 105460.99111839019], [0.014, 2.35860855509, 26080.78959457339], [0.013, 3.28426450224, 25661.30495069820], [0.016, 2.09223320909, 103292.23063610759], [0.013, 2.08475100066, 49957.04917896160], [0.014, 5.66400816218, 48733.23133818299], [0.013, 1.65023710844, 26095.01668857500], [0.015, 5.43792291298, 25973.46385288896], [0.012, 5.15541566845, 79219.30916633119], [0.012, 2.93766606728, 33326.57873317420], [0.011, 5.16599347976, 15874.61759536320], [0.015, 3.49521469034, 83925.04147387479], [0.012, 1.33980027148, 77308.10968311399], [0.012, 2.74476655782, 19317.19254032860], [0.014, 5.48457159802, 98690.28051714458], [0.012, 6.17629016531, 36301.18868778519], [0.012, 5.16549673414, 1589.07289528380], [0.010, 3.19718718931, 24498.83024629040], [0.010, 3.10957426655, 16983.99614745660], [0.010, 2.67818215946, 77734.01845962799], [0.012, 1.64438976704, 26202.34243025941], [0.011, 6.12421691815, 52705.49724824299], [0.010, 5.42117419251, 14765.23904326980], [0.011, 1.59577581724, 50057.04242277000], [0.012, 2.44342322463, 213.29909543800], [0.011, 4.59333229552, 56727.75978020720], [0.008, 2.22267415318, 6283.07584999140], [0.010, 3.63881306668, 65697.55772473979], [0.008, 0.85708473896, 365230.64398203877], [0.010, 3.56346926379, 53235.18821333759], [0.009, 3.03935867498, 78793.40038981718], [0.008, 2.05186284069, 30639.85663863300], [0.008, 6.07959531374, 59414.48187474840], [0.007, 1.48753095657, 29530.47808653960], [0.007, 0.54370332724, 38519.94579197200], [0.008, 5.99792913268, 7.11354700080], [0.009, 6.08426293157, 69159.80243060499], [0.007, 1.35513014510, 82815.66292178139], [0.008, 3.00335450338, 40853.14218484400], [0.007, 3.40544433462, 1066.49547719000], [0.007, 5.80782632115, 45405.09568190280], [0.007, 3.82318715536, 1052.26838318840], [0.006, 4.57200111034, 55618.38122811380], [0.006, 4.85942618671, 52168.69273614759], [0.008, 0.34211699258, 79323.09135491178], [0.006, 0.67823675060, 110012.94461544899], [0.007, 4.12285655199, 45892.73043315699], [0.007, 5.41918774642, 1109.37855209340], [0.007, 3.14407932401, 51962.50718771040], [0.006, 5.13879522396, 76044.95232053580], [0.007, 2.06447590782, 124778.18365871879], [0.006, 1.61443478349, 3442.57494496540], [0.005, 2.01359728100, 27676.97603685800], [0.007, 5.49596353318, 23754.70674870219], [0.006, 0.71445272050, 27147.28507176339], [0.005, 5.58153663720, 68050.42387851159], [0.006, 4.72387999717, 52290.24557183361], [0.005, 1.65565332809, 80482.46652890938], [0.005, 4.67655631038, 181505.94343892598], [0.005, 5.35730277715, 12566.15169998280], [0.005, 2.24953488234, 52061.36699446317], [0.004, 1.93085125724, 52156.13652224860], [0.006, 5.23350745087, 129380.13377768178], [0.005, 6.27908880897, 66941.04532641819], [0.006, 0.86124028508, 52195.47604404819], [0.004, 0.23100295125, 89586.37352302698], [0.005, 4.23944686799, 103396.01282468818], [0.004, 0.29398633221, 51109.31080595839], [0.005, 0.38451698643, 955.59974160860], [0.005, 5.75812965170, 104881.30353139139], [0.005, 3.78671774559, 52171.92494779040], [0.004, 5.32828531774, 25448.00585526019], [0.005, 3.20016226905, 426.59819087600], [0.005, 3.86489045633, 9103.90699411760], [0.004, 0.62543334322, 11322.66409830440], [0.004, 6.07508617692, 2118.76386037840], [0.004, 2.43638238426, 74821.13447975718], [0.004, 5.29735530203, 52179.68761850640], [0.003, 3.19112063073, 13521.75144159140], [0.004, 5.09850398144, 77837.11123384659], [0.004, 1.81128771043, 102762.53967101299], [0.004, 2.92685125689, 639.89728631400], [0.004, 4.37998582536, 52182.91983014920], [0.004, 0.90562468300, 77623.81213840858], [0.004, 3.40653389629, 105410.99449648599], [0.004, 5.56139758889, 26301.20223701220], [0.003, 3.84817111044, 2218.75710418680], [0.004, 3.40685398189, 52389.10537858640], [0.003, 3.64497587259, 64607.84893354619], [0.003, 4.90907522926, 99799.65906923798], [0.003, 0.33551297325, 13655.86049117640], [0.003, 4.38738526963, 108903.56606335558], [0.003, 2.71996542810, 38654.05484155699], [0.003, 5.21639569130, 150866.08680029298], [0.003, 5.79669813464, 131548.89425996438], [0.003, 4.24481036893, 136100.84775702318], [0.003, 4.74285528385, 53764.87917843220], [0.003, 5.12230469501, 32370.97899156560], [0.003, 4.91979299090, 18849.22754997420], [0.003, 1.21305125502, 105307.21230790539], [0.002, 2.61741407230, 71492.99882347698], [0.002, 5.29927753161, 64741.95798313119], [0.002, 2.59250638038, 155468.03691925600], [0.002, 5.60083003625, 26514.50133245020], [0.003, 4.14284031224, 85034.42002596818], [0.002, 3.04958336441, 93028.94846799239], [0.003, 6.16142033746, 78477.00852016058], [0.003, 4.49779099000, 76144.94556434419], [0.002, 2.74114399659, 130969.20667296558], [0.002, 6.18606575651, 51123.53789995999], [0.003, 1.68659744145, 28421.09953444620], [0.002, 1.39891525246, 81706.28436968799], [0.002, 1.36487993355, 79852.78232000639], [0.002, 0.86961235954, 129483.91596626239], [0.002, 0.16105302705, 25021.40766438420], [0.002, 0.20969999844, 19804.82729158280], [0.002, 0.99320491085, 162188.75089859738], [0.002, 3.94039306142, 391318.54712361295], [0.002, 1.80783236802, 23969.13928119580], [0.002, 5.12099356220, 51322.60990139639], [0.002, 2.80140642811, 62389.09182935939], [0.002, 2.60965333457, 52602.40447402440], [0.002, 2.72257468038, 7994.52844202420], [0.002, 5.84222491614, 103821.92160120218], [0.002, 6.04515878720, 25035.63475838580], [0.001, 2.34997564292, 85502.38501632259], [0.001, 0.17409967102, 131498.89763806018], [0.001, 3.11496551907, 25934.12433108940], [0.002, 5.12532278095, 78267.59076008058], [0.001, 5.49175475674, 104331.94280539699], [0.001, 0.44808516059, 78050.41032928458], [0.002, 1.92656028088, 102132.85546210999], [0.002, 1.93198050022, 853.19638175200], [0.001, 2.42972717822, 94138.32702008578], [0.002, 5.13550087739, 6770.71060124560], [0.001, 4.65441500870, 78259.82808936459], [0.001, 3.99687455490, 188276.65404017159], [0.001, 4.39069692330, 104371.28232719658], [0.001, 1.64083661387, 78283.37918562238], [0.001, 1.50558734911, 78378.14871340781], [0.002, 6.27597485867, 91785.46086631398], [0.001, 4.00786092689, 78244.03966382280], [0.001, 1.70741856509, 28206.66700195260], [0.001, 5.31900403501, 78149.27013603736], [0.001, 1.40205887414, 44937.13069154840], [0.001, 1.03752853909, 104347.73123093879], [0.001, 0.66520680194, 419.48464387520], [0.001, 2.46437105095, 104355.49390165479], [0.001, 0.81835364761, 35191.81013569180], [0.001, 0.33780670840, 88476.99497093359], [0.001, 6.08346231930, 70269.18098269838], [0.001, 1.86810476133, 125887.56221081219], [0.001, 2.10468974660, 25619.93815121980], [0.001, 3.99494842792, 71025.03383312259], [0.001, 0.57714874874, 71980.63357473118], [0.001, 5.66312942513, 97580.90196505119], [0.001, 3.06688416266, 129909.82474277639], [0.001, 5.66709359706, 433.71173787680], [0.001, 0.91634007063, 103925.01437542078], [0.001, 6.02359186416, 181555.94006083018], [0.001, 1.44980129997, 26727.80042788820], [0.001, 1.45442920390, 207593.84658050019], [0.001, 1.12941846578, 60055.89543648739], [0.001, 1.16964771504, 134991.46920492980], ], # B3 [ [235.423, 0.35387524604, 26087.90314157420], [160.537, 0.00000000000, 0.00000000000], [18.904, 4.36275460261, 52175.80628314840], [6.376, 2.50715381439, 78263.70942472259], [4.580, 6.14257817571, 104351.61256629678], [3.061, 3.12497552681, 130439.51570787099], [1.732, 6.26642412058, 156527.41884944518], [0.857, 3.07673166705, 182615.32199101939], [0.384, 6.14815319932, 208703.22513259359], [0.159, 2.92437378320, 234791.12827416777], [0.062, 5.97292432097, 260879.03141574195], [0.054, 3.31612529961, 27197.28169366760], [0.023, 2.74287679452, 286966.93455731618], [0.017, 0.77798463435, 24978.52458948080], [0.012, 6.24116133415, 53285.18483524180], [0.008, 5.79551081392, 313054.83769889036], [0.006, 5.81555175073, 31749.23519072640], [0.004, 4.67212195693, 51116.42435295920], [0.004, 3.36833718999, 77154.33087262919], [0.003, 0.26522113546, 103242.23401420339], [0.003, 0.79794705473, 27043.50288318280], [0.004, 0.82832725003, 21535.94964451540], [0.002, 2.57068697582, 339142.74084046460], [0.002, 1.82309397040, 1109.37855209340], [0.002, 0.74986942696, 47623.85278608960], [0.002, 3.61692083154, 50586.73338786459], [0.002, 4.70766241226, 51066.42773105500], [0.001, 3.33688549090, 129330.13715577759], [0.001, 2.64641192612, 57837.13833230060], [0.001, 4.93247555987, 25558.21217647960], [0.002, 5.00344393497, 20426.57109242200], [0.002, 4.80841415889, 25028.52121138500], [0.002, 5.85039338716, 1059.38193018920], [0.001, 1.85116662745, 37410.56723987860], [0.002, 3.97317842825, 25132.30339996560], [0.001, 2.14494291300, 79373.08797681599], [0.001, 2.53223701416, 46514.47423399620], [0.001, 5.84921632430, 5661.33204915220], [0.001, 3.81958470276, 53131.40602475700], [0.001, 1.05410669937, 1589.07289528380], [0.001, 1.39436798574, 51646.11531805379], [0.001, 0.36358097174, 22645.32819660879], [0.001, 2.76609972270, 28306.66024576099], [0.001, 3.67689055309, 4551.95349705880], [0.001, 5.39398540975, 32858.61374281979], [0.001, 3.73579127170, 24498.83024629040], [0.001, 0.60289607514, 26068.23338067440], [0.001, 5.78167324673, 26107.57290247399], [0.001, 3.81913361795, 26091.78447693220], [0.001, 5.64455351094, 365230.64398203877], [0.001, 4.87981157471, 10213.28554621100], [0.001, 2.44816565966, 26084.02180621620], [0.000, 3.45284067711, 105460.99111839019], ], # B4 [ [4.276, 1.74579932115, 26087.90314157420], [1.023, 3.14159265359, 0.00000000000], [0.425, 4.03419509143, 52175.80628314840], [0.257, 0.20643590425, 78263.70942472259], [0.116, 3.75237354024, 104351.61256629678], [0.073, 1.18210375402, 130439.51570787099], [0.051, 4.54581086194, 156527.41884944518], [0.031, 1.44226942756, 182615.32199101939], [0.016, 4.56372679459, 208703.22513259359], [0.008, 1.34684622635, 234791.12827416777], [0.003, 4.40269422669, 260879.03141574195], [0.001, 4.69096566687, 27197.28169366760], [0.001, 1.16082903756, 286966.93455731618], [0.000, 1.44918128781, 24978.52458948080], [0.000, 4.18046278690, 313054.83769889036], ], # B5 [ [0.106, 3.94555784256, 26087.90314157420], [0.075, 3.14159265359, 0.00000000000], [0.022, 1.30514874546, 52175.80628314840], [0.007, 4.99717136857, 78263.70942472259], [0.004, 2.05662545278, 104351.61256629678], [0.002, 5.43162058632, 130439.51570787099], [0.001, 2.68052517331, 156527.41884944518], [0.001, 6.00841870284, 182615.32199101939], [0.000, 2.85941734701, 208703.22513259359], [0.000, 5.96962108614, 234791.12827416777], ], ] """This table contains Mercury's periodic terms (all of them) from the planetary theory VSOP87 for the heliocentric latitude at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in pages 415-416.""" VSOP87_R = [ # R0 [ [39528271.652, 0.00000000000, 0.00000000000], [7834131.817, 6.19233722599, 26087.90314157420], [795525.557, 2.95989690096, 52175.80628314840], [121281.763, 6.01064153805, 78263.70942472259], [21921.969, 2.77820093975, 104351.61256629678], [4354.065, 5.82894543257, 130439.51570787099], [918.228, 2.59650562598, 156527.41884944518], [260.033, 3.02817753482, 27197.28169366760], [289.955, 1.42441936951, 25028.52121138500], [201.855, 5.64725040350, 182615.32199101939], [201.499, 5.59227724202, 31749.23519072640], [141.980, 6.25264202645, 24978.52458948080], [100.144, 3.73435608689, 21535.94964451540], [77.561, 3.66972526976, 20426.57109242200], [63.277, 4.29905918105, 25558.21217647960], [62.951, 4.76588899933, 1059.38193018920], [66.754, 2.52520309182, 5661.33204915220], [75.500, 4.47428642962, 51116.42435295920], [48.266, 6.06824478778, 53285.18483524180], [45.748, 2.41480951648, 208703.22513259359], [35.224, 1.05917802674, 27043.50288318280], [40.815, 2.35882016415, 57837.13833230060], [44.234, 1.21957314874, 15874.61759536320], [33.873, 0.86381554651, 25661.30495069820], [37.203, 0.51733821470, 47623.85278608960], [30.092, 1.79500530627, 37410.56723987860], [28.417, 3.02063625668, 51066.42773105500], [30.903, 0.88366335532, 24498.83024629040], [26.105, 2.15021963174, 39609.65458316560], [18.699, 4.96496008403, 11322.66409830440], [21.270, 5.36857139841, 13521.75144159140], [19.422, 4.98378647655, 10213.28554621100], [16.941, 3.88765393402, 26617.59410666880], [15.109, 0.44510589948, 46514.47423399620], [17.087, 1.24077764194, 77204.32749453338], [13.940, 1.62573946865, 27147.28507176339], [13.382, 1.07657890477, 51646.11531805379], [15.012, 4.28173463507, 41962.52073693740], [13.977, 4.77056848793, 33326.57873317420], [12.794, 6.06437138766, 1109.37855209340], [13.938, 1.99984876578, 25132.30339996560], [16.297, 2.63293587817, 19804.82729158280], [11.933, 2.36500939134, 4551.95349705880], [10.612, 5.46555460932, 234791.12827416777], [12.754, 2.07613721222, 529.69096509460], [12.069, 2.84997619452, 79373.08797681599], [9.069, 1.21263611811, 14765.23904326980], [9.491, 0.83697007534, 12566.15169998280], [9.379, 5.41195286503, 83925.04147387479], [7.499, 2.44636811119, 30639.85663863300], [7.463, 5.53233943198, 32858.61374281979], [7.215, 1.17101960691, 16983.99614745660], [8.492, 3.56622930635, 73711.75592766379], [7.109, 5.32625264624, 426.59819087600], [6.863, 1.82313992707, 36301.18868778519], [6.560, 4.27818149213, 43071.89928903080], [8.853, 3.87737694074, 50586.73338786459], [6.885, 5.31108526630, 1589.07289528380], [5.943, 4.06893157254, 53131.40602475700], [7.653, 3.91505031889, 51749.20809227239], [6.460, 6.07127449283, 77154.33087262919], [5.415, 5.20028107807, 65697.55772473979], [5.186, 3.56743214904, 6283.07584999140], [4.090, 3.67593658710, 22645.32819660879], [4.075, 4.29142111073, 103292.23063610759], [4.428, 5.69109527379, 45892.73043315699], [3.426, 0.64911736234, 52705.49724824299], [3.354, 3.49345105494, 72602.37737557039], [4.120, 1.65386255382, 25448.00585526019], [3.261, 1.03195890028, 68050.42387851159], [3.278, 3.13863529552, 25874.60404613620], [3.054, 4.12578324522, 77734.01845962799], [3.614, 2.95861599353, 28306.66024576099], [2.820, 4.62628436074, 18849.22754997420], [2.746, 4.67880529205, 53235.18821333759], [2.713, 3.56874913980, 26068.23338067440], [2.507, 2.23312085627, 260879.03141574195], [3.044, 5.90613310181, 105460.99111839019], [2.755, 5.67587087632, 26107.57290247399], [2.267, 2.17941340037, 110012.94461544899], [2.274, 0.50173671332, 32370.97899156560], [2.741, 4.75427920262, 63498.47038145279], [2.792, 5.05148206806, 51220.20654153979], [2.557, 2.95114696617, 26080.78959457339], [2.135, 0.84621449019, 76674.63652943878], [1.971, 0.47407494310, 48733.23133818299], [1.965, 1.37420902653, 7238.67559160000], [2.526, 0.34535290139, 23969.13928119580], [2.022, 0.33828477567, 99799.65906923798], [1.872, 3.93046425037, 38654.05484155699], [1.873, 0.69327393635, 26091.78447693220], [1.945, 2.37383894182, 6770.71060124560], [1.863, 2.26591720786, 26084.02180621620], [1.750, 5.50651903992, 56727.75978020720], [1.971, 3.77455887616, 19317.19254032860], [1.672, 2.15275897581, 26514.50133245020], [1.703, 4.28965990785, 40853.14218484400], [1.657, 4.98021773372, 9103.90699411760], [2.084, 2.19427123968, 26301.20223701220], [1.818, 4.20870869718, 25938.33994443960], [1.780, 0.91702846577, 79219.30916633119], [1.525, 2.15720744047, 27676.97603685800], [1.533, 1.54503054415, 955.59974160860], [1.614, 1.27565104562, 25035.63475838580], [1.743, 0.68269002122, 77837.11123384659], [1.389, 4.85102048256, 62389.09182935939], [1.436, 0.05742216761, 23869.14603738740], [1.563, 5.84795233948, 26095.01668857500], [1.640, 4.66281337712, 25021.40766438420], [1.552, 2.83910580545, 103242.23401420339], [1.249, 1.97225274067, 91785.46086631398], [1.160, 1.73113341823, 38519.94579197200], [1.005, 1.05898314860, 129380.13377768178], [1.041, 2.78036322434, 213.29909543800], [1.105, 4.55512109515, 26011.63707029860], [0.979, 2.43870419667, 71980.63357473118], [0.853, 0.56334001923, 20760.42703319140], [0.874, 4.53679970936, 639.89728631400], [0.783, 3.69782403005, 78793.40038981718], [0.772, 4.08714349549, 94138.32702008578], [0.797, 0.26237215917, 98690.28051714458], [0.965, 4.70784179954, 51535.90899683439], [0.952, 2.53604676495, 29530.47808653960], [0.773, 2.67893222158, 131548.89425996438], [0.734, 0.89243669490, 103821.92160120218], [0.668, 3.73113394924, 46848.33017476560], [0.828, 2.88184821542, 19406.67828817460], [0.622, 1.05579535631, 59414.48187474840], [0.676, 4.50357599360, 25934.12433108940], [0.602, 5.28399057704, 286966.93455731618], [0.619, 1.44855037685, 79323.09135491178], [0.691, 6.19733262608, 51962.50718771040], [0.563, 5.22994296186, 136100.84775702318], [0.782, 3.25257254691, 50057.04242277000], [0.551, 0.33644229836, 52156.13652224860], [0.705, 4.73705371920, 26241.68195205900], [0.577, 5.85654734429, 2118.76386037840], [0.517, 3.93195379429, 102762.53967101299], [0.635, 4.87720838965, 12432.04265039780], [0.635, 1.81903685898, 77308.10968311399], [0.543, 1.40877130839, 44937.13069154840], [0.556, 5.44324390449, 85034.42002596818], [0.496, 3.39004132624, 125887.56221081219], [0.546, 4.78005317483, 22747.29071487440], [0.520, 6.00172746972, 52168.69273614759], [0.463, 3.67549187956, 25668.41849769900], [0.452, 3.53009000682, 58458.88213313979], [0.474, 5.94330512040, 54394.56338733519], [0.559, 2.44355554028, 52195.47604404819], [0.418, 3.73369494476, 103925.01437542078], [0.397, 0.69014608020, 64741.95798313119], [0.511, 5.88243734524, 45494.58142974879], [0.412, 2.26754404446, 82815.66292178139], [0.425, 5.24511927496, 52389.10537858640], [0.482, 0.98165400059, 25654.19140369739], [0.380, 3.74413132157, 52179.68761850640], [0.359, 5.50961077408, 26555.86813192860], [0.375, 1.97920050124, 149.56319713460], [0.385, 5.88991948790, 129330.13715577759], [0.348, 4.91064019959, 1052.26838318840], [0.417, 4.32916053867, 51123.53789995999], [0.425, 1.43228996047, 51109.31080595839], [0.464, 3.98651628073, 105307.21230790539], [0.329, 5.20636278221, 52602.40447402440], [0.354, 1.04383146533, 66941.04532641819], [0.324, 1.62975761811, 88476.99497093359], [0.378, 5.31676765847, 52171.92494779040], [0.440, 1.46381183715, 89586.37352302698], [0.355, 1.52732265492, 1066.49547719000], [0.302, 5.21113786435, 53764.87917843220], [0.301, 5.02488829134, 117873.36400788819], [0.351, 2.00433341730, 24395.73747207180], [0.289, 6.19161799918, 26094.53170047421], [0.286, 3.77170690304, 7.11354700080], [0.284, 3.10942616808, 49957.04917896160], [0.385, 2.47184729453, 25234.70675982219], [0.382, 0.97683830518, 52026.24308601380], [0.271, 5.74710334372, 25455.11940226100], [0.375, 0.55187466535, 45405.09568190280], [0.267, 2.86410554301, 80482.46652890938], [0.304, 6.00190488272, 2218.75710418680], [0.259, 1.82921035765, 24505.94379329119], [0.251, 4.10979574073, 155468.03691925600], [0.289, 3.05373259745, 26081.27458267419], [0.242, 5.05501089774, 42153.96900304900], [0.244, 2.15621668050, 3442.57494496540], [0.315, 2.61613386386, 52182.91983014920], [0.256, 3.71117332461, 25619.93815121980], [0.232, 2.21576531181, 16066.06586147480], [0.233, 5.49033130906, 98068.53671630539], [0.236, 4.08612620637, 26013.12154300690], [0.225, 0.44449338810, 76144.94556434419], [0.242, 3.29851820234, 6681.22485339960], [0.227, 1.63236736805, 76.26607127560], [0.268, 1.09037236588, 18093.37469954999], [0.255, 4.20635818545, 44181.27784112419], [0.205, 1.00234895959, 26190.99591579279], [0.228, 1.46077047931, 77623.81213840858], [0.197, 1.36693360783, 26727.80042788820], [0.259, 1.28296039354, 13655.86049117640], [0.197, 5.73307583430, 157636.79740153858], [0.196, 0.06606260924, 40565.25432477420], [0.187, 0.86187283408, 120226.23016165999], [0.262, 4.14850032709, 24491.71669928959], [0.244, 4.14399890076, 95247.70557217918], [0.232, 5.45165695316, 33967.99229491319], [0.206, 5.59196913034, 55618.38122811380], [0.203, 1.64252462466, 58946.51688439399], [0.187, 0.46291089182, 104881.30353139139], [0.192, 1.82761158300, 25551.09862947879], [0.200, 1.81376901527, 25863.55834587229], [0.191, 5.57428963071, 5327.47610838280], [0.195, 3.31297083154, 124778.18365871879], [0.169, 1.69270064342, 90695.75207512038], [0.226, 1.32354627258, 52099.54021187280], [0.177, 3.29620848300, 25131.61398560359], [0.178, 2.54823795050, 26720.68688088739], [0.167, 3.61983109002, 23754.70674870219], [0.159, 3.48396967776, 25977.69682035479], [0.150, 5.20072476078, 69159.80243060499], [0.179, 3.94252428767, 129909.82474277639], [0.166, 0.40320638452, 100909.03762133139], [0.176, 2.97410942402, 24925.42843716640], [0.154, 1.27206049137, 25984.81036735560], [0.144, 1.89319156163, 64607.84893354619], [0.145, 2.05409839424, 313054.83769889036], [0.152, 4.87194153709, 103396.01282468818], [0.137, 3.86782217557, 24609.03656750980], [0.141, 1.99770625298, 162188.75089859738], [0.185, 6.10038742063, 23439.44831610119], [0.135, 1.27363012793, 52022.02747266360], [0.127, 0.70464976569, 128850.44281258718], [0.142, 1.50696203402, 52329.58509363319], [0.126, 2.70555128398, 28206.66700195260], [0.126, 1.61963252183, 48835.19385644859], [0.123, 0.15629905349, 151975.46535238638], [0.137, 1.77306412615, 35191.81013569180], [0.147, 4.50311642422, 105410.99449648599], [0.125, 3.38994834526, 78244.03966382280], [0.119, 2.77644375904, 78256.59587772179], [0.156, 2.96616703196, 78050.41032928458], [0.145, 1.35569389554, 3340.61242669980], [0.126, 3.97006576134, 29428.51556827400], [0.128, 5.41891989692, 26162.68474014150], [0.132, 4.86901248209, 24712.12934172840], [0.110, 3.87954702440, 85502.38501632259], [0.127, 5.49703075555, 78283.37918562238], [0.126, 0.94870979828, 121335.60871375339], [0.129, 4.00691218396, 72936.23331633979], [0.102, 0.50487650429, 130012.91751699499], [0.104, 0.29849788751, 84546.78527471398], [0.118, 0.76511176346, 131395.11544947958], [0.120, 4.45261989231, 71025.03383312259], [0.117, 3.31644134053, 25771.51127191760], [0.110, 2.63249934300, 71582.48457132299], [0.097, 2.66105435933, 155418.04029735178], [0.113, 5.88733575390, 26404.29501123080], [0.098, 2.01417457095, 78477.00852016058], [0.103, 0.46416881502, 51756.32163927320], [0.093, 2.37389467504, 419.48464387520], [0.125, 1.87932536282, 26610.48055966799], [0.095, 0.34221817875, 26507.38778544939], [0.093, 3.80346806552, 26037.90651966999], [0.091, 2.63082094391, 28421.09953444620], [0.101, 5.20997240587, 433.71173787680], [0.096, 4.47724179825, 77197.21394753258], [0.108, 4.03679713919, 51742.09454527159], [0.086, 5.14039556935, 26237.46633870879], [0.092, 3.74335845403, 90829.86112470538], [0.086, 1.86276413658, 27140.17152476259], [0.102, 5.40465219833, 26137.89976347840], [0.086, 4.01653667598, 10021.83728009940], [0.100, 5.32142188276, 108903.56606335558], [0.079, 4.68108496987, 27154.39861876420], [0.092, 5.52103093635, 51322.60990139639], [0.093, 4.20604773511, 38813.35657634920], [0.078, 2.88001982141, 29416.03879785439], [0.095, 4.44018421307, 115674.27666460119], [0.104, 5.05004528676, 50483.64061364600], [0.075, 1.78927060530, 143961.26714946239], [0.086, 0.51423355089, 78267.59076008058], [0.078, 4.66831173790, 114564.89811250778], [0.078, 4.20137623264, 1692.16566950240], [0.086, 4.03030391951, 78114.14622758799], [0.073, 2.27328552013, 52643.77127350280], [0.082, 3.73510592110, 853.19638175200], [0.071, 4.89150553141, 50593.84693486539], [0.082, 5.22677693918, 27999.10262479140], [0.093, 1.09569161440, 77211.44104153418], [0.074, 1.97833720876, 78690.30761559859], [0.082, 3.59482991001, 71492.99882347698], [0.083, 4.10355702051, 93028.94846799239], [0.083, 3.12647584943, 14477.35118320000], [0.067, 0.24182046727, 66653.15746634839], [0.074, 5.66833060422, 78270.82297172339], [0.068, 1.98236355905, 79852.78232000639], [0.064, 5.55115814500, 25764.39772491679], [0.064, 6.15935356751, 76044.95232053580], [0.087, 1.77296830923, 25440.89230825939], [0.073, 2.06220281759, 111122.32316754239], [0.066, 2.28151075383, 7880.08915333899], [0.076, 2.65553220848, 34282.17847478280], [0.078, 0.40338105541, 49842.60989027639], [0.064, 0.87558639332, 181555.94006083018], [0.086, 2.08697748680, 78259.82808936459], [0.074, 0.86501751700, 50579.61984086379], [0.082, 1.02659883956, 74821.13447975718], [0.059, 2.45952644668, 51543.02254383520], [0.062, 0.94273311929, 25344.91308104160], [0.058, 2.95861781205, 52182.43484204840], [0.058, 4.20402726578, 96357.08412427259], [0.061, 2.81500265978, 26202.34243025941], [0.057, 2.27689377996, 124156.43985787958], [0.057, 4.37167017012, 1581.95934828300], [0.055, 0.12465494356, 25973.46385288896], [0.054, 4.79303212221, 26164.16921284980], [0.054, 3.05622204718, 25565.32572348040], [0.055, 4.51497762833, 103711.71527998279], [0.054, 3.87143037686, 18207.81398823521], [0.054, 4.62784653733, 25881.71759313700], [0.053, 4.32548272270, 70269.18098269838], [0.050, 2.50066877650, 183724.70054311279], [0.058, 2.06211216656, 1596.18644228460], [0.066, 5.20298814290, 26294.08869001139], [0.047, 0.85039730966, 52101.02468458109], [0.058, 1.43409045174, 23866.04650697719], [0.048, 2.35364103056, 81706.28436968799], [0.052, 0.19368783267, 92741.06060792258], [0.053, 0.58517949906, 26624.70765366959], [0.061, 2.61493039721, 49527.35145767539], [0.047, 3.88384847335, 146314.13330323418], [0.049, 6.20308247475, 32769.12799497380], [0.053, 4.37486529196, 78187.44335344699], [0.048, 5.97568482401, 51013.33157874059], [0.048, 3.84102043742, 102232.84870591838], [0.049, 5.05464216653, 7994.52844202420], [0.044, 5.42890224840, 86143.79857806159], [0.058, 3.80571138237, 99024.13645791399], [0.044, 4.02792920142, 147423.51185532758], [0.058, 6.09746566424, 52169.17772424839], [0.042, 4.38843836266, 224.34479570190], [0.043, 1.57859396874, 23976.25282819660], [0.049, 0.46973350644, 51707.84129279399], [0.040, 4.41764731583, 52815.70356946240], [0.046, 3.51985131014, 130969.20667296558], [0.045, 4.35527612249, 39743.76363275060], [0.045, 0.78163192715, 25138.72753260440], [0.049, 0.90057831755, 632.78373931320], [0.041, 4.04225615670, 52278.89905736699], [0.039, 2.91829595120, 956.28915597060], [0.043, 0.13178694356, 2648.45482547300], [0.038, 0.62377784752, 50696.93970908399], [0.042, 2.75028269027, 24079.34560241519], [0.040, 1.64358052897, 39629.32434406539], [0.037, 5.75760879379, 25867.49049913539], [0.051, 1.57829002915, 12725.45343477500], [0.037, 1.62981695072, 129483.91596626239], [0.045, 0.04645406242, 51219.51712717779], [0.036, 0.09834373600, 25241.82030682300], [0.049, 0.07681157050, 150866.08680029298], [0.034, 4.56091607046, 536.80451209540], [0.036, 5.59483746723, 52808.59002246159], [0.039, 5.99500252470, 104138.31347085879], [0.046, 0.70772608543, 155997.72788435058], [0.033, 4.54716206885, 78417.48823520739], [0.041, 4.92673567168, 51639.00177105299], [0.032, 4.31372208361, 78109.93061423779], [0.036, 5.69791953426, 26049.77010593640], [0.034, 3.32168809248, 35472.74414964940], [0.042, 4.86530735726, 51951.46148744649], [0.033, 3.73733919231, 154938.34595416137], [0.041, 2.38147812869, 68241.87214462319], [0.035, 5.09571047220, 339142.74084046460], [0.031, 4.31506703539, 52072.71350892979], [0.032, 3.21248509301, 178063.36849396059], [0.035, 5.04278529087, 188276.65404017159], [0.041, 3.22838990589, 1162.47470440780], [0.030, 2.33061092140, 1478.86657406440], [0.032, 2.71244280066, 25780.34552060460], [0.032, 3.80411460420, 157483.01859105378], [0.030, 0.37624991562, 26421.75908234360], [0.029, 5.82513433576, 104344.49901929598], [0.031, 6.02215690021, 26198.10946279360], [0.040, 1.02201252788, 27819.02549450680], [0.030, 2.25849995020, 104371.28232719658], [0.029, 2.67851330746, 110.20632121940], [0.030, 1.34446903292, 1375.77379984580], [0.028, 4.62845152557, 74923.09699802278], [0.037, 3.03899000872, 11610.55195837420], [0.032, 0.26062549755, 52065.59996192899], [0.038, 1.25704652400, 131498.89763806018], [0.032, 1.04832153595, 26086.41866886590], [0.037, 1.63595908508, 50800.03248330259], [0.030, 0.15550783905, 104331.94280539699], [0.026, 0.03549300809, 24815.22211594700], [0.026, 1.03871337432, 24292.64469785319], [0.026, 3.54557412535, 156100.82065856917], [0.027, 0.60333270859, 111590.28815789679], [0.031, 3.35540556110, 126996.94076290558], [0.026, 5.73937805822, 54294.57014352679], [0.026, 2.79743885101, 86457.98475793119], [0.026, 5.70579806927, 97670.38771289718], [0.025, 2.34928986187, 24601.92302050899], [0.025, 5.70613852018, 181505.94343892598], [0.034, 0.23651097126, 26395.46076254379], [0.025, 2.19241735868, 52250.58788171570], [0.025, 1.82880416247, 74.78159856730], [0.028, 0.57661358158, 125112.03959948818], [0.024, 2.03938254170, 26521.61487945100], [0.024, 5.05213893429, 104564.91166173479], [0.023, 6.23874249128, 75615.25459924959], [0.026, 3.34519516519, 110634.68841628819], [0.026, 4.74840245512, 13362.44970679920], [0.026, 0.15419927428, 22759.76748529401], [0.027, 2.39568978424, 522.57741809380], [0.028, 0.25542748453, 103.09277421860], [0.025, 3.32961707416, 28286.99048486120], [0.026, 2.07987634823, 29550.14784743939], [0.032, 1.70464933285, 26089.38761428249], [0.023, 4.16670746048, 24176.70365835700], [0.024, 0.08582796512, 51859.41441349179], [0.025, 5.27240695394, 25936.85547173129], [0.024, 0.80363857551, 77829.99768684579], [0.023, 2.30360039127, 77410.51304297059], [0.030, 1.21286011206, 97112.93697469679], [0.022, 4.82094558003, 13541.42120249119], [0.023, 2.65250267545, 52492.19815280499], [0.026, 6.26936948934, 25939.82441714789], [0.024, 4.92454390318, 52698.38370124219], [0.022, 1.23470921550, 103285.11708910679], [0.023, 3.68813881444, 26729.31670331319], [0.022, 1.95831083558, 24356.78078864160], [0.022, 0.78346634338, 104202.04936916218], [0.021, 2.52931432670, 467.96499035440], [0.024, 1.84656751628, 76571.54375522019], [0.025, 2.55626379808, 24822.33566294780], [0.027, 3.61440862477, 23962.02573419499], [0.023, 1.18953680418, 141762.17980617538], [0.020, 5.49778171394, 112231.70171963578], [0.023, 2.60719608050, 25754.04720080480], [0.026, 0.75788900266, 55516.41870984820], [0.026, 2.09375500363, 134991.46920492980], [0.020, 3.35091650179, 52595.29092702359], [0.021, 0.36570195077, 97580.90196505119], [0.024, 0.51085875774, 116917.76426627958], [0.021, 5.71018496974, 60055.89543648739], [0.019, 0.56236491686, 52125.80966124419], [0.019, 2.85801633295, 60370.08161635699], [0.024, 3.50657176712, 77844.22478084739], [0.020, 0.53533403977, 26941.09952332620], [0.019, 6.25214103463, 25973.50403466079], [0.022, 5.13145226592, 104347.73123093879], [0.021, 4.13407823619, 103299.34418310839], [0.019, 0.33492578967, 102018.41617342478], [0.019, 5.67148210198, 54509.00267602040], [0.018, 1.90051892916, 52325.36948028299], [0.019, 4.27364751897, 122444.98726584678], [0.018, 2.45675888957, 104358.72611329758], [0.018, 1.05990359493, 27780.06881107659], [0.018, 1.43297513339, 53242.30176033840], [0.021, 2.99876487527, 26073.67604757259], [0.023, 1.86389686355, 116783.65521669458], [0.018, 4.87152831033, 170049.17029103660], [0.019, 4.89400475242, 53228.07466633679], [0.021, 2.47295566818, 27726.97265876220], [0.020, 4.98762998978, 104778.21075717278], [0.021, 1.46468188731, 140652.80125408198], [0.017, 4.05153553008, 76667.52298243798], [0.020, 4.80985268979, 51528.79544983359], [0.022, 0.86617331302, 119116.85160956658], [0.023, 2.08281937549, 52225.80290505260], [0.018, 1.69333480892, 76681.75007643958], [0.017, 2.09406764538, 64901.25971792339], [0.019, 5.00011023502, 105940.68546158058], [0.019, 0.74020534937, 36109.74042167360], [0.017, 2.93246868693, 102132.85546210999], [0.022, 3.55902023067, 104355.49390165479], [0.021, 3.54390310557, 106570.36967048359], [0.018, 4.65006394461, 61279.71327726600], [0.019, 4.43905256177, 647.01083331480], [0.017, 2.83124480600, 132658.27281205778], [0.018, 2.89808596608, 26091.83529483729], [0.017, 5.67044617806, 25788.77674730500], [0.017, 5.37178978632, 78731.67441507700], [0.015, 5.25910515843, 150244.34299945380], [0.019, 1.72681089737, 153.77881048480], [0.015, 2.16472550978, 26222.01219115920], [0.015, 1.13029685380, 25042.74830538660], [0.015, 2.31335544105, 51852.30086649099], [0.019, 4.38254962804, 24182.43837663380], [0.015, 5.16465400786, 27684.08958385880], [0.017, 3.97954718583, 207643.84320240439], [0.016, 5.74057898460, 25352.02662804239], [0.014, 3.42441202713, 26823.77965510599], [0.014, 5.30168284837, 742.99006053260], [0.014, 2.50431306810, 32132.13172294960], [0.014, 1.36632464908, 23919.14265929160], [0.015, 6.07490514430, 78270.33798362259], [0.019, 4.40557078960, 49953.94964855139], [0.014, 0.65475293554, 323.50541665740], [0.014, 0.47093305165, 17893.62780836560], [0.014, 1.33029112501, 129799.61842155698], [0.017, 6.02915345940, 26667.59072857300], [0.014, 1.17588054181, 104275.34649502118], [0.014, 4.84032377923, 2221.85663459700], [0.014, 5.53694881682, 77630.92568540938], [0.013, 5.59791238730, 209812.60368468694], [0.013, 0.84042148682, 173511.41499690176], [0.015, 3.96416547461, 51432.81622261579], [0.015, 3.17020350946, 176953.98994186718], [0.014, 2.91048815444, 78257.08086582259], [0.013, 5.34915944924, 80174.90890793978], [0.018, 1.65795375577, 28256.66362385679], [0.013, 3.34629064183, 25508.21555457540], [0.016, 1.32228458025, 27669.86248985719], [0.013, 1.38990649917, 25024.58905812189], [0.017, 2.01249037695, 27037.07875054399], [0.015, 1.99208068531, 52381.99183158559], [0.013, 2.32883800921, 27005.83342755599], [0.014, 3.86914390591, 182085.63102592478], [0.012, 3.97054224711, 78188.92782615528], [0.016, 5.59174105029, 25446.48957983520], [0.014, 0.70490117614, 172402.03644480839], [0.012, 1.54422590258, 52252.07235442399], [0.014, 3.47518139481, 27177.61193276780], [0.012, 5.46223056321, 107794.18751126219], [0.012, 5.76552608362, 50167.24874398939], [0.016, 2.18648993322, 26308.31578401300], [0.014, 2.72148386686, 27311.72098235281], [0.013, 0.55524977232, 75930.51303185058], [0.012, 2.66601602132, 137210.22630911658], [0.011, 0.61596543052, 44295.71712980940], [0.011, 4.76091715459, 155571.81910783658], [0.014, 5.93896401871, 52290.24557183361], [0.011, 0.92596625175, 22625.65843570900], [0.012, 6.19273795549, 51653.22886505459], [0.014, 0.79969658546, 25953.79409198919], [0.011, 2.82093111356, 77101.23472031478], [0.011, 1.26994666311, 26312.24793727610], [0.013, 2.88923696437, 112545.88789950538], [0.011, 6.05528757595, 27044.19229754480], [0.012, 3.29626000869, 52061.36699446317], [0.011, 3.58945976808, 52712.61079524379], [0.014, 2.79036507500, 23888.81579828719], [0.011, 4.15810059578, 45290.65639321759], [0.011, 2.94979930726, 58857.03113654799], [0.012, 2.20589728666, 31415.37924995700], [0.012, 1.34841658603, 51969.62073471119], [0.011, 3.29585795787, 28736.35796704720], [0.011, 0.43538573957, 24448.83362438620], [0.010, 2.85999162474, 130226.21661243298], [0.013, 4.41880429822, 19958.60610206760], [0.012, 5.96394058241, 26083.97098831109], [0.010, 5.44297146700, 163298.12945069079], [0.012, 1.57767582029, 91805.13062721379], [0.010, 3.83536418151, 51226.63067417859], [0.013, 0.34187342138, 157057.10981453978], [0.010, 1.12787053523, 78903.60671103658], [0.010, 4.67818130014, 2111.65031337760], [0.012, 3.56391619799, 77795.74443436819], [0.011, 5.80720491261, 26102.13023557580], [0.012, 5.80252382200, 27972.80430499159], [0.011, 2.47026109919, 26010.15259759030], [0.013, 4.60245036657, 25032.45336464809], [0.010, 1.14221106164, 9384.84100807520], [0.013, 5.56953201474, 22909.75735100660], [0.010, 4.35806585483, 157586.80077963436], [0.010, 1.11553298844, 65831.66677432480], [0.011, 4.67108617661, 50064.15596977079], [0.011, 2.80726281395, 81591.84508100279], [0.009, 0.47353753060, 128106.31931499895], [0.009, 1.42459829123, 104505.39137678158], [0.009, 2.37565722096, 78896.49316403578], [0.009, 4.84820485208, 24918.31489016559], [0.011, 6.23834008870, 30171.89164827860], [0.011, 1.65565660037, 78039.36462902068], [0.009, 3.65734666897, 151199.94274106238], [0.009, 5.40966654859, 130459.18546877075], [0.010, 0.87714716556, 78366.80219894118], [0.009, 3.04701773654, 51329.72344839720], [0.009, 1.96005885441, 26575.53789282839], [0.010, 1.18004009296, 50270.34151820800], [0.009, 5.48583841069, 138319.60486120995], [0.010, 3.21154218694, 77307.42026875199], [0.009, 5.55407965409, 8194.27533320860], [0.008, 1.35584545211, 12546.48193908300], [0.009, 0.42023516699, 27223.58001346740], [0.010, 1.76704509660, 77726.90491262719], [0.009, 1.60501838348, 77616.69859140778], [0.009, 5.46388323313, 16703.06213349900], [0.009, 1.60520912676, 117893.03376878797], [0.009, 6.23528739890, 846.08283475120], [0.009, 5.66619352199, 50910.23880452200], [0.009, 1.18753574623, 104197.83375581198], [0.009, 0.69327774851, 26709.64694241340], [0.010, 5.48870132496, 94329.77528619739], [0.008, 1.17006056902, 78160.61665050399], [0.009, 0.49965065220, 27573.19384827740], [0.011, 6.20705720585, 28102.88481337200], [0.011, 0.75657533913, 128320.75184749259], [0.008, 3.86430794820, 103917.90082841998], [0.009, 3.64580324894, 76784.84285065818], [0.008, 4.52722085618, 27463.67694142000], [0.009, 1.73726961641, 28791.51929624980], [0.011, 1.86762532326, 214364.55718174577], [0.008, 3.17547134507, 50903.12525752120], [0.008, 6.23140491980, 148.07872442630], [0.008, 0.97646930359, 19202.75325164339], [0.008, 0.87651427964, 151.04766984290], [0.009, 1.55645109653, 26126.03617721200], [0.008, 3.12232090039, 22003.91463486980], [0.008, 3.45204671122, 24203.00197815680], [0.008, 2.50177739941, 51955.39364070959], [0.008, 4.20326276911, 50380.54783942739], [0.008, 2.66681931912, 130432.40216087017], [0.010, 2.61302801987, 27170.98337386779], [0.008, 6.15791792940, 37698.45509994840], [0.008, 5.36718741692, 35077.37084700659], [0.008, 0.39542025081, 183570.92173262799], [0.008, 4.37576068847, 123200.84011627098], [0.008, 3.44870239791, 26402.08932144380], [0.007, 5.88380837195, 51868.24866217880], [0.007, 4.80640660702, 26118.23000257860], [0.008, 5.82773614091, 3328.13565628019], [0.009, 2.53209611805, 25227.59321282139], [0.010, 2.52793236150, 35833.22369743080], [0.008, 4.11204744654, 53906.92863608099], [0.008, 1.58745297967, 101011.00013959699], [0.009, 2.57384727244, 2125.87740737920], [0.007, 2.46084982092, 52137.67324751059], [0.008, 5.56577535390, 50689.82616208319], [0.007, 5.98112141065, 52179.73843641149], [0.010, 5.16567712694, 55638.05098901359], [0.008, 4.67643518278, 76887.93562487679], [0.007, 4.36322743599, 155887.52156313116], [0.009, 0.68598593831, 38.13303563780], [0.008, 0.46194680162, 181026.24909573558], [0.008, 0.42442705032, 182188.72380014337], [0.009, 3.57254516611, 1265.56747862640], [0.009, 1.65553917926, 65717.22748563958], [0.010, 3.53066047636, 2008.55753915900], [0.007, 3.89373397550, 1485.98012106520], [0.010, 0.82550269560, 39763.43339365039], [0.007, 4.33817871844, 129373.02023068098], [0.007, 3.41340083585, 52483.36390411799], [0.008, 1.23992323880, 76041.85279012559], [0.007, 0.04567921269, 206.18554843720], [0.007, 2.56169701158, 207593.84658050019], [0.009, 1.97148507623, 365230.64398203877], [0.007, 3.14813276839, 52061.40717623499], [0.007, 4.86954611488, 27351.06050415239], [0.008, 6.27520424489, 204151.27163553477], [0.007, 5.46143749214, 25985.94062330859], [0.008, 4.44335543148, 26057.57628056979], [0.007, 1.00677483843, 129387.24732468258], [0.008, 0.22314041177, 50049.92887576919], [0.007, 3.98224449185, 13675.53025207620], [0.007, 4.34489404354, 167850.08294774959], [0.009, 0.71471851401, 233731.74634397859], [0.007, 1.69935809006, 54087.00576636560], [0.007, 6.21044393135, 203041.89308344139], [0.007, 2.53524305485, 80382.47328510099], [0.007, 0.03218225075, 31281.27020037200], [0.007, 5.26037977949, 78338.49102328988], [0.007, 3.52744190481, 52509.66222391780], [0.007, 5.24771876203, 1795.25844372100], [0.007, 5.20875856726, 161079.37234650398], [0.007, 3.19471628666, 24072.92146977640], [0.006, 1.58096793180, 143980.93691036216], [0.009, 0.70414754528, 25169.97285559240], [0.006, 0.15264531683, 52911.68279668019], [0.007, 4.28578455720, 51130.65144696079], [0.007, 3.42650023556, 29396.36903695460], [0.007, 4.12959254769, 52174.32181044009], [0.008, 3.79812131071, 137678.19129947099], [0.007, 5.70602822567, 9745.32055585660], [0.008, 0.14316432919, 136722.59155786238], [0.007, 3.78832454636, 26189.86565983980], [0.007, 5.44664616173, 27566.76971563859], [0.006, 0.53269408847, 208173.53416749899], [0.007, 3.95192199993, 145204.75475114078], [0.006, 1.80610265750, 26830.89320210680], [0.008, 5.80105964058, 25773.71696170459], [0.006, 1.20705629404, 26734.91397488900], [0.008, 3.87508349031, 52041.69723356339], [0.007, 1.87429126900, 1905.46476494040], [0.007, 5.68938243001, 158746.17595363196], [0.008, 3.39884199213, 78153.50310350319], [0.007, 1.20867598891, 61560.64729122359], [0.008, 3.30580293572, 130419.84594697120], [0.007, 0.39338960799, 2199.08734328700], [0.006, 3.17982806365, 77947.31755506598], [0.008, 0.88585179650, 220.41264243880], [0.008, 1.46508855917, 87367.61641884019], [0.006, 0.60809363482, 118828.96374949679], [0.008, 5.53182088929, 53814.87580033639], [0.007, 1.65646088833, 196137.07343261078], [0.006, 5.74552748087, 55503.94193942859], [0.006, 1.43996863707, 2333.19639287200], [0.006, 1.91186990644, 130652.81480330898], [0.006, 5.06448767269, 50444.68393021580], [0.006, 1.09838300878, 183674.70392120857], [0.007, 0.35338852938, 103932.12792242158], [0.006, 0.28924808590, 54374.89362643540], [0.006, 2.72829193454, 76255.15188556358], [0.006, 3.92290484480, 130289.95251073639], [0.007, 1.27402494790, 46046.50924364180], [0.007, 2.96149281662, 52755.49387014719], [0.008, 2.23784693584, 25466.15934073500], [0.006, 1.78075029765, 78786.28684281638], [0.008, 4.71972114899, 25014.29411738339], [0.006, 5.52798470860, 103498.41618454478], [0.008, 5.43345902063, 949.17560896980], [0.006, 5.55571041746, 130446.62925487179], [0.007, 5.36488899884, 77940.20400806518], [0.006, 0.52080930820, 25004.82290928060], [0.006, 3.48878406062, 123668.80510662538], [0.008, 3.02023688443, 26076.85744131030], [0.008, 5.31586228888, 24388.62392507099], [0.006, 5.06257578673, 78469.89497315978], [0.006, 4.79504045120, 52177.29075585669], [0.006, 4.57296057068, 35211.47989659159], [0.006, 5.37176342301, 53093.73656913019], [0.006, 4.26973755729, 130363.24963659538], [0.006, 5.75364706874, 78580.10129437919], [0.006, 1.99314462977, 130435.63437251298], [0.006, 1.55918658153, 39450.35284837340], [0.008, 4.77256284659, 142871.55835826878], [0.006, 6.09530056324, 103395.32341032618], [0.006, 1.29134609458, 102975.83876645098], [0.006, 1.83917095242, 24402.85101907260], [0.005, 3.63216834248, 43981.53094993980], [0.005, 5.64850202903, 28774.62523611540], [0.007, 4.22124824964, 26098.94884183810], [0.005, 5.85936922514, 156314.11975400720], [0.005, 4.97283396704, 102659.44689679438], [0.005, 1.46473339833, 181659.72224941078], [0.006, 0.71584342921, 104276.83096772949], [0.007, 2.49362242764, 51439.92976961659], [0.006, 0.02944876240, 20043.67456019880], [0.006, 2.19480801460, 12412.37288949800], [0.007, 3.28347851449, 183145.01295611399], [0.005, 3.46807375357, 50536.73676596039], [0.006, 6.20804958899, 114.39910691340], [0.006, 2.26035174588, 103718.82882698359], [0.007, 3.65318062648, 143005.66740785379], [0.005, 0.12859263642, 51596.11869614960], [0.007, 0.75531928973, 77520.71936418998], [0.005, 1.52974136650, 26724.89941359840], [0.007, 3.81960920375, 62197.64356324779], [0.005, 5.08212104486, 52609.51802102519], [0.005, 4.49337901115, 50007.04580086580], [0.005, 5.03210861040, 1045.15483618760], [0.005, 6.27674019656, 1272.68102562720], [0.006, 3.84313039676, 81604.32185142238], [0.006, 3.27974922227, 144916.86689107097], [0.005, 0.50987626702, 299.12639426920], [0.006, 5.10596879808, 78313.70604662679], [0.005, 4.14575201906, 53867.97195265079], [0.007, 4.53402175332, 166740.70439565618], [0.005, 5.57648480152, 106262.81204951399], [0.007, 3.08562485832, 52027.72755872209], [0.006, 2.81224506925, 25450.90686955000], [0.005, 1.51400872659, 28199.55345495179], [0.006, 1.58495517428, 47803.92991637420], [0.006, 2.79561551205, 52286.01260436779], [0.007, 1.80630878142, 23549.65463732060], [0.007, 3.72396318065, 198489.93958638259], [0.005, 5.74129147264, 103189.13786188899], [0.006, 2.94825789213, 56259.79478985279], [0.005, 4.96546514085, 78413.27262185719], [0.005, 1.78518845730, 129586.31932611899], [0.005, 0.31701812829, 78800.51393681798], [0.005, 0.55478931159, 52817.21984488739], [0.006, 1.18448496437, 25600.26839032000], [0.005, 0.42862127579, 179172.74704605396], [0.006, 3.74336258475, 26247.20487636640], [0.005, 2.46583763315, 123758.29085447139], [0.006, 5.09461941443, 53124.98189211819], [0.006, 0.42320281908, 130443.39704322898], [0.006, 2.57896380153, 26014.60601571519], [0.005, 2.23635663946, 24513.05734029200], [0.005, 5.98752668018, 104344.98400739678], [0.006, 0.32131472009, 102872.74599223239], [0.005, 1.95885559875, 53771.99272543299], [0.007, 2.16257501519, 52024.75861330549], [0.006, 1.37111815532, 51120.35650622229], [0.005, 0.15128494504, 78683.19406859778], [0.005, 4.00810087423, 48713.56157728320], [0.006, 1.45883115780, 76152.05911134499], [0.005, 1.72421399237, 28309.75977617119], [0.005, 0.71424864998, 102755.42612401219], [0.006, 0.03283607980, 78149.27013603736], [0.006, 2.69429372458, 78378.14871340781], [0.006, 1.12570261398, 25647.07785669659], [0.005, 3.60259399819, 11.04570026390], [0.006, 4.83171247280, 240452.46032331997], [0.005, 3.71949948652, 26411.40855823160], [0.005, 4.55172986205, 79330.20490191258], [0.005, 0.84232799985, 24551.92639860479], [0.005, 3.74067330742, 52797.55008398759], [0.005, 2.92277012561, 54190.78795494619], [0.005, 3.96038779086, 25657.37279743509], [0.005, 4.54502031861, 102769.65321801379], [0.006, 2.35342867622, 27665.24668402200], [0.005, 3.72877345305, 78213.71280281838], [0.005, 6.19447408823, 26191.68533015479], [0.004, 0.53733592588, 77314.53381575279], [0.004, 1.39917225370, 26290.15653674829], [0.005, 4.85332036328, 54344.56676543099], [0.006, 0.92030946706, 23336.35554188260], [0.006, 0.37487337241, 53265.51507434200], [0.004, 2.01983013209, 156547.08861034497], [0.005, 6.13113074115, 26026.17716683400], [0.004, 4.94928690334, 52663.44103440259], [0.005, 0.40443457223, 28096.46068073319], [0.004, 4.40405080911, 130593.29451835579], [0.004, 4.17440698686, 91919.56991589899], [0.005, 3.71777436660, 70383.62027138360], [0.005, 1.52885825328, 51102.19725895759], [0.004, 1.71609047005, 23762.95373275860], [0.004, 0.55287089413, 26933.98597632540], [0.005, 6.02225706023, 128220.75860368418], [0.005, 1.78226900229, 187167.27548807819], [0.005, 3.32000517354, 45424.76544280259], [0.005, 4.64166221826, 24824.74577899600], [0.005, 3.45997061965, 48847.67062686820], [0.006, 2.62272580920, 52171.87412988529], [0.004, 3.62789650971, 53029.00266490040], [0.006, 2.53652345505, 52190.03337714999], [0.004, 0.08235213515, 58220.03486452380], [0.006, 2.56621666334, 51876.67988887919], [0.005, 5.04323059321, 41494.55574658299], [0.004, 3.42433134364, 53311.48315504160], [0.005, 5.60899913389, 1911.19948321720], [0.004, 1.13990612191, 26183.88236879199], [0.004, 4.24142693734, 189853.99758261937], [0.004, 0.21521651200, 19336.86230122839], [0.005, 0.30306745520, 103883.64757594238], [0.004, 6.09719517639, 77417.62658997139], [0.004, 3.38148734662, 316.39186965660], [0.004, 1.40344660688, 25885.64974640009], [0.006, 2.54556610763, 54060.70744656579], [0.005, 4.62289027765, 78339.97549599818], [0.004, 6.06868163269, 84944.93427812219], [0.005, 0.64970018860, 3178.14579056760], [0.004, 5.48109256360, 78225.57638908479], [0.004, 3.76404568854, 153084.84390447979], [0.004, 0.18748530762, 52489.99246301800], [0.005, 1.74044114280, 79315.97780791098], [0.004, 6.06406108213, 52161.57918914679], [0.005, 0.28595106407, 26161.20026743319], [0.004, 2.11074347112, 189386.03259226496], [0.004, 0.59715530740, 16342.58258571760], [0.004, 3.91091220587, 101703.15774082378], [0.004, 1.16130290140, 50264.60679993120], [0.004, 5.51188515445, 78043.29678228378], [0.005, 4.39350322600, 53757.76563143139], [0.004, 5.15437140585, 24285.53115085240], [0.005, 2.15280343086, 48997.66049258080], [0.004, 5.35316514819, 104984.39630560997], [0.005, 5.75390640070, 51841.95034237900], [0.004, 1.52206374281, 26267.98027185880], [0.004, 4.66563868021, 104127.26777059489], [0.004, 2.36671017385, 19.66976089979], [0.004, 5.10954286080, 31722.93687092660], [0.004, 1.54518951672, 52206.13314415280], [0.004, 4.16791904155, 130285.73689738619], [0.004, 2.93299901703, 31775.53351052620], [0.005, 4.47247592301, 51112.49219969609], [0.004, 2.41568769208, 51534.39272140940], [0.004, 1.74441095464, 26248.31051095900], [0.004, 5.23856038893, 52396.21892558720], [0.004, 4.12254586219, 27441.65188659100], [0.005, 5.17529407091, 19367.18916223280], [0.004, 4.21064422396, 26279.35140768579], [0.005, 4.41570881449, 78057.52387628538], [0.004, 5.30327887066, 25672.35065096209], [0.005, 1.10382058499, 31903.01400121119], [0.005, 2.71619626622, 24952.22626968100], [0.004, 2.28793023586, 235900.50682626115], [0.004, 1.58884724433, 128747.35003836859], [0.004, 5.78862899204, 22779.43724619380], [0.004, 4.22021430561, 1731.12235293260], [0.004, 4.68318371027, 103814.80805420138], [0.004, 3.29575966354, 76137.83201734339], [0.004, 5.47487283809, 132350.71519108818], [0.004, 2.99265295426, 77741.13200662879], [0.004, 3.47889610610, 53661.09698985160], [0.004, 4.76216346874, 156740.71794488319], [0.004, 1.47799681769, 120417.67842777158], [0.004, 2.78305398087, 133767.65136415116], [0.004, 2.87953962922, 25862.07387316400], [0.004, 1.92972990240, 15406.65260500879], [0.005, 1.81394930430, 130866.11389874699], [0.004, 2.62752187758, 24602.61243487099], [0.004, 3.12567603415, 20894.53608277640], [0.004, 1.00432915295, 149288.74325784517], [0.004, 3.47489986602, 26114.20146137400], [0.004, 4.27251739299, 104991.50985261079], [0.004, 2.20022040184, 52073.84376488279], [0.004, 3.77568584773, 14.22709400160], [0.004, 1.65179392234, 51006.21803173979], [0.004, 0.72729563393, 25865.04281858059], [0.004, 5.61140287619, 53258.88651544199], [0.004, 1.55115346866, 53438.96364572659], [0.005, 0.91157457367, 25665.23710396129], [0.005, 6.11073147567, 156507.74908854539], [0.003, 3.12711312875, 80462.79676800959], [0.004, 2.21068358470, 76777.72930365738], [0.004, 0.82472101949, 30689.85326053720], [0.004, 3.85651603357, 26513.81191808820], [0.003, 3.76311835707, 77.75054398390], [0.004, 0.76897521016, 23384.28698689860], [0.003, 4.58555781046, 57503.28239153120], [0.004, 3.82967402925, 104454.70534051539], [0.003, 2.47448927310, 77956.15180375299], [0.004, 4.93160467297, 391318.54712361295], [0.004, 1.56118199279, 1055.44977692610], [0.004, 0.77257538538, 79994.83177765518], [0.005, 3.11675458540, 26149.62911631439], [0.003, 4.05641745083, 104248.51979207818], [0.004, 2.97133561512, 30110.16567353840], [0.004, 5.60420829330, 156520.30530244438], [0.004, 5.59378669038, 51315.49635439559], [0.003, 5.33733887891, 52309.91533273340], [0.003, 5.47155908699, 149846.19399604559], [0.003, 0.19039417498, 50290.90511973100], [0.003, 0.55626990901, 130005.80396999417], [0.004, 1.22491945176, 25927.49577218939], [0.004, 1.83119228357, 132028.58860315479], [0.004, 3.78910193450, 25970.58327335399], [0.004, 4.12310730501, 33856.26969826880], [0.004, 3.29497466474, 208276.62694171758], [0.003, 1.23800163682, 193937.98608932379], [0.004, 3.81093761011, 49424.25868345679], [0.004, 6.17742034131, 76991.02839909539], [0.003, 2.37855052298, 25459.05155552409], [0.003, 0.06662548789, 54824.26110862140], [0.003, 0.00882668027, 78571.26704569219], [0.004, 3.50355655289, 33480.35754365900], [0.004, 1.42998120813, 23446.56186310200], [0.004, 4.57967744099, 52213.93931878620], [0.004, 4.30793307856, 2538.24850425360], [0.004, 2.64175466237, 80596.90581759460], [0.004, 2.23067570586, 104819.57755665119], [0.004, 2.10867686930, 27331.39074325260], [0.003, 3.74321552731, 28471.09615635040], [0.003, 5.35951703976, 233681.74972207437], [0.004, 1.44726666359, 25907.82601128960], [0.003, 0.77055249403, 23389.45169419700], [0.004, 5.53731910534, 52098.05573916449], [0.004, 2.71065844730, 107679.74822257696], [0.003, 4.85884222947, 1063.31408345230], [0.003, 6.10322230645, 48091.81777644400], [0.003, 0.57378510632, 154194.22245657316], [0.003, 4.65504051632, 25896.45487546260], [0.003, 2.07685199898, 3.93215326310], [0.004, 4.67601599622, 18073.70493865020], [0.003, 4.62237776277, 21716.02677480000], [0.003, 2.40811934972, 76998.14194609619], [0.004, 1.45941637429, 1073.60902419080], [0.003, 4.06965227350, 32808.61712091560], [0.003, 3.54974279869, 23401.18104703300], [0.003, 5.94935193305, 6751.04084034580], [0.003, 4.32590129932, 52400.15107885030], [0.003, 1.93788940079, 45455.09230380700], [0.003, 6.08303870194, 53399.62412392700], [0.003, 4.45999574391, 127098.90328117118], [0.003, 5.45176028820, 26061.60482177439], [0.003, 2.26429696537, 27047.02600153180], [0.004, 1.93735592711, 26603.36701266720], [0.003, 2.94612910423, 27039.97976483379], [0.004, 3.64314833794, 860.30992875280], [0.004, 2.04162116492, 27623.87988454360], [0.004, 1.02413610685, 25991.92391435639], [0.004, 3.72190941745, 51257.87599716660], [0.003, 0.83533616968, 78262.22495201428], [0.004, 5.84174581609, 25650.25925043430], [0.003, 3.86698088130, 56777.75640211140], [0.004, 0.94091162922, 23735.03698780239], [0.003, 2.87479269049, 159855.55450572536], [0.004, 2.92372103776, 104358.24112519680], [0.003, 5.50683793531, 25928.60140678200], [0.003, 1.50282981980, 4371.87636677420], [0.003, 2.10941795435, 60170.33472517260], [0.003, 1.71064218785, 170068.84005193636], [0.003, 1.97431548371, 104426.39416486409], [0.003, 2.96711706073, 25984.12095299360], [0.003, 1.86795145608, 126067.63934109679], [0.003, 4.74630310296, 54879.42243782400], [0.004, 3.71365034796, 29580.47470844380], [0.003, 4.20767161544, 128843.32926558638], [0.003, 0.91166163253, 76468.45098100159], [0.003, 6.20945940475, 50160.82461135059], [0.003, 6.10137777265, 52164.76058288449], [0.003, 0.31852065143, 28632.57577846660], [0.003, 2.88816579373, 27360.58416720139], [0.003, 5.29083364884, 2751.54759969160], [0.003, 0.87901414893, 1699.27921650320], [0.003, 0.12942378280, 203375.74902421076], [0.003, 1.88640533644, 27353.47062020059], [0.003, 3.77660990144, 24787.07632336920], [0.003, 5.26339958526, 289185.69166150293], [0.003, 1.34477523795, 1169.58825140860], [0.003, 0.07928565452, 104241.40624507738], [0.003, 4.47916732925, 38634.38508065720], [0.004, 1.37420794262, 128857.55635958798], [0.003, 2.08343776186, 50476.52706664519], [0.003, 4.23656246406, 76358.24465978218], [0.003, 5.54498269246, 61921.12683900499], [0.003, 3.80268685478, 25384.26995695679], [0.003, 5.22182880098, 3462.24470586520], [0.003, 0.61479556097, 171292.65789271498], [0.003, 3.12135348664, 162810.49469943656], [0.003, 4.22351187737, 67608.75720795698], [0.003, 5.30037747699, 51554.06248230919], [0.003, 4.58024970278, 34102.10134449819], [0.003, 2.07639441349, 24072.23205541439], [0.003, 4.65503825059, 104874.18998439058], [0.003, 4.53866780815, 28908.73428570040], [0.003, 1.00191312140, 155460.92337225520], [0.003, 2.05553254051, 176332.24614102798], [0.003, 3.94870291510, 155475.15046625677], [0.003, 1.43273740893, 24719.24288872919], [0.003, 0.23823986548, 24510.55959912640], [0.003, 5.21326346293, 1639.06951718800], [0.003, 2.53461972944, 51861.62010327879], [0.003, 4.13978656372, 33917.99567300899], [0.003, 4.34295741397, 16964.32638655680], [0.003, 0.28015371448, 169093.57054942797], [0.003, 2.49492450438, 636.99627202420], [0.003, 4.20183911478, 149642.26895951436], [0.003, 0.73100534966, 35679.44488694599], [0.003, 1.18977971170, 143164.96914264598], [0.003, 1.17691552034, 52145.47942214399], [0.003, 4.94963823249, 49637.55777889479], [0.003, 3.00732745961, 24705.01579472759], [0.003, 5.76323456196, 49976.71893986139], [0.003, 4.83245208446, 156523.53751408719], [0.002, 3.69719041336, 24616.15011451060], [0.003, 0.18439316147, 78597.56536549199], [0.003, 4.98373933018, 102129.75593169978], [0.003, 0.02228487734, 1.48447270830], [0.003, 4.06250318984, 97466.46267636596], [0.003, 2.65726234287, 13705.85711308060], [0.002, 0.12883868680, 149756.70824819960], [0.003, 2.82299563379, 53132.09543911899], [0.003, 5.99061509510, 29864.33402730900], [0.003, 3.93018711070, 17098.43543614181], [0.002, 4.22698039366, 10681.25053656540], [0.002, 1.31889013785, 25572.43927048119], [0.002, 3.49816744164, 51092.72605085480], [0.003, 1.52361691660, 78265.19389743089], [0.003, 0.52188463522, 52277.76880141400], [0.003, 3.80600862869, 25124.50043860279], [0.003, 6.14366757538, 48153.54375118419], [0.002, 0.58190501461, 27573.88326263939], [0.003, 5.63901497713, 106470.37642667518], [0.002, 3.36639066096, 42430.48572729180], [0.003, 3.08628517069, 4083.98850670440], [0.002, 6.13024035669, 104035.22069664019], [0.003, 1.81280963372, 104401.60918820098], [0.003, 3.34404708133, 130020.03106399579], [0.002, 1.22333771717, 76094.94894243999], [0.002, 0.63542334090, 1485.29070670320], [0.003, 5.24568241255, 6885.14988993081], [0.003, 2.46305012048, 133882.09065283637], [0.002, 0.84094631125, 163766.09444104519], [0.003, 2.12660879166, 42790.96527507320], [0.002, 2.98805690719, 26235.98186600050], [0.003, 3.26197855217, 156531.30018480320], [0.002, 4.50734435605, 25248.93385382380], [0.002, 4.32859791317, 1685.05212250160], [0.002, 5.62335584014, 28213.78054895339], [0.002, 3.87492323552, 199599.31813847594], [0.002, 2.60597304148, 26713.57333388659], [0.003, 4.15733644316, 51688.17153189420], [0.003, 4.33101389874, 220025.88923089797], [0.002, 4.46567523081, 31127.49138988719], [0.002, 3.66265576771, 26397.18146422999], [0.002, 4.68312774052, 49850.85687433279], [0.002, 4.51215350981, 52812.80255517260], [0.003, 3.56621882535, 154408.65498906677], [0.002, 3.95708432187, 1574.84580128220], [0.002, 2.41940194318, 104668.00443595338], [0.003, 0.24921211552, 25778.62481891839], [0.002, 3.18370791629, 207114.15223730978], [0.002, 4.17768592199, 51734.98099827079], [0.002, 1.74283332135, 76532.58707178998], [0.002, 1.36339547692, 6044.22858137540], [0.002, 2.82219230315, 63786.35824152260], [0.002, 5.27165023098, 75085.56363415498], [0.002, 5.76735720320, 25661.99436506020], [0.002, 5.24666183170, 24734.15439655740], [0.002, 5.31625926462, 24998.19435038059], [0.002, 0.17868115875, 177287.84588263658], [0.003, 5.47127542511, 27388.72995977919], [0.002, 2.48055036253, 25543.98508247800], [0.002, 0.16253031708, 23113.29318696320], [0.003, 1.68453793975, 2703.61615467560], [0.002, 1.17069889009, 53551.58008299420], [0.003, 3.06893058902, 230239.17477710897], [0.003, 5.00145362139, 180496.55813064100], [0.002, 1.90098213386, 20272.79228193720], [0.003, 5.06877735444, 440.82528487760], [0.002, 1.33626564472, 196156.74319351057], [0.002, 4.50940380454, 65538.25598994759], [0.002, 4.55891488212, 2324.94940881560], [0.002, 0.21025125051, 18227.48374913500], [0.002, 0.58359043648, 156377.85565231059], [0.002, 4.57189351312, 26926.87242932459], [0.002, 3.79747475767, 65851.33653522459], [0.002, 0.30139015500, 50951.98844236979], [0.002, 3.94570007959, 225687.22128005017], [0.002, 0.99415397716, 2064.97829370200], [0.002, 3.49827019018, 78905.12298646157], [0.002, 4.16512398869, 24864.08530079559], [0.002, 0.47605198546, 107692.22499299659], [0.002, 0.02213914405, 197092.67317421938], [0.002, 0.35795159068, 104301.61594439259], [0.002, 2.54426644231, 249268.47945736776], [0.002, 0.35872697789, 25462.23294926180], [0.002, 0.03956368481, 24189.55192363460], [0.002, 2.00682967230, 28786.35458895140], [0.002, 1.64612572499, 40738.70289615879], [0.002, 1.77509184801, 22595.33157470459], [0.002, 1.93881159123, 78697.42116259939], [0.002, 1.06567957268, 21562.24796431520], [0.003, 4.58782698256, 156954.01704032117], [0.002, 0.84740706727, 24494.89809302729], [0.002, 5.98697403459, 283524.35961235070], [0.002, 4.02135788869, 26238.95081141709], [0.002, 3.98649649262, 24808.10856894620], [0.002, 3.06252327958, 57369.17334194619], [0.002, 6.10258403438, 78115.63070029629], [0.002, 0.19431714321, 55484.27217852879], [0.002, 4.26819419359, 90989.16285949759], [0.002, 2.94941610280, 22065.64060961000], [0.002, 4.53722544295, 52355.88341343300], [0.002, 1.97399498955, 430.53034413910], [0.002, 1.99872081555, 24932.54198416719], [0.002, 0.37032643194, 26500.27423844859], [0.002, 3.83480132336, 307.55762096960], [0.002, 5.81356382744, 51538.81001112419], [0.002, 6.20773606719, 49.99662190420], [0.002, 2.40589345998, 77929.85348395319], [0.002, 4.51719783127, 21067.98465416099], [0.002, 2.06311358499, 23233.26276766400], [0.002, 0.29430089395, 24765.22549404280], [0.002, 2.21513587213, 25675.53204469980], [0.002, 2.29291278322, 27410.58078910560], [0.002, 2.39356701559, 242985.40360737636], [0.002, 4.28957020884, 71378.55953479178], [0.002, 5.41199778568, 23704.71012679799], [0.002, 0.54252133289, 3.88133535800], [0.002, 5.88236623932, 52072.02409456780], [0.002, 5.78749542412, 78373.91574594198], [0.002, 5.69226787602, 51040.12941125520], [0.002, 4.42185841709, 93696.66034953119], [0.002, 5.15491529148, 78112.66175487968], [0.002, 2.30493903824, 27883.16158529519], [0.002, 5.53948896377, 87253.17713015496], [0.002, 4.75957265478, 52336.21365253320], [0.002, 6.08199781417, 18043.37807764579], [0.002, 0.73324052336, 25757.28417791599], [0.002, 0.91928644358, 52186.85198341230], [0.002, 3.22142261212, 104771.09721017198], [0.002, 2.01671301400, 46564.47085590040], [0.002, 4.39545799671, 41520.85406638280], [0.002, 2.52858429504, 26140.99929388859], [0.002, 2.07561943546, 53654.67285721279], [0.002, 0.08977124652, 25135.82651831460], [0.002, 1.67350036401, 66826.60603773296], [0.002, 4.57268426145, 158116.49174472899], [0.002, 2.84194927894, 78249.48233072099], [0.002, 3.07002924674, 23432.33476910039], [0.002, 4.11559657607, 123554.36581794015], [0.002, 0.05687800902, 26034.80698925980], [0.002, 4.28354458896, 24484.60315228879], [0.002, 3.24222429199, 21509.65132471559], [0.002, 2.52315832958, 210614.42461581077], [0.002, 4.44247371827, 148532.89040742096], [0.002, 0.11737800376, 146505.58156934578], [0.002, 2.41371362390, 54862.52837768960], [0.002, 4.66022680664, 247223.17092456558], [0.002, 3.79260774499, 3308.46589538040], [0.002, 5.83454304626, 2974.60995461100], [0.002, 5.37878500160, 77622.29586298359], [0.002, 1.63153524958, 99979.73619952259], [0.002, 5.18613735503, 50600.96048186620], [0.002, 2.55420547959, 76064.62208143558], [0.002, 4.05996888958, 24502.76239955349], [0.002, 2.47809526116, 179966.86716554637], [0.002, 1.25528265056, 50912.64892057020], [0.002, 0.75306774592, 235746.72801577637], [0.002, 2.97464643769, 31219.54422563180], [0.001, 0.17722772219, 158438.61833266239], [0.002, 4.94589808424, 168959.46149984296], [0.002, 0.63110575282, 415.55249061210], [0.001, 0.77799418557, 299398.97720771394], [0.002, 5.97867896248, 164721.69418265377], [0.002, 5.62955025847, 21819.80896338059], [0.001, 4.93638931294, 27993.36790651460], [0.002, 6.22578827437, 74935.57376844239], [0.002, 1.03965665113, 1802.37199072180], [0.001, 5.61994219678, 50690.51557644519], [0.002, 5.02281046549, 422.66603761290], [0.001, 3.57619837497, 209658.82487420217], [0.002, 0.11249539090, 38469.94917006779], [0.002, 0.62470424533, 51745.27593900929], [0.001, 0.71806518278, 28928.40404660019], [0.002, 3.91669753023, 76352.50994150538], [0.002, 3.05277164813, 225.82926841020], [0.001, 4.33602746737, 4601.95011896300], ], # R1 [ [217347.739, 4.65617158663, 26087.90314157420], [44141.826, 1.42385543975, 52175.80628314840], [10094.479, 4.47466326316, 78263.70942472259], [2432.804, 1.24226083435, 104351.61256629678], [1624.367, 0.00000000000, 0.00000000000], [603.996, 4.29303116561, 130439.51570787099], [152.851, 1.06060779810, 156527.41884944518], [39.202, 4.11136751416, 182615.32199101939], [17.760, 4.54424653085, 27197.28169366760], [17.999, 4.71193725810, 24978.52458948080], [10.154, 0.87893548494, 208703.22513259359], [8.086, 3.00540854890, 25028.52121138500], [4.444, 2.13639058123, 20426.57109242200], [4.393, 1.48074475165, 51066.42773105500], [3.510, 3.21171223697, 1059.38193018920], [3.133, 5.23846336855, 21535.94964451540], [2.650, 3.92968881423, 234791.12827416777], [2.498, 2.02623950395, 24498.83024629040], [2.011, 1.23911360588, 53285.18483524180], [1.963, 4.04524902962, 5661.33204915220], [1.546, 2.61849590442, 26617.59410666880], [1.542, 2.35659537465, 27043.50288318280], [1.417, 1.37876323533, 1109.37855209340], [1.295, 5.19094850935, 46514.47423399620], [1.241, 0.21246226135, 11322.66409830440], [1.090, 6.23733263925, 27147.28507176339], [1.271, 0.56437938715, 25132.30339996560], [1.120, 0.86374628388, 57837.13833230060], [1.005, 3.28272284427, 37410.56723987860], [1.177, 4.53194022227, 77154.33087262919], [0.841, 5.96261035419, 14765.23904326980], [0.935, 2.37277497611, 25661.30495069820], [0.742, 0.77751594919, 32858.61374281979], [0.736, 4.06885296570, 1589.07289528380], [0.712, 2.70884051645, 16983.99614745660], [0.863, 5.55308682281, 25558.21217647960], [0.707, 0.92992556568, 30639.85663863300], [0.696, 0.69734796212, 260879.03141574195], [0.678, 2.02193885930, 26068.23338067440], [0.608, 0.85708468483, 4551.95349705880], [0.546, 5.38138962861, 26091.78447693220], [0.608, 3.65993973133, 25448.00585526019], [0.597, 4.64867954048, 26080.78959457339], [0.572, 3.50125649521, 10213.28554621100], [0.515, 4.83662922562, 50586.73338786459], [0.532, 5.21855381213, 22645.32819660879], [0.572, 0.62751016416, 13521.75144159140], [0.516, 3.89421000089, 83925.04147387479], [0.507, 5.55466020276, 12566.15169998280], [0.606, 4.50215566301, 28306.66024576099], [0.533, 0.93587795381, 26107.57290247399], [0.435, 5.79043985706, 43071.89928903080], [0.436, 5.86659160961, 25035.63475838580], [0.429, 0.26260280461, 36301.18868778519], [0.472, 6.00507778421, 77204.32749453338], [0.443, 3.86758570847, 26084.02180621620], [0.487, 4.23950195756, 26095.01668857500], [0.406, 5.60324652352, 52705.49724824299], [0.523, 0.06439941262, 25021.40766438420], [0.379, 1.95647626585, 72602.37737557039], [0.390, 3.81996185881, 426.59819087600], [0.418, 2.77521418660, 41962.52073693740], [0.453, 0.72803137250, 529.69096509460], [0.358, 6.00165335616, 33326.57873317420], [0.347, 1.39524259509, 23969.13928119580], [0.340, 0.24111380317, 26301.20223701220], [0.325, 4.78747749132, 23869.14603738740], [0.290, 3.04044859601, 53235.18821333759], [0.326, 1.30033833957, 103242.23401420339], [0.316, 2.22791434675, 19317.19254032860], [0.264, 3.93160763696, 6770.71060124560], [0.332, 3.59235758173, 51220.20654153979], [0.223, 2.76528831516, 103292.23063610759], [0.215, 3.97996009773, 56727.75978020720], [0.235, 2.24050503260, 25874.60404613620], [0.215, 6.16660008496, 51646.11531805379], [0.208, 2.74551899929, 40853.14218484400], [0.204, 3.44654782597, 9103.90699411760], [0.197, 0.80026289238, 27676.97603685800], [0.205, 3.20844012088, 18849.22754997420], [0.196, 1.99924288764, 48733.23133818299], [0.218, 2.11865566044, 73711.75592766379], [0.189, 0.65681038131, 110012.94461544899], [0.207, 5.89082708705, 31749.23519072640], [0.184, 3.74837387583, 286966.93455731618], [0.174, 5.81264188702, 68050.42387851159], [0.163, 4.00380715262, 79373.08797681599], [0.152, 5.07389967152, 52156.13652224860], [0.151, 2.83369443311, 955.59974160860], [0.151, 0.40953650210, 26514.50133245020], [0.147, 2.32191248197, 38654.05484155699], [0.154, 3.26437373895, 38519.94579197200], [0.185, 0.98966099528, 29530.47808653960], [0.150, 3.69230644689, 65697.55772473979], [0.132, 2.71837382155, 77734.01845962799], [0.140, 2.05736044462, 6283.07584999140], [0.122, 3.31361750281, 62389.09182935939], [0.123, 2.07840148125, 25668.41849769900], [0.118, 0.51913709271, 51535.90899683439], [0.121, 2.15433834534, 52179.68761850640], [0.151, 2.66028539824, 25654.19140369739], [0.113, 2.33243126122, 78793.40038981718], [0.124, 3.13058661995, 51109.31080595839], [0.150, 2.60376479044, 639.89728631400], [0.123, 2.65137961558, 51123.53789995999], [0.106, 1.31393069594, 47623.85278608960], [0.112, 5.00798069297, 98690.28051714458], [0.107, 5.12738291017, 99799.65906923798], [0.123, 6.13795219131, 1066.49547719000], [0.106, 1.42997322881, 52168.69273614759], [0.104, 4.51477063494, 25234.70675982219], [0.120, 4.06567300860, 45892.73043315699], [0.092, 4.72811907093, 2118.76386037840], [0.112, 4.78983902693, 53131.40602475700], [0.096, 5.03438502363, 32370.97899156560], [0.091, 4.22099920434, 50057.04242277000], [0.091, 4.35481864546, 129330.13715577759], [0.106, 0.14583281261, 12432.04265039780], [0.084, 0.32848825294, 1052.26838318840], [0.084, 5.81442139422, 129380.13377768178], [0.093, 0.34539006564, 77308.10968311399], [0.078, 1.17633266287, 76674.63652943878], [0.107, 1.01316358023, 52182.91983014920], [0.082, 6.11445014523, 79323.09135491178], [0.085, 2.50332044483, 7238.67559160000], [0.072, 1.56170832500, 49957.04917896160], [0.076, 1.62577226881, 15874.61759536320], [0.091, 5.75408440781, 24491.71669928959], [0.092, 3.97747935513, 52195.47604404819], [0.068, 0.44378826429, 91785.46086631398], [0.078, 0.63585741399, 52171.92494779040], [0.064, 2.57311321703, 94138.32702008578], [0.065, 2.12942233842, 7.11354700080], [0.062, 3.70751240431, 136100.84775702318], [0.068, 1.18946361248, 54394.56338733519], [0.079, 3.35596277474, 52389.10537858640], [0.064, 5.09677055426, 51962.50718771040], [0.060, 6.25938912295, 24505.94379329119], [0.061, 0.73867692725, 82815.66292178139], [0.063, 1.29883580487, 2218.75710418680], [0.070, 5.28692696943, 45405.09568190280], [0.057, 1.92365363632, 20760.42703319140], [0.054, 0.89448628916, 71980.63357473118], [0.051, 4.71710385051, 105460.99111839019], [0.054, 6.22009952451, 44937.13069154840], [0.052, 3.43365769233, 25551.09862947879], [0.052, 5.77930503293, 66941.04532641819], [0.048, 0.51937745535, 313054.83769889036], [0.052, 5.71476972233, 103821.92160120218], [0.047, 3.82203240163, 53764.87917843220], [0.050, 5.76150579489, 25938.33994443960], [0.047, 5.52705163618, 77837.11123384659], [0.043, 5.84994474092, 63498.47038145279], [0.052, 2.63638299982, 18093.37469954999], [0.042, 5.39178421925, 64741.95798313119], [0.041, 1.87113963554, 125887.56221081219], [0.045, 4.04603530632, 55618.38122811380], [0.039, 3.50934954924, 52602.40447402440], [0.048, 0.72400634326, 33967.99229491319], [0.051, 6.02427997984, 13655.86049117640], [0.038, 0.09359107033, 88476.99497093359], [0.038, 1.84297739511, 78244.03966382280], [0.041, 5.74927951755, 26727.80042788820], [0.045, 5.73633413733, 44181.27784112419], [0.035, 0.81793649503, 23439.44831610119], [0.038, 5.17914668407, 23754.70674870219], [0.036, 4.81782090538, 51116.42435295920], [0.041, 2.91943000674, 26241.68195205900], [0.032, 1.91760062435, 58458.88213313979], [0.033, 1.27507180487, 131548.89425996438], [0.032, 5.01820692941, 46848.33017476560], [0.030, 3.95444605179, 26555.86813192860], [0.031, 1.17911028239, 59414.48187474840], [0.030, 0.55604674983, 3442.57494496540], [0.034, 3.55745328485, 433.71173787680], [0.033, 5.36229697065, 104881.30353139139], [0.030, 1.24209931344, 26202.34243025941], [0.033, 3.55673853222, 25440.89230825939], [0.029, 2.98847901150, 27154.39861876420], [0.035, 3.23888704617, 25455.11940226100], [0.033, 1.77322555881, 124778.18365871879], [0.028, 4.35951220773, 80482.46652890938], [0.030, 5.14555074991, 51756.32163927320], [0.029, 0.03524298861, 79219.30916633119], [0.027, 2.59555966553, 155468.03691925600], [0.027, 1.05480537311, 28421.09953444620], [0.030, 5.72087736840, 51742.09454527159], [0.029, 5.20529460359, 78267.59076008058], [0.026, 1.11551342052, 155418.04029735178], [0.030, 6.10884155937, 26011.63707029860], [0.027, 3.38666053174, 103396.01282468818], [0.025, 3.48592449926, 117873.36400788819], [0.025, 1.69043243445, 25973.46385288896], [0.026, 6.19577940400, 77197.21394753258], [0.024, 1.47972864008, 28206.66700195260], [0.023, 3.86767325148, 16066.06586147480], [0.027, 4.06858086478, 78270.82297172339], [0.022, 4.03528313026, 419.48464387520], [0.023, 3.38426107540, 58946.51688439399], [0.022, 1.33669336918, 51322.60990139639], [0.023, 2.23954141042, 103925.01437542078], [0.024, 3.65673385174, 26610.48055966799], [0.021, 4.49565014938, 78256.59587772179], [0.021, 3.69266624882, 77623.81213840858], [0.028, 5.71652736884, 77211.44104153418], [0.021, 3.97119771059, 98068.53671630539], [0.021, 5.61140929496, 120226.23016165999], [0.025, 1.73460075205, 853.19638175200], [0.024, 2.89897553229, 105410.99449648599], [0.020, 6.15988447425, 213.29909543800], [0.021, 0.42126764910, 149.56319713460], [0.020, 4.41588880947, 29416.03879785439], [0.024, 2.43220296378, 50579.61984086379], [0.020, 0.47739908961, 162188.75089859738], [0.021, 0.18110422167, 35191.81013569180], [0.019, 2.38756251160, 26037.90651966999], [0.020, 0.61997291259, 85034.42002596818], [0.018, 4.60331561584, 76044.95232053580], [0.018, 3.06180224259, 50593.84693486539], [0.022, 0.45787269756, 1596.18644228460], [0.019, 1.76795970776, 78050.41032928458], [0.019, 3.58333941723, 27140.17152476259], [0.021, 0.15585183693, 78477.00852016058], [0.018, 1.81330190957, 25565.32572348040], [0.021, 3.45385724015, 102762.53967101299], [0.022, 4.62891777236, 19406.67828817460], [0.019, 5.28998871939, 26624.70765366959], [0.016, 4.37908924360, 25131.61398560359], [0.019, 2.69598918032, 105307.21230790539], [0.018, 4.13274028026, 5327.47610838280], [0.018, 1.10819559505, 76144.94556434419], [0.018, 2.04678515653, 71492.99882347698], [0.015, 0.52406345582, 42153.96900304900], [0.018, 0.71897799959, 78283.37918562238], [0.020, 3.87105632280, 51749.20809227239], [0.014, 0.06732488000, 25984.81036735560], [0.019, 2.51337817026, 129909.82474277639], [0.018, 3.79705759661, 108903.56606335558], [0.014, 2.30467577173, 18207.81398823521], [0.014, 4.91192145857, 151975.46535238638], [0.014, 4.25365079026, 157636.79740153858], [0.014, 3.82494343251, 7880.08915333899], [0.014, 0.47442483304, 26137.89976347840], [0.015, 1.41820144369, 40565.25432477420], [0.016, 1.92985195149, 49842.60989027639], [0.016, 2.97241905198, 71025.03383312259], [0.013, 0.07086712207, 76.26607127560], [0.013, 2.19019855275, 90829.86112470538], [0.014, 1.68395491426, 6681.22485339960], [0.012, 2.16242752229, 29428.51556827400], [0.013, 0.55373605944, 79852.78232000639], [0.012, 2.10236188465, 24609.03656750980], [0.012, 3.49372354820, 64607.84893354619], [0.013, 3.16312334997, 25881.71759313700], [0.012, 0.32301447482, 78690.30761559859], [0.016, 3.67591976897, 78259.82808936459], [0.012, 0.81060544329, 81706.28436968799], [0.015, 2.57802360273, 93028.94846799239], [0.013, 3.55704873434, 339142.74084046460], [0.012, 3.14169564714, 114564.89811250778], [0.011, 4.96251639039, 84546.78527471398], [0.011, 2.93160493628, 536.80451209540], [0.011, 0.04474275203, 19804.82729158280], [0.011, 2.39391294657, 10021.83728009940], [0.011, 3.22530161123, 90695.75207512038], [0.012, 0.71785378975, 26294.08869001139], [0.011, 3.51130712506, 7994.52844202420], [0.011, 1.78813511249, 69159.80243060499], [0.010, 1.89377082198, 24925.42843716640], [0.012, 6.06775243662, 52329.58509363319], [0.012, 0.11656433296, 51543.02254383520], [0.012, 0.01462307671, 1581.95934828300], [0.010, 3.60476399042, 49527.35145767539], [0.009, 5.35498571113, 2648.45482547300], [0.010, 2.54352513591, 52815.70356946240], [0.009, 5.25498849885, 130012.91751699499], [0.010, 5.63770719377, 181555.94006083018], [0.011, 1.65385601347, 26507.38778544939], [0.011, 4.93008131424, 104331.94280539699], [0.010, 0.35445064092, 26521.61487945100], [0.010, 2.79303258728, 39743.76363275060], [0.009, 0.71144667758, 25764.39772491679], [0.008, 4.22951187793, 181505.94343892598], [0.008, 0.17514303190, 129483.91596626239], [0.010, 1.16786157884, 25934.12433108940], [0.010, 2.50335300453, 103299.34418310839], [0.009, 3.18692590406, 39629.32434406539], [0.010, 3.98242351264, 522.57741809380], [0.011, 0.23158217376, 51639.00177105299], [0.009, 0.30008658313, 27999.10262479140], [0.011, 4.84801040284, 150866.08680029298], [0.011, 5.94731028211, 38813.35657634920], [0.008, 4.66199260294, 26094.53170047421], [0.008, 0.71995165086, 52643.77127350280], [0.008, 3.31825277790, 24395.73747207180], [0.008, 2.52932369592, 26190.99591579279], [0.008, 5.11541081184, 25619.93815121980], [0.008, 1.18625312267, 25867.49049913539], [0.008, 0.31593558687, 51528.79544983359], [0.010, 2.12019897039, 130969.20667296558], [0.008, 0.24131547257, 143961.26714946239], [0.007, 5.90865595918, 23976.25282819660], [0.008, 4.88221803127, 22759.76748529401], [0.007, 3.17202081415, 632.78373931320], [0.008, 2.40875907837, 146314.13330323418], [0.007, 6.03640433343, 53242.30176033840], [0.007, 0.86406939215, 104358.72611329758], [0.007, 3.45761762182, 26237.46633870879], [0.009, 3.30628597530, 12725.45343477500], [0.007, 0.74174993099, 124156.43985787958], [0.008, 5.62600154280, 131395.11544947958], [0.007, 2.52679818243, 77829.99768684579], [0.008, 1.93255904016, 77844.22478084739], [0.007, 3.69439677930, 85502.38501632259], [0.007, 5.14299105203, 35472.74414964940], [0.008, 1.52116219771, 26081.27458267419], [0.008, 3.50246944455, 25863.55834587229], [0.008, 5.17598738878, 23962.02573419499], [0.009, 2.01720755803, 104355.49390165479], [0.007, 0.57777174711, 86143.79857806159], [0.007, 2.03534300720, 100909.03762133139], [0.006, 3.30402834266, 104564.91166173479], [0.006, 5.26635186541, 50696.93970908399], [0.006, 3.60993601694, 27684.08958385880], [0.008, 5.97157930225, 131498.89763806018], [0.006, 4.43204136420, 54294.57014352679], [0.006, 4.16183734880, 54509.00267602040], [0.007, 4.35729742194, 52290.24557183361], [0.007, 4.88364528875, 26941.09952332620], [0.007, 3.84735933689, 34282.17847478280], [0.006, 0.71889591582, 89586.37352302698], [0.006, 4.77410201490, 104138.31347085879], [0.006, 5.81016662275, 70269.18098269838], [0.007, 3.59164938122, 188276.65404017159], [0.006, 1.42397911026, 102132.85546210999], [0.006, 5.15043168056, 97580.90196505119], [0.008, 2.67404385604, 647.01083331480], [0.005, 4.58227258685, 25977.69682035479], [0.007, 6.18437842544, 128850.44281258718], [0.005, 0.05338946228, 13541.42120249119], [0.006, 5.55589010148, 155997.72788435058], [0.005, 5.54731935938, 96357.08412427259], [0.006, 0.36201698821, 26308.31578401300], [0.005, 3.05584811656, 103285.11708910679], [0.005, 4.80319811501, 51013.33157874059], [0.006, 3.04691542636, 13362.44970679920], [0.005, 5.59905054438, 76667.52298243798], [0.005, 3.15313951574, 26164.16921284980], [0.006, 1.15194666645, 27311.72098235281], [0.005, 6.16463589751, 76681.75007643958], [0.005, 2.77667883666, 224.34479570190], [0.005, 4.27775147717, 14477.35118320000], [0.005, 5.50743820134, 52125.80966124419], [0.006, 0.68838699976, 26720.68688088739], [0.005, 4.44878671847, 25227.59321282139], [0.005, 4.88707969684, 52061.36699446317], [0.005, 3.66186576821, 25241.82030682300], [0.005, 1.76383923429, 178063.36849396059], [0.005, 3.09083817171, 115674.27666460119], [0.005, 1.73277038612, 956.28915597060], [0.006, 0.59128664983, 134991.46920492980], [0.005, 1.39435703220, 104344.49901929598], [0.005, 5.66016557162, 45290.65639321759], [0.005, 2.69362119172, 50064.15596977079], [0.005, 4.11526724305, 209812.60368468694], [0.006, 3.72633598860, 26162.68474014150], [0.004, 1.01205356829, 183724.70054311279], [0.005, 2.02484630372, 52712.61079524379], [0.005, 4.47460304849, 77410.51304297059], [0.005, 0.42971081835, 52698.38370124219], [0.005, 1.56442459236, 11610.55195837420], [0.004, 0.62582613574, 22747.29071487440], [0.004, 1.51592730997, 66653.15746634839], [0.005, 6.10277243405, 97112.93697469679], [0.004, 1.00562353481, 51219.51712717779], [0.004, 0.31906550066, 48835.19385644859], [0.005, 4.98644771495, 51653.22886505459], [0.005, 4.34429010560, 32132.13172294960], [0.004, 2.92125579020, 78417.48823520739], [0.004, 5.99601868842, 121335.60871375339], [0.005, 3.13172791066, 61279.71327726600], [0.005, 2.13824746365, 39609.65458316560], [0.005, 5.68604378667, 119116.85160956658], [0.004, 2.73202591375, 1692.16566950240], [0.004, 5.78251523942, 26734.91397488900], [0.005, 0.77777359038, 103711.71527998279], [0.005, 0.91021434517, 71582.48457132299], [0.004, 3.03035393128, 52072.71350892979], [0.004, 0.45156085724, 31415.37924995700], [0.004, 3.93028686443, 104371.28232719658], [0.004, 4.54919541216, 26198.10946279360], [0.004, 2.66986199617, 24176.70365835700], [0.004, 3.50110688244, 74821.13447975718], [0.004, 5.75284691398, 25138.72753260440], [0.004, 5.44367911308, 72936.23331633979], [0.004, 1.60493978664, 176953.98994186718], [0.004, 1.93554854399, 50049.92887576919], [0.003, 3.90053130991, 107794.18751126219], [0.003, 5.45429683058, 44295.71712980940], [0.004, 0.60054840458, 104347.73123093879], [0.004, 0.88305624488, 60055.89543648739], [0.004, 6.20681068925, 140652.80125408198], [0.003, 1.44572212087, 130226.21661243298], [0.004, 4.37750242770, 32769.12799497380], [0.004, 1.75525459469, 110634.68841628819], [0.003, 0.66980197410, 26222.01219115920], [0.004, 2.20364417845, 182085.63102592478], [0.003, 5.60615263810, 129387.24732468258], [0.003, 0.96551693568, 207593.84658050019], [0.004, 4.51472339809, 52169.17772424839], [0.004, 0.86790293541, 24822.33566294780], [0.003, 2.05745330337, 156100.82065856917], [0.004, 0.27139822027, 214364.55718174577], [0.003, 3.63958954831, 102232.84870591838], [0.003, 3.33824382272, 170049.17029103660], [0.003, 6.15959485239, 12546.48193908300], [0.003, 0.54712514364, 1911.19948321720], [0.003, 5.53215106225, 323.50541665740], [0.003, 5.78740917576, 27780.06881107659], [0.004, 3.60062257669, 105940.68546158058], [0.003, 5.23668974633, 17893.62780836560], [0.003, 3.21536557308, 155571.81910783658], [0.004, 3.78439308193, 68241.87214462319], [0.004, 0.35026324282, 53228.07466633679], [0.003, 1.39462627029, 110.20632121940], [0.003, 2.98585442540, 102769.65321801379], [0.003, 5.54914760118, 52101.02468458109], [0.004, 5.31358771393, 116917.76426627958], [0.004, 5.02170245911, 130443.39704322898], [0.003, 3.39708771017, 104778.21075717278], [0.003, 1.35333080979, 52182.43484204840], [0.003, 3.53872943291, 28791.51929624980], [0.003, 0.32151031474, 75615.25459924959], [0.003, 2.81736551277, 78187.44335344699], [0.003, 3.41370464721, 77616.69859140778], [0.003, 2.72102083462, 157586.80077963436], [0.004, 0.37990458940, 365230.64398203877], [0.003, 5.29398694468, 183570.92173262799], [0.003, 0.53039476474, 35077.37084700659], [0.003, 0.96990585284, 25780.34552060460], [0.004, 5.03799187214, 103932.12792242158], [0.003, 0.57063116288, 52250.58788171570], [0.003, 4.90694398172, 27044.19229754480], [0.003, 5.64342324025, 78903.60671103658], [0.003, 3.90829945174, 130446.62925487179], [0.004, 5.39121442451, 52022.02747266360], [0.003, 5.38325956945, 172402.03644480839], [0.003, 3.62725946038, 161079.37234650398], [0.003, 0.02159890719, 130652.81480330898], [0.003, 5.26052772975, 55516.41870984820], [0.003, 1.45533607551, 77101.23472031478], [0.003, 2.45621582046, 207643.84320240439], [0.003, 3.04264756378, 74923.09699802278], [0.003, 3.27797530359, 27669.86248985719], [0.004, 6.20795181771, 3340.61242669980], [0.003, 2.86818821459, 79330.20490191258], [0.003, 5.42245453158, 36109.74042167360], [0.003, 1.11238018002, 2125.87740737920], [0.003, 4.70325749301, 52595.29092702359], [0.003, 4.14290639481, 25446.48957983520], [0.003, 4.11874155864, 1478.86657406440], [0.003, 4.41727880469, 128220.75860368418], [0.003, 5.84301330450, 65831.66677432480], [0.003, 0.63458746349, 112231.70171963578], [0.003, 5.20358469660, 157057.10981453978], [0.003, 4.22446997246, 53399.62412392700], [0.003, 6.08145059717, 26724.89941359840], [0.003, 3.32246989691, 111122.32316754239], [0.003, 1.11208497752, 78378.14871340781], [0.003, 1.18205388535, 80382.47328510099], [0.003, 3.98183946807, 25352.02662804239], [0.003, 5.17537238750, 225687.22128005017], [0.002, 3.19970010923, 64901.25971792339], [0.003, 5.90368046078, 104505.39137678158], [0.003, 2.15712281571, 28736.35796704720], [0.002, 0.27988699718, 52325.36948028299], [0.002, 1.09392137734, 24998.19435038059], [0.003, 1.72654636472, 130419.84594697120], [0.003, 6.24477199702, 51969.62073471119], [0.003, 3.27154613105, 77630.92568540938], [0.002, 1.80684819652, 123668.80510662538], [0.002, 3.75304905922, 150244.34299945380], [0.003, 2.04107819596, 76784.84285065818], [0.003, 4.07589828594, 97670.38771289718], [0.002, 3.43439078149, 52609.51802102519], [0.002, 0.51530246334, 133882.09065283637], [0.003, 4.75031746198, 204151.27163553477], [0.002, 5.57618391474, 24292.64469785319], [0.002, 2.22207407093, 78213.71280281838], [0.002, 6.08590562625, 39450.35284837340], [0.003, 4.42541702442, 51955.39364070959], [0.003, 5.48323931966, 220.41264243880], [0.003, 5.24728665819, 26709.64694241340], [0.003, 4.52126286883, 20043.67456019880], [0.002, 1.69429787369, 53029.00266490040], [0.003, 0.98781948776, 80596.90581759460], [0.002, 2.72291536990, 23866.04650697719], [0.002, 2.23117481869, 26402.08932144380], [0.003, 2.32561622864, 145204.75475114078], [0.003, 3.55406019317, 52225.80290505260], [0.003, 0.82939608505, 87253.17713015496], [0.003, 3.59850686303, 52396.21892558720], [0.002, 0.25549281668, 22909.75735100660], [0.002, 4.18932113589, 81591.84508100279], [0.002, 5.58984236569, 104202.04936916218], [0.002, 1.59325428260, 206.18554843720], [0.002, 2.33240745085, 157483.01859105378], [0.002, 3.78499822852, 78731.67441507700], [0.003, 1.73139148586, 77741.13200662879], [0.002, 1.98761216006, 102018.41617342478], [0.002, 3.82447809654, 1162.47470440780], [0.002, 3.73613869026, 24601.92302050899], [0.002, 4.87002033008, 51859.41441349179], [0.002, 0.10623356446, 111590.28815789679], [0.002, 4.43911582586, 78270.33798362259], [0.002, 2.47821765975, 78114.14622758799], [0.002, 5.83346201740, 181026.24909573558], [0.002, 2.27341561267, 25953.79409198919], [0.002, 2.73852323809, 123200.84011627098], [0.002, 2.35063735347, 78109.93061423779], [0.002, 0.45168929332, 2111.65031337760], [0.002, 4.46926491505, 25450.90686955000], [0.002, 3.97278244291, 52808.59002246159], [0.002, 0.58667782465, 128320.75184749259], [0.002, 3.05065649587, 102755.42612401219], [0.002, 1.13486054740, 52492.19815280499], [0.002, 4.64642529286, 60370.08161635699], [0.002, 3.68035435205, 52309.91533273340], [0.002, 5.93910800197, 78160.61665050399], [0.002, 1.26706232000, 58857.03113654799], [0.002, 5.09637370849, 26823.77965510599], [0.002, 3.88808196008, 16703.06213349900], [0.002, 0.00715741623, 130866.11389874699], [0.002, 3.63338095338, 51852.30086649099], [0.002, 5.67927933196, 103917.90082841998], [0.002, 1.35964203538, 3328.13565628019], [0.002, 6.13531665590, 129373.02023068098], [0.002, 3.74140255139, 52381.99183158559], [0.002, 0.37783717379, 53771.99272543299], [0.002, 0.70779949763, 26667.59072857300], [0.002, 2.05372686428, 70383.62027138360], [0.002, 6.06999395703, 23919.14265929160], [0.002, 1.22493486348, 103498.41618454478], [0.002, 4.00058813480, 129799.61842155698], [0.002, 1.62085169147, 78149.27013603736], [0.002, 1.81898501228, 25771.51127191760], [0.002, 6.22451796390, 52252.07235442399], [0.002, 0.20849484282, 25754.04720080480], [0.002, 2.38916713246, 51226.63067417859], [0.002, 4.34697979051, 26404.29501123080], [0.002, 2.87638496001, 167850.08294774959], [0.002, 4.01638193690, 51868.24866217880], [0.002, 3.38565068956, 77726.90491262719], [0.002, 5.73512271075, 189853.99758261937], [0.002, 3.93444553575, 50910.23880452200], [0.002, 3.62039658007, 6885.14988993081], [0.002, 1.76492939350, 92741.06060792258], [0.002, 2.58190149030, 154938.34595416137], [0.002, 5.37279792857, 52278.89905736699], [0.002, 3.37039086197, 2221.85663459700], [0.002, 6.07737780217, 94329.77528619739], [0.002, 5.16106622649, 26729.31670331319], [0.002, 1.58212922198, 26013.12154300690], [0.002, 5.77714525422, 25600.26839032000], [0.002, 1.88481234244, 27177.61193276780], [0.002, 5.68695965343, 50264.60679993120], [0.002, 6.07601531670, 141762.17980617538], [0.002, 4.33545610317, 8194.27533320860], [0.002, 1.10189365852, 1223.81784077861], [0.002, 1.68048369897, 27250.37784598199], [0.002, 5.32044002117, 151199.94274106238], [0.002, 1.33411828477, 78257.08086582259], [0.002, 5.40842531044, 95247.70557217918], [0.002, 4.55349965747, 37698.45509994840], [0.002, 2.71889214634, 173511.41499690176], [0.002, 1.95076646341, 143005.66740785379], [0.002, 2.00346690661, 26073.67604757259], [0.002, 1.78781584986, 48847.67062686820], [0.002, 5.89586766332, 26312.24793727610], [0.002, 1.99160321093, 26189.86565983980], [0.002, 0.40598906242, 25773.71696170459], [0.002, 3.36946627953, 26575.53789282839], [0.002, 4.77845331095, 136722.59155786238], [0.002, 1.11920130054, 51315.49635439559], [0.002, 4.99966961564, 78800.51393681798], [0.002, 2.50164995664, 19202.75325164339], [0.002, 5.31192385841, 23384.28698689860], [0.002, 2.93563622378, 137678.19129947099], [0.002, 5.00974264854, 182188.72380014337], [0.002, 2.82066370220, 118828.96374949679], [0.002, 1.23355180586, 52286.01260436779], [0.002, 0.27866926000, 24356.78078864160], [0.002, 2.19163720361, 26395.46076254379], [0.002, 2.41579406356, 147423.51185532758], [0.002, 1.80661945912, 860.30992875280], [0.001, 3.75687703582, 34082.43158359840], [0.001, 5.85918351804, 163766.09444104519], [0.001, 4.84627694564, 27170.98337386779], [0.002, 3.12958128871, 195047.36464141717], [0.002, 0.59313712363, 74.78159856730], [0.002, 4.60111717878, 25004.82290928060], [0.001, 1.14751201091, 55503.94193942859], [0.002, 4.55507467591, 132658.27281205778], [0.001, 1.61844283111, 24079.34560241519], [0.002, 1.99970840056, 17098.43543614181], [0.002, 4.95650007002, 24448.83362438620], [0.001, 6.20512620421, 2333.19639287200], [0.002, 1.27464400058, 144916.86689107097], [0.002, 6.17677089224, 87367.61641884019], [0.001, 1.29983905478, 154194.22245657316], [0.002, 4.47232796046, 130432.40216087017], [0.001, 4.48574397522, 101703.15774082378], [0.002, 2.19277171383, 103.09277421860], [0.001, 1.80796273878, 25508.21555457540], [0.001, 5.48664013700, 22625.65843570900], [0.001, 0.74294839995, 78896.49316403578], [0.001, 3.51165251141, 26421.75908234360], [0.001, 5.55668995710, 220025.88923089797], [0.002, 4.08809950869, 25466.15934073500], [0.002, 2.89128653047, 166740.70439565618], [0.001, 3.92791860433, 189386.03259226496], [0.001, 0.33128467520, 76571.54375522019], [0.002, 1.98187462633, 81604.32185142238], [0.001, 3.57210475329, 78786.28684281638], [0.002, 1.13879447241, 61165.27398858079], [0.001, 5.62721081889, 122444.98726584678], [0.001, 0.51173156424, 113341.08027172917], [0.001, 0.63238768568, 130459.18546877075], [0.001, 0.62172861766, 138319.60486120995], [0.002, 0.35135879351, 132028.58860315479], [0.001, 1.68473271541, 28286.99048486120], [0.002, 2.61859360479, 61560.64729122359], [0.001, 3.42727473387, 130435.63437251298], [0.002, 3.42836265136, 65717.22748563958], [0.001, 2.98248327032, 846.08283475120], [0.001, 5.35146960556, 1265.56747862640], [0.001, 4.88379701920, 205260.65018762814], [0.001, 1.38681194099, 467.96499035440], [0.001, 5.78967137689, 76152.05911134499], [0.001, 1.64625172020, 75930.51303185058], [0.001, 0.08732855602, 103718.82882698359], [0.001, 0.74831854153, 51534.39272140940], [0.001, 1.98744571247, 26411.40855823160], [0.002, 0.58716824437, 52065.59996192899], [0.001, 5.83388253183, 104275.34649502118], [0.001, 2.07307900948, 78188.92782615528], [0.001, 4.54379329814, 203041.89308344139], [0.001, 3.67961974137, 116783.65521669458], [0.001, 2.76419827660, 52812.80255517260], [0.001, 5.76246998806, 1375.77379984580], [0.001, 3.49542841313, 79315.97780791098], [0.001, 3.09408892186, 9384.84100807520], [0.002, 2.99230815235, 91805.13062721379], [0.001, 2.31818985780, 58220.03486452380], [0.001, 2.52061585089, 91919.56991589899], [0.001, 0.20823485438, 54879.42243782400], [0.001, 4.44457464944, 6044.22858137540], [0.001, 0.49331056411, 104819.57755665119], [0.001, 5.98062907857, 106570.36967048359], [0.001, 3.43578051874, 51841.95034237900], [0.001, 1.50478057782, 137210.22630911658], [0.001, 0.85871789181, 25985.94062330859], [0.001, 0.00464768227, 196137.07343261078], [0.001, 4.31601888279, 50483.64061364600], [0.001, 3.82192552665, 25928.60140678200], [0.001, 2.13422641639, 62197.64356324779], [0.001, 0.26342054765, 1795.25844372100], [0.001, 3.33069384141, 19.66976089979], [0.001, 5.04672208460, 26247.20487636640], [0.001, 3.69091550110, 77307.42026875199], [0.001, 0.68629642431, 26102.13023557580], [0.001, 5.61963025660, 104197.83375581198], [0.001, 0.41026701894, 636.99627202420], [0.001, 2.73690252229, 170068.84005193636], [0.001, 2.97981003623, 78057.52387628538], [0.001, 2.84174115238, 168959.46149984296], [0.001, 6.19695864555, 241561.83887541335], [0.001, 2.31427972623, 179172.74704605396], [0.001, 0.82072277702, 51329.72344839720], [0.001, 5.23954201903, 99024.13645791399], [0.001, 1.86269361791, 45494.58142974879], [0.001, 3.54450921353, 78338.49102328988], [0.001, 4.60745432488, 156507.74908854539], [0.001, 1.62346464256, 128106.31931499895], [0.001, 0.72186155433, 27005.83342755599], [0.001, 2.30344666604, 50380.54783942739], [0.001, 1.18658609813, 8989.46770543239], [0.001, 6.25857682168, 50800.03248330259], [0.001, 0.99962008973, 163298.12945069079], [0.001, 2.86790873835, 38634.38508065720], [0.001, 3.61827980669, 106262.81204951399], [0.001, 0.61515728295, 78469.89497315978], [0.001, 4.60636743786, 126996.94076290558], [0.001, 4.48187053152, 231348.55332920235], [0.001, 5.19829793680, 142871.55835826878], [0.001, 5.68864830775, 3178.14579056760], [0.001, 4.89753750946, 53265.51507434200], [0.001, 3.68051221186, 2703.61615467560], [0.001, 0.01737531330, 103814.80805420138], [0.001, 1.79348974875, 183145.01295611399], [0.001, 6.16564988887, 199599.31813847594], [0.001, 0.63301837081, 51439.92976961659], [0.001, 2.29427904310, 1485.98012106520], [0.001, 1.44184009822, 112545.88789950538], [0.001, 0.55411127132, 42790.96527507320], [0.001, 5.07507945312, 54824.26110862140], [0.001, 5.10858625008, 107679.74822257696], [0.001, 5.50068575093, 27819.02549450680], [0.001, 5.60579347269, 153084.84390447979], [0.001, 4.92352598929, 51596.11869614960], [0.001, 6.10538330268, 181659.72224941078], ], # R2 [ [3117.867, 3.08231840296, 26087.90314157420], [1245.396, 6.15183317423, 52175.80628314840], [424.822, 2.92583352960, 78263.70942472259], [136.130, 5.97983925842, 104351.61256629678], [42.175, 2.74936980629, 130439.51570787099], [21.759, 3.14159265359, 0.00000000000], [12.793, 5.80143162209, 156527.41884944518], [3.825, 2.56993599584, 182615.32199101939], [1.042, 3.14648120079, 24978.52458948080], [1.131, 5.62142196970, 208703.22513259359], [0.483, 6.14307654520, 27197.28169366760], [0.332, 2.38992575670, 234791.12827416777], [0.320, 6.20674766565, 51066.42773105500], [0.120, 0.56745598887, 20426.57109242200], [0.113, 3.28048907943, 24498.83024629040], [0.105, 4.36663468239, 25028.52121138500], [0.097, 5.44128884026, 260879.03141574195], [0.095, 1.70276410782, 1059.38193018920], [0.103, 2.98038190305, 77154.33087262919], [0.074, 1.28630381800, 26617.59410666880], [0.057, 2.96753362980, 1109.37855209340], [0.066, 5.68201233964, 25132.30339996560], [0.053, 3.63699398162, 46514.47423399620], [0.059, 3.10922979724, 27043.50288318280], [0.053, 0.66673109494, 21535.94964451540], [0.043, 4.69270605698, 27147.28507176339], [0.042, 2.77372510028, 1589.07289528380], [0.036, 4.39741248058, 14765.23904326980], [0.035, 1.80468389323, 11322.66409830440], [0.043, 6.07426254990, 28306.66024576099], [0.033, 5.34572581657, 25448.00585526019], [0.031, 5.66489075070, 30639.85663863300], [0.031, 2.36104565226, 32858.61374281979], [0.031, 4.27403143366, 16983.99614745660], [0.033, 3.22976052744, 23869.14603738740], [0.031, 0.50041076120, 22645.32819660879], [0.028, 2.21390393577, 286966.93455731618], [0.033, 6.03682885493, 103242.23401420339], [0.025, 4.23934105457, 52705.49724824299], [0.023, 2.59711556958, 23969.13928119580], [0.027, 2.10665521901, 25558.21217647960], [0.021, 0.40892383580, 72602.37737557039], [0.025, 5.69513499802, 5661.33204915220], [0.022, 4.86064608327, 26301.20223701220], [0.024, 0.66522740624, 19317.19254032860], [0.020, 5.61847810688, 4551.95349705880], [0.021, 2.30083904827, 51220.20654153979], [0.018, 0.48839037250, 26068.23338067440], [0.016, 6.07779022342, 50586.73338786459], [0.016, 1.47218845921, 53235.18821333759], [0.017, 2.94277588966, 53285.18483524180], [0.015, 2.39097980793, 83925.04147387479], [0.015, 3.85502950028, 26091.78447693220], [0.014, 4.13753968603, 12566.15169998280], [0.015, 5.51545801304, 6770.71060124560], [0.014, 5.67708505049, 57837.13833230060], [0.014, 5.73775080815, 27676.97603685800], [0.016, 5.69298300679, 26107.57290247399], [0.014, 5.00837046884, 37410.56723987860], [0.015, 5.72321978212, 29530.47808653960], [0.012, 1.18827026407, 40853.14218484400], [0.013, 2.34101240702, 26084.02180621620], [0.012, 2.43920574243, 56727.75978020720], [0.012, 1.12086684687, 43071.89928903080], [0.012, 1.86975778356, 9103.90699411760], [0.012, 4.90236416950, 36301.18868778519], [0.010, 2.33297570685, 426.59819087600], [0.011, 2.80390774003, 129330.13715577759], [0.010, 5.86382886189, 26202.34243025941], [0.009, 0.03545904481, 25234.70675982219], [0.011, 0.92571990717, 639.89728631400], [0.010, 3.94827815051, 25661.30495069820], [0.009, 0.00145195768, 49957.04917896160], [0.008, 5.42702003399, 110012.94461544899], [0.008, 3.39306818321, 25973.46385288896], [0.009, 4.83499870418, 38519.94579197200], [0.008, 5.65148718768, 53131.40602475700], [0.009, 5.73812314204, 51116.42435295920], [0.008, 1.98050481337, 13521.75144159140], [0.009, 0.95963913886, 78793.40038981718], [0.008, 5.24647237181, 313054.83769889036], [0.008, 3.52212788936, 52156.13652224860], [0.007, 3.57060093012, 48733.23133818299], [0.008, 3.47359025801, 98690.28051714458], [0.008, 5.32679971128, 51646.11531805379], [0.010, 5.07319693095, 25874.60404613620], [0.008, 4.34411026261, 31749.23519072640], [0.007, 3.44556423722, 26080.78959457339], [0.007, 5.28088749622, 77308.10968311399], [0.007, 3.46667099767, 2118.76386037840], [0.007, 1.96360039314, 10213.28554621100], [0.007, 1.18631489114, 103292.23063610759], [0.007, 4.28693259279, 955.59974160860], [0.007, 0.88520158736, 38654.05484155699], [0.009, 2.12100150030, 18849.22754997420], [0.008, 2.75301666365, 26095.01668857500], [0.007, 4.98530328971, 529.69096509460], [0.007, 0.20928215626, 33326.57873317420], [0.006, 4.54286088482, 79323.09135491178], [0.006, 0.60060875587, 52179.68761850640], [0.006, 1.21940434381, 41962.52073693740], [0.006, 1.74585091288, 62389.09182935939], [0.006, 2.13481309441, 51535.90899683439], [0.006, 4.92478078408, 26514.50133245020], [0.007, 4.18249532118, 77204.32749453338], [0.007, 1.68449319925, 52389.10537858640], [0.005, 4.28220819106, 68050.42387851159], [0.007, 1.69076988754, 12432.04265039780], [0.006, 3.73803069606, 45405.09568190280], [0.005, 2.61320374120, 79373.08797681599], [0.005, 2.82458540907, 54394.56338733519], [0.004, 6.27439443684, 52168.69273614759], [0.005, 4.50767453332, 13655.86049117640], [0.006, 2.41451327257, 52195.47604404819], [0.005, 5.35396003655, 52171.92494779040], [0.005, 5.48187638039, 82815.66292178139], [0.004, 2.46695073802, 55618.38122811380], [0.004, 2.40470389725, 53764.87917843220], [0.004, 4.24591997877, 66941.04532641819], [0.004, 3.26730161531, 7238.67559160000], [0.004, 4.24517841791, 129380.13377768178], [0.004, 5.46706523938, 50057.04242277000], [0.004, 2.17208918484, 136100.84775702318], [0.004, 5.86573287261, 155418.04029735178], [0.004, 4.15256069197, 32370.97899156560], [0.004, 2.92358717546, 2218.75710418680], [0.004, 2.22141015932, 33967.99229491319], [0.005, 5.74788858603, 52182.91983014920], [0.004, 0.97295961632, 44181.27784112419], [0.003, 5.78273085505, 28421.09953444620], [0.003, 3.65975480266, 99799.65906923798], [0.004, 3.98623592167, 26727.80042788820], [0.003, 2.65056124435, 76674.63652943878], [0.003, 4.91152657563, 47623.85278608960], [0.004, 1.60135504353, 77734.01845962799], [0.003, 0.26868606771, 78244.03966382280], [0.003, 4.58298191655, 1066.49547719000], [0.003, 4.04696774318, 18093.37469954999], [0.003, 1.04981780528, 94138.32702008578], [0.003, 0.82425633309, 73711.75592766379], [0.003, 5.12180734718, 1052.26838318840], [0.003, 1.58544193974, 51109.31080595839], [0.003, 0.22337858409, 124778.18365871879], [0.003, 3.08207297479, 76044.95232053580], [0.003, 6.26000429251, 853.19638175200], [0.003, 3.89747679105, 64741.95798313119], [0.003, 1.86869273254, 52602.40447402440], [0.004, 0.01480665337, 7.11354700080], [0.003, 1.95420622178, 103396.01282468818], [0.003, 6.00022344367, 29416.03879785439], [0.003, 1.05827389660, 51123.53789995999], [0.003, 3.93336187090, 104881.30353139139], [0.002, 4.80666683935, 88476.99497093359], [0.002, 2.56919394798, 51962.50718771040], [0.002, 5.19328838214, 91785.46086631398], [0.003, 4.94448744333, 44937.13069154840], [0.002, 0.39272598961, 23754.70674870219], [0.003, 3.64926786888, 78267.59076008058], [0.002, 1.93776267237, 117873.36400788819], [0.002, 0.16310879863, 28206.66700195260], [0.002, 2.74232958068, 52290.24557183361], [0.002, 1.94114905421, 7994.52844202420], [0.002, 0.39437121176, 125887.56221081219], [0.002, 1.03418813348, 155468.03691925600], [0.002, 2.06866763231, 339142.74084046460], [0.002, 1.29912216629, 105410.99449648599], [0.002, 0.54124189090, 74821.13447975718], [0.002, 2.12346357366, 65697.55772473979], [0.002, 2.54143985834, 78270.82297172339], [0.002, 4.87063627681, 35191.81013569180], [0.002, 0.51631216786, 71492.99882347698], [0.002, 0.73976887550, 18207.81398823521], [0.002, 5.50150244414, 78283.37918562238], [0.002, 4.78661791721, 78477.00852016058], [0.002, 4.40683761496, 103821.92160120218], [0.002, 3.07092516027, 78256.59587772179], [0.002, 5.01301614244, 3442.57494496540], [0.002, 2.58799752737, 181505.94343892598], [0.002, 4.95243490606, 129483.91596626239], [0.002, 4.12821833516, 77211.44104153418], [0.002, 4.05475453577, 120226.23016165999], [0.002, 3.34041291655, 151975.46535238638], [0.002, 3.27812728356, 51322.60990139639], [0.002, 4.06092192484, 77837.11123384659], [0.002, 5.22546741404, 162188.75089859738], [0.002, 5.57497617017, 71980.63357473118], [0.002, 1.86655156569, 23439.44831610119], [0.002, 4.79020891265, 15874.61759536320], [0.002, 2.43202419279, 45892.73043315699], [0.001, 4.91443985635, 78690.30761559859], [0.002, 2.55186486587, 39609.65458316560], [0.002, 2.04705904795, 433.71173787680], [0.001, 6.06582167254, 102132.85546210999], [0.002, 0.36512406083, 6283.07584999140], [0.002, 5.96418661485, 78050.41032928458], [0.001, 0.66730245858, 58458.88213313979], [0.001, 2.46652537811, 98068.53671630539], [0.002, 3.24884087108, 150866.08680029298], [0.002, 0.33626385981, 52061.36699446317], [0.001, 1.58214319162, 114564.89811250778], [0.001, 1.86505965946, 27140.17152476259], [0.001, 4.70954784660, 77197.21394753258], [0.001, 3.30080224324, 104331.94280539699], [0.002, 2.15014442693, 78259.82808936459], [0.001, 4.16909637294, 51742.09454527159], [0.002, 0.61993180902, 130969.20667296558], [0.001, 5.64166202504, 81706.28436968799], [0.001, 1.28449131177, 27154.39861876420], [0.001, 0.20716724934, 131548.89425996438], [0.001, 5.01586042695, 105460.99111839019], [0.001, 2.20142137730, 104371.28232719658], [0.001, 0.71547903080, 103925.01437542078], [0.001, 1.69298852699, 71025.03383312259], [0.002, 1.01857337375, 93028.94846799239], [0.002, 0.99564225222, 129909.82474277639], [0.001, 3.04953117213, 26941.09952332620], [0.001, 1.54774252742, 104564.91166173479], [0.001, 1.29736654025, 26241.68195205900], [0.002, 0.39879309478, 104355.49390165479], [0.001, 1.73442408485, 64607.84893354619], [0.001, 3.52887677711, 97580.90196505119], [0.001, 3.55488474055, 84546.78527471398], [0.001, 2.68991734615, 59414.48187474840], [0.001, 2.23301107736, 107794.18751126219], [0.001, 6.04185199127, 104344.49901929598], [0.001, 2.33178230942, 108903.56606335558], [0.001, 5.23291332097, 134991.46920492980], [0.001, 5.42420842294, 79852.78232000639], [0.001, 5.56485897392, 104358.72611329758], [0.001, 2.03042058117, 76144.94556434419], [0.001, 4.42403586918, 25021.40766438420], [0.001, 4.07362401058, 181555.94006083018], [0.001, 4.39544806298, 131498.89763806018], [0.001, 3.37653548744, 22759.76748529401], [0.001, 3.34598726101, 24864.08530079559], [0.001, 0.81949463309, 52815.70356946240], [0.001, 4.13026377404, 2648.45482547300], [0.001, 1.40701146170, 103285.11708910679], [0.001, 2.72338212355, 419.48464387520], [0.001, 2.86239729930, 63498.47038145279], [0.001, 4.60118276053, 19804.82729158280], [0.001, 3.76488909896, 51749.20809227239], [0.001, 5.71167880995, 78378.14871340781], [0.001, 3.11068504003, 54294.57014352679], [0.001, 5.17191010522, 1596.18644228460], [0.001, 0.84666659977, 26037.90651966999], [0.001, 1.27214241387, 39743.76363275060], [0.001, 3.62572271343, 51756.32163927320], [0.001, 0.99401491673, 50579.61984086379], [0.001, 2.65940437112, 79219.30916633119], [0.001, 2.78122688424, 157636.79740153858], [0.001, 5.02865728622, 365230.64398203877], [0.001, 4.26629771518, 26724.89941359840], [0.001, 0.69459147389, 90829.86112470538], [0.001, 3.74834736873, 44295.71712980940], [0.001, 2.67181600104, 5327.47610838280], [0.001, 5.10769130141, 58946.51688439399], [0.001, 0.55503171074, 69159.80243060499], [0.001, 4.68391610322, 90695.75207512038], [0.001, 5.17372763616, 149.56319713460], [0.001, 5.26044215633, 25934.12433108940], [0.001, 5.13679156205, 104347.73123093879], [0.001, 0.91197645609, 103299.34418310839], [0.001, 5.89466975855, 27311.72098235281], [0.001, 0.91206378451, 77829.99768684579], [0.001, 0.82686052448, 146314.13330323418], [0.001, 5.01041490382, 25450.90686955000], [0.001, 0.74891931364, 10021.83728009940], [0.001, 3.75910629606, 25619.93815121980], [0.001, 1.57855828108, 61279.71327726600], [0.001, 5.22196769252, 77623.81213840858], [0.001, 5.44280337360, 52643.77127350280], [0.001, 3.38760463430, 49842.60989027639], [0.001, 4.04176416141, 25565.32572348040], [0.001, 1.99169557218, 105940.68546158058], [0.001, 2.40126368211, 26555.86813192860], [0.001, 3.28153684541, 78149.27013603736], [0.001, 1.50606534242, 50593.84693486539], [0.001, 4.99390846744, 143961.26714946239], [0.001, 4.36279289081, 70269.18098269838], [0.001, 0.56330446870, 29428.51556827400], [0.001, 1.96827343473, 188276.65404017159], [0.001, 6.14024093350, 3328.13565628019], [0.001, 4.38278455115, 52329.58509363319], [0.001, 5.32677211586, 26137.89976347840], [0.001, 5.49001686286, 7880.08915333899], [0.001, 2.08096369099, 26610.48055966799], [0.001, 2.81808749734, 54509.00267602040], [0.001, 3.85620334673, 26624.70765366959], [0.001, 1.15157832957, 536.80451209540], [0.001, 3.62974919098, 130012.91751699499], [0.001, 0.35977888560, 105307.21230790539], [0.001, 2.75970257539, 55503.94193942859], [0.001, 3.95087871071, 119116.85160956658], [0.001, 2.02746284465, 85034.42002596818], [0.001, 0.01631363612, 25668.41849769900], [0.001, 4.69497491223, 1581.95934828300], [0.001, 4.43589881789, 53242.30176033840], [0.001, 0.02851648548, 213.29909543800], [0.001, 2.42155941603, 25551.09862947879], [0.001, 4.51335885923, 12546.48193908300], [0.001, 3.07012190290, 104138.31347085879], [0.001, 4.25105785914, 65831.66677432480], [0.001, 0.26591217377, 89586.37352302698], [0.001, 3.25491459524, 46848.33017476560], [0.001, 5.00501348827, 51639.00177105299], [0.000, 5.50334834007, 124156.43985787958], [0.000, 4.83101429854, 76.26607127560], [0.000, 4.34030366776, 80482.46652890938], [0.001, 3.55161443787, 116917.76426627958], [0.000, 4.96302997387, 26521.61487945100], [0.001, 0.12176395772, 6681.22485339960], [0.001, 0.06932929209, 48847.67062686820], [0.001, 0.08695556653, 26507.38778544939], [0.000, 1.50601747714, 632.78373931320], [0.000, 3.68453733674, 25035.63475838580], [0.000, 2.10077795936, 86143.79857806159], [0.000, 2.61352703953, 53399.62412392700], [0.000, 0.84481589887, 25881.71759313700], [0.000, 3.95854005744, 95247.70557217918], [0.001, 4.47600641528, 97112.93697469679], [0.001, 0.40812953108, 77844.22478084739], [0.000, 4.89912517892, 25984.81036735560], [0.000, 5.16843610094, 52698.38370124219], [0.000, 3.99449121788, 131395.11544947958], [0.000, 5.65446547429, 80596.90581759460], ], # R3 [ [32.676, 1.67971635359, 26087.90314157420], [24.166, 4.63403168997, 52175.80628314840], [12.133, 1.38983781545, 78263.70942472259], [5.140, 4.43915386930, 104351.61256629678], [1.981, 1.20733880274, 130439.51570787099], [1.460, 3.14159265359, 0.00000000000], [0.719, 4.25913631362, 156527.41884944518], [0.250, 1.02794425848, 182615.32199101939], [0.084, 4.08008618813, 208703.22513259359], [0.028, 0.85051616237, 234791.12827416777], [0.023, 1.60029451014, 24978.52458948080], [0.011, 4.58074493182, 27197.28169366760], [0.012, 4.65878660390, 51066.42773105500], [0.009, 3.90622332667, 260879.03141574195], [0.005, 1.43247327249, 77154.33087262919], [0.004, 1.37106678794, 53285.18483524180], [0.003, 0.67217979275, 286966.93455731618], [0.002, 5.31135121818, 20426.57109242200], [0.002, 1.54812921017, 1109.37855209340], [0.002, 4.48222146022, 103242.23401420339], [0.002, 0.20057520755, 1059.38193018920], [0.002, 4.21865197056, 25132.30339996560], [0.001, 2.11997334018, 46514.47423399620], [0.001, 3.24267833975, 27147.28507176339], [0.001, 1.33238537892, 1589.07289528380], [0.001, 5.14405498793, 72602.37737557039], [0.001, 6.14595652541, 26617.59410666880], [0.001, 3.90494988936, 4551.95349705880], [0.001, 2.85134614467, 14765.23904326980], [0.001, 3.74339959279, 313054.83769889036], [0.001, 2.82234410581, 52705.49724824299], [0.001, 1.70132625273, 23869.14603738740], [0.001, 1.44102444460, 27043.50288318280], [0.001, 1.25358423340, 129330.13715577759], [0.001, 0.32054002273, 9103.90699411760], [0.001, 0.90273607509, 51220.20654153979], [0.001, 4.28935605425, 27676.97603685800], [0.001, 4.41206223998, 79373.08797681599], [0.001, 3.23518929162, 26301.20223701220], [0.001, 2.25667255668, 21535.94964451540], [0.001, 4.70414203873, 50586.73338786459], [0.001, 1.88608259832, 98690.28051714458], [0.001, 5.90420893056, 40853.14218484400], [0.001, 4.46892853356, 53131.40602475700], [0.001, 3.83684899837, 77308.10968311399], [0.001, 1.31974603498, 54394.56338733519], [0.001, 0.74728939443, 32858.61374281979], [0.001, 6.27673970277, 53235.18821333759], [0.001, 4.14814578610, 29530.47808653960], [0.001, 0.87302135775, 83925.04147387479], [0.001, 5.20339566427, 26068.23338067440], [0.001, 2.88631079597, 79323.09135491178], [0.001, 5.39853672849, 19317.19254032860], [0.001, 5.73721596586, 78793.40038981718], [0.000, 1.85241611022, 25973.46385288896], [0.000, 4.31134434847, 26202.34243025941], [0.000, 4.74305205780, 49957.04917896160], [0.001, 3.87802524387, 82815.66292178139], [0.000, 4.28937691652, 155418.04029735178], [0.001, 3.35625397389, 37410.56723987860], [0.000, 2.00313301846, 22645.32819660879], [0.000, 2.49236829957, 25028.52121138500], [0.000, 0.01947787727, 25558.21217647960], [0.001, 4.13825019881, 3442.57494496540], [0.000, 2.81832388305, 25874.60404613620], [0.000, 2.53416253042, 12566.15169998280], [0.001, 4.46169102731, 28306.66024576099], [0.001, 2.16986592809, 45405.09568190280], [0.000, 2.27621739263, 26091.78447693220], [0.000, 1.95034764539, 52156.13652224860], [0.000, 4.03054078678, 30639.85663863300], [0.000, 5.76722418743, 43071.89928903080], [0.000, 4.12739704581, 26107.57290247399], [0.000, 1.37713138665, 31749.23519072640], [0.001, 3.54716896556, 51646.11531805379], [0.000, 3.39161595850, 36301.18868778519], [0.000, 4.34410863436, 57837.13833230060], [0.000, 5.62082960690, 639.89728631400], [0.000, 3.16268062826, 529.69096509460], [0.000, 0.77186843357, 26084.02180621620], [0.000, 3.78612072314, 110012.94461544899], [0.000, 5.50453358586, 51116.42435295920], [0.000, 0.04709131420, 52389.10537858640], [0.000, 3.93991894858, 6770.71060124560], [0.000, 1.41961180167, 76674.63652943878], [0.000, 2.61258742182, 66941.04532641819], [0.000, 0.70544164813, 426.59819087600], [0.000, 0.91883551986, 55618.38122811380], [0.000, 5.30612883135, 52179.68761850640], [0.000, 2.00604152518, 2118.76386037840], [0.000, 1.08640210817, 56727.75978020720], [0.000, 3.92743267498, 58946.51688439399], [0.000, 5.52202827702, 38654.05484155699], [0.000, 1.57363600114, 24498.83024629040], [0.000, 3.49522546958, 5661.33204915220], [0.000, 0.63375195581, 51535.90899683439], [0.000, 1.34305878069, 105460.99111839019], [0.000, 0.44820055565, 339142.74084046460], [0.000, 1.39951362362, 2218.75710418680], [0.000, 0.63311095079, 18849.22754997420], [0.000, 0.82120127326, 52195.47604404819], [0.000, 2.78211363987, 47623.85278608960], [0.000, 0.94752126944, 53764.87917843220], [0.000, 3.75988526858, 52171.92494779040], [0.000, 0.44351435910, 136100.84775702318], [0.000, 1.44824925227, 76044.95232053580], [0.000, 4.83985082201, 78244.03966382280], [0.000, 0.04522486479, 62389.09182935939], [0.000, 6.28144869714, 213.29909543800], [0.000, 5.17875557687, 955.59974160860], [0.000, 4.62674052433, 52168.69273614759], [0.000, 2.19907823066, 77204.32749453338], [0.000, 3.40216597806, 26514.50133245020], [0.000, 2.89630853457, 13655.86049117640], [0.000, 3.92639394174, 50057.04242277000], [0.000, 0.27991454535, 11322.66409830440], [0.000, 5.63968341805, 103292.23063610759], [0.000, 1.86829495425, 48733.23133818299], [0.000, 5.77443179008, 105410.99449648599], ], # R4 [ [0.394, 0.36735403840, 26087.90314157420], [0.387, 3.18568771507, 52175.80628314840], [0.270, 6.16983616444, 78263.70942472259], [0.149, 2.91591904641, 104351.61256629678], [0.071, 5.95867889641, 130439.51570787099], [0.031, 2.72386700044, 156527.41884944518], [0.017, 0.00000000000, 0.00000000000], [0.012, 5.77775334056, 182615.32199101939], [0.005, 2.54506442647, 208703.22513259359], [0.002, 5.59978443851, 234791.12827416777], [0.001, 2.33785160871, 260879.03141574195], [0.000, 5.37943916893, 286966.93455731618], [0.000, 3.09643524101, 51066.42773105500], [0.000, 0.09342858750, 24978.52458948080], [0.000, 6.02837115675, 53285.18483524180], [0.000, 6.13600004668, 77154.33087262919], [0.000, 2.93310416266, 27197.28169366760], [0.000, 2.89897922039, 103242.23401420339], ], # R5 [ [0.006, 3.98900269603, 26087.90314157420], [0.006, 1.55248278782, 52175.80628314840], [0.005, 4.65461721116, 78263.70942472259], [0.004, 1.40238366492, 104351.61256629678], [0.002, 4.44231488663, 130439.51570787099], [0.001, 3.14159265359, 0.00000000000], [0.001, 1.21278177664, 156527.41884944518], [0.001, 4.26149026340, 182615.32199101939], [0.000, 0.99831133595, 208703.22513259359], [0.000, 4.00267064210, 234791.12827416777], ], ] """This table contains Mercury's periodic terms (all of them) from the planetary theory VSOP87 for the radius vector at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in page 416.""" ORBITAL_ELEM = [ [252.250906, 149474.0722491, 0.0003035, 0.000000018], # L [0.38709831, 0.0, 0.0, 0.0], # a [0.20563175, 0.000020407, -0.0000000283, -0.00000000018], # e [7.004986, 0.0018215, -0.0000181, 0.000000056], # i [48.330893, 1.1861883, 0.00017542, 0.000000215], # Omega [77.456119, 1.5564776, 0.00029544, 0.000000009] # pie ] """This table contains the parameters to compute Mercury's orbital elements for the mean equinox of date. Based in Table 31.A, page 212""" ORBITAL_ELEM_J2000 = [ [252.250906, 149472.6746358, -0.00000536, 0.000000002], # L [7.004986, -0.0059516, 0.0000008, 0.000000043], # i [48.330893, -0.1254227, -0.00008833, -0.0000002], # Omega [77.456119, 0.1588643, -0.00001342, -0.000000007] # pie ] """This table contains the parameters to compute Mercury's orbital elements for the standard equinox J2000.0. Based on Table 31.B, page 214""" class Mercury(object): """ Class Mercury models that planet. """ @staticmethod def geometric_heliocentric_position(epoch, tofk5=True): """This method computes the geometric heliocentric position of planet Mercury for a given epoch, using the VSOP87 theory. :param epoch: Epoch to compute Mercury position, as an Epoch object :type epoch: :py:class:`Epoch` :param tofk5: Whether or not the small correction to convert to the FK5 system will be applied or not :type tofk5: bool :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2018, 10, 27.0) >>> l, b, r = Mercury.geometric_heliocentric_position(epoch) >>> print(round(l.to_positive(), 4)) 287.4887 >>> print(round(b, 4)) -6.0086 >>> print(round(r, 5)) 0.45113 """ return geometric_vsop_pos(epoch, VSOP87_L, VSOP87_B, VSOP87_R, tofk5) @staticmethod def apparent_heliocentric_position(epoch): """This method computes the apparent heliocentric position of planet Mercury for a given epoch, using the VSOP87 theory. :param epoch: Epoch to compute Mercury position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. """ return apparent_vsop_pos(epoch, VSOP87_L, VSOP87_B, VSOP87_R) @staticmethod def orbital_elements_mean_equinox(epoch): """This method computes the orbital elements of Mercury for the mean equinox of the date for a given epoch. :param epoch: Epoch to compute orbital elements, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the following six orbital elements: - Mean longitude of the planet (Angle) - Semimajor axis of the orbit (float, astronomical units) - eccentricity of the orbit (float) - inclination on the plane of the ecliptic (Angle) - longitude of the ascending node (Angle) - argument of the perihelion (Angle) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2065, 6, 24.0) >>> l, a, e, i, ome, arg = Mercury.orbital_elements_mean_equinox(epoch) >>> print(round(l, 6)) 203.494701 >>> print(round(a, 8)) 0.38709831 >>> print(round(e, 7)) 0.2056451 >>> print(round(i, 6)) 7.006171 >>> print(round(ome, 5)) 49.10765 >>> print(round(arg, 6)) 29.367732 """ return orbital_elements(epoch, ORBITAL_ELEM, ORBITAL_ELEM) @staticmethod def orbital_elements_j2000(epoch): """This method computes the orbital elements of Mercury for the standard equinox J2000.0 for a given epoch. :param epoch: Epoch to compute orbital elements, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the following six orbital elements: - Mean longitude of the planet (Angle) - Semimajor axis of the orbit (float, astronomical units) - eccentricity of the orbit (float) - inclination on the plane of the ecliptic (Angle) - longitude of the ascending node (Angle) - argument of the perihelion (Angle) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2065, 6, 24.0) >>> l, a, e, i, ome, arg = Mercury.orbital_elements_j2000(epoch) >>> print(round(l, 6)) 202.579453 >>> print(round(a, 8)) 0.38709831 >>> print(round(e, 7)) 0.2056451 >>> print(round(i, 6)) 7.001089 >>> print(round(ome, 5)) 48.24873 >>> print(round(arg, 6)) 29.311401 """ return orbital_elements(epoch, ORBITAL_ELEM, ORBITAL_ELEM_J2000) @staticmethod def geocentric_position(epoch): """This method computes the geocentric position of Mercury (right ascension and declination) for the given epoch, as well as the elongation angle. :param epoch: Epoch to compute geocentric position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the right ascension, the declination and the elongation angle as Angle objects :rtype: tuple :raises: TypeError if input value is of wrong type. >>> epoch = Epoch(1992, 12, 20.0) >>> ra, dec, elon = Mercury.geocentric_position(epoch) >>> print(ra.ra_str(n_dec=1)) 16h 33' 59.3'' >>> print(dec.dms_str(n_dec=1)) -20d 53' 31.6'' >>> print(elon.dms_str(n_dec=1)) 18d 24' 29.8'' """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Compute the heliocentric position of Mercury l, b, r = Mercury.geometric_heliocentric_position(epoch, tofk5=False) # Compute the heliocentric position of the Earth l0, b0, r0 = Earth.geometric_heliocentric_position(epoch, tofk5=False) # Convert to radians lr = l.rad() br = b.rad() l0r = l0.rad() b0r = b0.rad() # Compute first iteration x = r * cos(br) * cos(lr) - r0 * cos(b0r) * cos(l0r) y = r * cos(br) * sin(lr) - r0 * cos(b0r) * sin(l0r) z = r * sin(br) - r0 * sin(b0r) delta = sqrt(x * x + y * y + z * z) tau = 0.0057755183 * delta # Adjust the epoch for light-time epoch -= tau # Compute again Mercury coordinates with this correction l, b, r = Mercury.geometric_heliocentric_position(epoch, tofk5=False) # Compute second iteration lr = l.rad() br = b.rad() x = r * cos(br) * cos(lr) - r0 * cos(b0r) * cos(l0r) y = r * cos(br) * sin(lr) - r0 * cos(b0r) * sin(l0r) z = r * sin(br) - r0 * sin(b0r) # Compute longitude and latitude lamb = atan2(y, x) beta = atan2(z, sqrt(x * x + y * y)) # Now, let's compute the aberration effect t = (epoch - JDE2000) / 36525 e = 0.016708634 + t * (-0.000042037 - t * 0.0000001267) pie = 102.93735 + t * (1.71946 + t * 0.00046) pie = radians(pie) lon = l0 + 180.0 lon = lon.rad() k = 20.49552 # The constant of aberration deltal1 = k * (-cos(lon - lamb) + e * cos(pie - lamb)) / cos(beta) deltab1 = -k * sin(beta) * (sin(lon - lamb) - e * sin(pie - lamb)) deltal1 = Angle(0, 0, deltal1) deltab1 = Angle(0, 0, deltab1) # Correction to FK5 system lamb = Angle(lamb, radians=True) lamb = lamb.to_positive() beta = Angle(beta, radians=True) l_prime = lamb - t * (1.397 + t * 0.00031) deltal2 = Angle(0, 0, -0.09033) a = 0.03916 * (cos(l_prime.rad()) + sin(l_prime.rad())) a = a * tan(b.rad()) deltal2 += Angle(0, 0, a) deltab2 = 0.03916 * (cos(l_prime.rad()) - sin(l_prime.rad())) deltab2 = Angle(0, 0, deltab2) # Apply the corrections lamb = lamb + deltal1 + deltal2 beta = beta + deltab1 + deltab2 # Correction for nutation dpsi = nutation_longitude(epoch) lamb += dpsi e = true_obliquity(epoch) ra, dec = ecliptical2equatorial(lamb, beta, e) # Let's compute the elongation angle lons, lats, rs = Sun.apparent_geocentric_position(epoch) lambr = lamb.rad() lsr = lons.rad() betar = beta.rad() elon = acos(cos(betar) * cos(lambr - lsr)) elon = Angle(elon, radians=True) return ra, dec, elon @staticmethod def inferior_conjunction(epoch): """This method computes the time of the inferior conjunction closest to the given epoch. :param epoch: Epoch close to the desired inferior conjunction :type epoch: :py:class:`Epoch` :returns: The time when the inferior conjunction happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(1993, 10, 1.0) >>> conjunction = Mercury.inferior_conjunction(epoch) >>> y, m, d = conjunction.get_date() >>> print(y) 1993 >>> print(m) 11 >>> print(round(d, 4)) 6.1449 >>> epoch = Epoch(1631, 10, 1.0) >>> conjunction = Mercury.inferior_conjunction(epoch) >>> y, m, d = conjunction.get_date() >>> print(y) 1631 >>> print(m) 11 >>> print(round(d, 3)) 7.306 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Mercury's inferior conjunction a = 2451612.023 b = 115.8774771 m0 = 63.5867 m1 = 114.2088742 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 corr = (0.0545 + 0.0002 * t + sin(m) * (-6.2008 + t * (0.0074 + t * 0.00003)) + cos(m) * (-3.275 + t * (-0.0197 + t * 0.00001)) + sin(2.0 * m) * (0.4737 + t * (-0.0052 - t * 0.00001)) + cos(2.0 * m) * (0.8111 + t * (0.0033 - t * 0.00002)) + sin(3.0 * m) * (0.0037 + t * 0.0018) + cos(3.0 * m) * (-0.1768 + t * t * 0.00001) + sin(4.0 * m) * (-0.0211 - t * 0.0004) + cos(4.0 * m) * (0.0326 - t * 0.0003) + sin(5.0 * m) * (0.0083 + t * 0.0001) + cos(5.0 * m) * (-0.004 + t * 0.0001)) to_return = jde0 + corr return Epoch(to_return) @staticmethod def superior_conjunction(epoch): """This method computes the time of the superior conjunction closest to the given epoch. :param epoch: Epoch close to the desired superior conjunction :type epoch: :py:class:`Epoch` :returns: The time when the superior conjunction happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(1993, 10, 1.0) >>> conjunction = Mercury.superior_conjunction(epoch) >>> y, m, d = conjunction.get_date() >>> print(y) 1993 >>> print(m) 8 >>> print(round(d, 4)) 29.3301 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Mercury's superior conjunction a = 2451554.084 b = 115.8774771 m0 = 6.4822 m1 = 114.2088742 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 corr = (-0.0548 - 0.0002 * t + sin(m) * (7.3894 + t * (-0.01 - t * 0.00003)) + cos(m) * (3.22 + t * (0.0197 - t * 0.00001)) + sin(2.0 * m) * (0.8383 + t * (-0.0064 - t * 0.00001)) + cos(2.0 * m) * (0.9666 + t * (0.0039 - t * 0.00003)) + sin(3.0 * m) * (0.077 - t * 0.0026) + cos(3.0 * m) * (0.2758 + t * (0.0002 - t * 0.00002)) + sin(4.0 * m) * (-0.0128 - t * 0.0008) + cos(4.0 * m) * (0.0734 + t * (-0.0004 - t * 0.00001)) + sin(5.0 * m) * (-0.0122 - t * 0.0002) + cos(5.0 * m) * (0.0173 - t * 0.0002)) to_return = jde0 + corr return Epoch(to_return) @staticmethod def western_elongation(epoch): """This method computes the time of the western elongation closest to the given epoch, as well as the corresponding maximum elongation angle. :param epoch: Epoch close to the desired western elongation :type epoch: :py:class:`Epoch` :returns: A tuple with the time when the western elongation happens, as an Epoch, and the maximum elongation angle, as an Angle :rtype: tuple :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(1993, 11, 1.0) >>> time, elongation = Mercury.western_elongation(epoch) >>> y, m, d = time.get_date() >>> print(y) 1993 >>> print(m) 11 >>> print(round(d, 4)) 22.6386 >>> print(round(elongation, 4)) 19.7506 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Mercury's inferior conjunction a = 2451612.023 b = 115.8774771 m0 = 63.5867 m1 = 114.2088742 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 corr = (21.6249 - 0.0002 * t + sin(m) * (0.1306 + t * 0.0065) + cos(m) * (-2.7661 + t * (-0.0011 + t * 0.00001)) + sin(2.0 * m) * (0.2438 + t * (-0.0024 - t * 0.00001)) + cos(2.0 * m) * (0.5767 + t * 0.0023) + sin(3.0 * m) * (0.1041) + cos(3.0 * m) * (-0.0184 + t * 0.0007) + sin(4.0 * m) * (-0.0051 - t * 0.0001) + cos(4.0 * m) * (0.0048 + t * 0.0001) + sin(5.0 * m) * (0.0026) + cos(5.0 * m) * (0.0037)) elon = (22.4143 - 0.0001 * t + sin(m) * (4.3651 + t * (-0.0048 - t * 0.00002)) + cos(m) * (2.3787 + t * (0.0121 - t * 0.00001)) + sin(2.0 * m) * (0.2674 + t * 0.0022) + cos(2.0 * m) * (-0.3873 + t * (0.0008 + t * 0.00001)) + sin(3.0 * m) * (-0.0369 - t * 0.0001) + cos(3.0 * m) * (0.0017 - t * 0.0001) + sin(4.0 * m) * (0.0059) + cos(4.0 * m) * (0.0061 + t * 0.0001) + sin(5.0 * m) * (0.0007) + cos(5.0 * m) * (-0.0011)) elon = Angle(elon).to_positive() to_return = jde0 + corr return Epoch(to_return), elon @staticmethod def eastern_elongation(epoch): """This method computes the time of the eastern elongation closest to the given epoch, as well as the corresponding maximum elongation angle. :param epoch: Epoch close to the desired eastern elongation :type epoch: :py:class:`Epoch` :returns: A tuple with the time when the eastern elongation happens, as an Epoch, and the maximum elongation angle, as an Angle :rtype: tuple :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(1990, 8, 1.0) >>> time, elongation = Mercury.eastern_elongation(epoch) >>> y, m, d = time.get_date() >>> print(y) 1990 >>> print(m) 8 >>> print(round(d, 4)) 11.8514 >>> print(round(elongation, 4)) 27.4201 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Mercury's inferior conjunction a = 2451612.023 b = 115.8774771 m0 = 63.5867 m1 = 114.2088742 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 corr = (-21.6101 + 0.0002 * t + sin(m) * (-1.9803 + t * (-0.006 + t * 0.00001)) + cos(m) * (1.4151 + t * (-0.0072 - t * 0.00001)) + sin(2.0 * m) * (0.5528 + t * (-0.0005 - t * 0.00001)) + cos(2.0 * m) * (0.2905 + t * (0.0034 + t * 0.00001)) + sin(3.0 * m) * (-0.1121 + t * (-0.0001 + t * 0.00001)) + cos(3.0 * m) * (-0.0098 - t * 0.0015) + sin(4.0 * m) * (0.0192) + cos(4.0 * m) * (0.0111 + t * 0.0004) + sin(5.0 * m) * (-0.0061) + cos(5.0 * m) * (-0.0032 - t * 0.0001)) elon = (22.4697 + sin(m) * (-4.2666 + t * (0.0054 + t * 0.00002)) + cos(m) * (-1.8537 - t * 0.0137) + sin(2.0 * m) * (0.3598 + t * (0.0008 - t * 0.00001)) + cos(2.0 * m) * (-0.068 + t * 0.0026) + sin(3.0 * m) * (-0.0524 - t * 0.0003) + cos(3.0 * m) * (0.0052 - t * 0.0006) + sin(4.0 * m) * (0.0107 + t * 0.0001) + cos(4.0 * m) * (-0.0013 + t * 0.0001) + sin(5.0 * m) * (-0.0021) + cos(5.0 * m) * (0.0003)) elon = Angle(elon).to_positive() to_return = jde0 + corr return Epoch(to_return), elon @staticmethod def station_longitude_1(epoch): """This method computes the time of the 1st station in longitude (i.e. when the planet is stationary and begins to move westward - retrograde - among the starts) closest to the given epoch. :param epoch: Epoch close to the desired inferior conjunction :type epoch: :py:class:`Epoch` :returns: Time when the 1st statin in longitude happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(1993, 10, 1.0) >>> sta1 = Mercury.station_longitude_1(epoch) >>> y, m, d = sta1.get_date() >>> print(y) 1993 >>> print(m) 10 >>> print(round(d, 4)) 25.9358 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Mercury's inferior conjunction a = 2451612.023 b = 115.8774771 m0 = 63.5867 m1 = 114.2088742 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 corr = (-11.0761 + 0.0003 * t + sin(m) * (-4.7321 + t * (0.0023 + t * 0.00002)) + cos(m) * (-1.323 - t * 0.0156) + sin(2.0 * m) * (0.227 - t * 0.0046) + cos(2.0 * m) * (0.7184 + t * (0.0013 - t * 0.00002)) + sin(3.0 * m) * (0.0638 + t * 0.0016) + cos(3.0 * m) * (-0.1655 + t * 0.0007) + sin(4.0 * m) * (-0.0395 - t * 0.0003) + cos(4.0 * m) * (0.0247 - t * 0.0006) + sin(5.0 * m) * (0.0131) + cos(5.0 * m) * (-0.0008 + t * 0.0002)) to_return = jde0 + corr return Epoch(to_return) @staticmethod def station_longitude_2(epoch): """This method computes the time of the 2nd station in longitude (i.e. when the planet is stationary and begins to move eastward - prograde - among the starts) closest to the given epoch. :param epoch: Epoch close to the desired inferior conjunction :type epoch: :py:class:`Epoch` :returns: Time when the 2nd station in longitude happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(1993, 10, 1.0) >>> sta2 = Mercury.station_longitude_2(epoch) >>> y, m, d = sta2.get_date() >>> print(y) 1993 >>> print(m) 11 >>> print(round(d, 4)) 15.0724 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Mercury's inferior conjunction a = 2451612.023 b = 115.8774771 m0 = 63.5867 m1 = 114.2088742 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 corr = (11.1343 - 0.0001 * t + sin(m) * (-3.9137 + t * (0.0073 + t * 0.00002)) + cos(m) * (-3.3861 + t * (-0.0128 + t * 0.00001)) + sin(2.0 * m) * (0.5222 + t * (-0.004 - t * 0.00002)) + cos(2.0 * m) * (0.5929 + t * (0.0039 - t * 0.00002)) + sin(3.0 * m) * (-0.0593 + t * 0.0018) + cos(3.0 * m) * (-0.1733 * t * (-0.0007 + t * 0.00001)) + sin(4.0 * m) * (-0.0053 - t * 0.0006) + cos(4.0 * m) * (0.0476 - t * 0.0001) + sin(5.0 * m) * (0.007 + t * 0.0002) + cos(5.0 * m) * (-0.0115 + t * 0.0001)) to_return = jde0 + corr return Epoch(to_return) @staticmethod def perihelion_aphelion(epoch, perihelion=True): """This method computes the time of Perihelion (or Aphelion) closer to a given epoch. :param epoch: Epoch close to the desired Perihelion (or Aphelion) :type epoch: :py:class:`Epoch` :param peihelion: If True, the epoch of the closest Perihelion is computed, if False, the epoch of the closest Aphelion is found. :type bool: :returns: The epoch of the desired Perihelion (or Aphelion) :rtype: :py:class:`Epoch` :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2000, 1, 1.0) >>> e = Mercury.perihelion_aphelion(epoch) >>> y, m, d, h, mi, s = e.get_full_date() >>> print(y) 2000 >>> print(m) 2 >>> print(d) 15 >>> print(h) 18 >>> epoch = Epoch(2000, 3, 1.0) >>> e = Mercury.perihelion_aphelion(epoch, perihelion=False) >>> y, m, d, h, mi, s = e.get_full_date() >>> print(y) 2000 >>> print(m) 3 >>> print(d) 30 >>> print(h) 17 """ if not isinstance(epoch, Epoch): raise TypeError("Invalid input value") # First approximation k = 4.15201 * (epoch.year() - 2000.12) if perihelion: k = round(k) else: k = round(k + 0.5) - 0.5 jde = 2451590.257 + k * 87.96934963 # Compute the epochs half a day before and after jde_before = jde - 0.5 jde_after = jde + 0.5 # Compute the Sun-Mercury distance for each epoch l, b, r_b = Mercury.geometric_heliocentric_position(Epoch(jde_before)) l, b, r = Mercury.geometric_heliocentric_position(Epoch(jde)) l, b, r_a = Mercury.geometric_heliocentric_position(Epoch(jde_after)) # Call an interpolation object m = Interpolation([jde_before, jde, jde_after], [r_b, r, r_a]) sol = m.minmax() return Epoch(sol) @staticmethod def passage_nodes(epoch, ascending=True): """This function computes the time of passage by the nodes (ascending or descending) of Mercury, nearest to the given epoch. :param epoch: Epoch closest to the node passage :type epoch: :py:class:`Epoch` :param ascending: Whether the time of passage by the ascending (True) or descending (False) node will be computed :type ascending: bool :returns: Tuple containing: - Time of passage through the node (:py:class:`Epoch`) - Radius vector when passing through the node (in AU, float) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2019, 1, 1) >>> time, r = Mercury.passage_nodes(epoch) >>> year, month, day = time.get_date() >>> print(year) 2018 >>> print(month) 11 >>> print(round(day, 1)) 24.7 >>> print(round(r, 4)) 0.3143 """ if not isinstance(epoch, Epoch): raise TypeError("Invalid input types") # Get the orbital parameters l, a, e, i, ome, arg = Mercury.orbital_elements_mean_equinox(epoch) # Compute the time of passage through perihelion t = Mercury.perihelion_aphelion(epoch) # Get the time of passage through the node time, r = passage_nodes_elliptic(arg, e, a, t, ascending) return time, r @staticmethod def magnitude(sun_dist, earth_dist, phase_angle): """This function computes the approximate magnitude of Mercury. :param sun_dist: Distance from Mercury to Sun, in Astronomical Units :type sun_dist: float :param earth_dist: Distance Mercury to Earth, in Astronomical Units :type earth_dist: float :param phase_angle: Mercury phase angle :type phase_angle: float, :py:class:`Angle` :returns: Mercury's magnitude :rtype: float :raises: TypeError if input values are of wrong type. """ if not (isinstance(sun_dist, float) and isinstance(earth_dist, float) and isinstance(phase_angle, (float, Angle))): raise TypeError("Invalid input types") i = float(phase_angle) i50 = i - 50.0 m = (1.16 + 5.0 * log10(sun_dist * earth_dist) + 0.02838 * i50 + 0.0001023 * i50 * i50) return round(m, 1) def main(): # Let's define a small helper function def print_me(msg, val): print("{}: {}".format(msg, val)) # Let's show some uses of Mercury class print("\n" + 35 * "*") print("*** Use of Mercury class") print(35 * "*" + "\n") # Let's now compute the heliocentric position for a given epoch epoch = Epoch(2018, 10, 27.0) lon, lat, r = Mercury.geometric_heliocentric_position(epoch) print_me("Geometric Heliocentric Longitude", lon.to_positive()) print_me("Geometric Heliocentric Latitude", lat) print_me("Radius vector", r) print("") # Compute the geocentric position for 1992/12/20: epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Mercury.geocentric_position(epoch) print_me("Right ascension", ra.ra_str(n_dec=1)) print_me("Declination", dec.dms_str(n_dec=1)) print_me("Elongation", elon.dms_str(n_dec=1)) print("") # Print mean orbital elements for Mercury at 2065.6.24 epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Mercury.orbital_elements_mean_equinox(epoch) print_me("Mean longitude of the planet", round(l, 6)) # 203.494701 print_me("Semimajor axis of the orbit (UA)", round(a, 8)) # 0.38709831 print_me("Eccentricity of the orbit", round(e, 7)) # 0.2056451 print_me("Inclination on plane of the ecliptic", round(i, 6)) # 7.006171 print_me("Longitude of the ascending node", round(ome, 5)) # 49.10765 print_me("Argument of the perihelion", round(arg, 6)) # 29.367732 print("") # Compute the time of the inferior conjunction close to 1993/10/1 epoch = Epoch(1993, 10, 1.0) conjunction = Mercury.inferior_conjunction(epoch) y, m, d = conjunction.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Inferior conjunction date", date) # Compute the time of the superior conjunction close to 1993/10/1 epoch = Epoch(1993, 10, 1.0) conjunction = Mercury.superior_conjunction(epoch) y, m, d = conjunction.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Superior conjunction date", date) print("") # Compute the time and angle of the western elongation close to 1993/11/1 epoch = Epoch(1993, 11, 1.0) time, elongation = Mercury.western_elongation(epoch) y, m, d = time.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Western elongation date", date) elong = round(elongation, 4) print_me("Maximum western elongation angle", elong) print("") # Compute the time and angle of the eastern elongation close to 1990/8/1 epoch = Epoch(1990, 8, 1.0) time, elongation = Mercury.eastern_elongation(epoch) y, m, d = time.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Eastern elongation date", date) elong = round(elongation, 4) print_me("Maximum eastern elongation angle", elong) print("") # Compute the time of the station in longitude #1 close to 1993/10/1 epoch = Epoch(1993, 10, 1.0) sta1 = Mercury.station_longitude_1(epoch) y, m, d = sta1.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Date of station in longitude #1", date) # Compute the time of the station in longitude #2 close to 1993/10/1 epoch = Epoch(1993, 10, 1.0) sta2 = Mercury.station_longitude_2(epoch) y, m, d = sta2.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Date of station in longitude #2", date) print("") # Find the epoch of the Perihelion closer to 2000/01/01 epoch = Epoch(2000, 1, 1.0) e = Mercury.perihelion_aphelion(epoch) y, m, d, h, mi, s = e.get_full_date() peri = str(y) + '/' + str(m) + '/' + str(d) + ' at ' + str(h) + ' hours' print_me("The Perihelion closest to 2000/1/1 happened on", peri) print("") # Compute the time of passage through an ascending node epoch = Epoch(2019, 1, 1) time, r = Mercury.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) print("Time of passage through ascending node: {}/{}/{}".format(y, m, d)) # 2018/11/24.7 print("Radius vector at ascending node: {}".format(round(r, 4))) # 0.3143 if __name__ == "__main__": main() pymeeus-0.3.6/pymeeus/Minor.py000066400000000000000000000400541355545537700163620ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from math import sin, cos, tan, acos, atan, atan2, sqrt from pymeeus.base import TOL from pymeeus.Angle import Angle from pymeeus.Epoch import Epoch from pymeeus.Coordinates import kepler_equation from pymeeus.Sun import Sun """ .. module:: Minor :synopsis: Class to model celestial bodies like comets and minor planets :license: GNU Lesser General Public License v3 (LGPLv3) .. moduleauthor:: Dagoberto Salazar """ class Minor(object): """ Class Minor models minor celestial bodies. """ def __init__(self, q, e, i, omega, w, t): """Minor constructor. The Minor object is initialized with this constructor, setting the orbital values and computing some internal parameters. This constructor is build upon the 'set()' method. :param q: Perihelion distance, in Astronomical Units :type q: float :param e: Eccentricity of the orbit :type e: float :param i: Inclination of the orbit, as an Angle object :type i: :py:class:`Angle` :param omega: Longitude of the ascending node, as an Angle object :type omega: :py:class:`Angle` :param w: Argument of the perihelion, as an Angle object :type w: :py:class:`Angle` :param t: Epoch of passage by perihelion, as an Epoch object :type t: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. """ self._tol = TOL self.set(q, e, i, omega, w, t) def set(self, q, e, i, omega, w, t): """Method used to set the orbital values and set some internal parameters. :param q: Perihelion distance, in Astronomical Units :type q: float :param e: Eccentricity of the orbit :type e: float :param i: Inclination of the orbit, as an Angle object :type i: :py:class:`Angle` :param omega: Longitude of the ascending node, as an Angle object :type omega: :py:class:`Angle` :param w: Argument of the perihelion, as an Angle object :type w: :py:class:`Angle` :param t: Epoch of passage by perihelion, as an Epoch object :type t: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. """ # First check that input value is of correct types if not (isinstance(t, Epoch) and isinstance(q, float) and isinstance(e, float) and isinstance(i, Angle) and isinstance(omega, Angle) and isinstance(w, Angle)): raise TypeError("Invalid input types") # Compute auxiliary quantities se = 0.397777156 ce = 0.917482062 omer = omega.rad() ir = i.rad() f = cos(omer) g = sin(omer) * ce h = sin(omer) * se p = -sin(omer) * cos(ir) qq = cos(omer) * cos(ir) * ce - sin(ir) * se r = cos(omer) * cos(ir) * se + sin(ir) * ce self._aa = atan2(f, p) self._bb = atan2(g, qq) self._cc = atan2(h, r) self._am = sqrt(f * f + p * p) self._bm = sqrt(g * g + qq * qq) self._cm = sqrt(h * h + r * r) # Store some orbital parameters if abs(e - 1.0) > self._tol: self._a = abs(q / (1.0 - e)) else: self._a = q self._q = q self._e = e self._i = i self._omega = omega self._w = w self._t = t # Compute the mean motion from the semi-major axis (degrees/day) self._n = 0.9856076686 / (self._a * sqrt(self._a)) return def _near_parabolic(self, t): """This internal function handles the computation of the true anomaly and the radius vector when the eccentricity is close to 1. :param t: Days since perihelion :type t: float :returns: A tuple containing the true anomaly (as an Angle object) and the radius vector (in Astronomical Units). :rtype: tuple :raises: TypeError if input value is of wrong type, and ValueError if convergence is not possible >>> q = 0.5871018 >>> e = 0.9672746 >>> t = 20.0 >>> i = Angle(0.0) >>> omega = Angle(0.0) >>> w = Angle(0.0) >>> ep = Epoch(2000, 1, 1.5) >>> minor = Minor(q, e, i, omega, w, ep) >>> v, r = minor._near_parabolic(t) >>> print(round(v, 5)) 52.85331 >>> print(round(r, 6)) 0.729116 >>> q = 3.363943 >>> e = 1.05731 >>> t = 1237.1 >>> minor = Minor(q, e, i, omega, w, ep) >>> v, r = minor._near_parabolic(t) >>> print(round(v, 5)) 109.40598 >>> print(round(r, 6)) 10.668551 """ # First check that input value is of correct types if not isinstance(t, float): raise TypeError("Invalid input type") # Let's start defining some constants and renaming some parameters k = 0.01720209895 d1 = 10000 c = 1.0 / 3.0 d = self._tol q = self._q e = self._e q1 = k * sqrt((1.0 + e) / q) / (2.0 * q) g = (1.0 - e) / (1.0 + e) # If t == 0, then r = q and v = 0 if abs(t) > d: q2 = q1 * t s = 2.0 / (3.0 * abs(q2)) s = 2.0 / tan(2.0 * atan(tan(atan(s) / 2) ** c)) if t < 0.0: s = -s # Parabolic case if abs(e - 1.0) < d: v = 2.0 * atan(s) rr = q * (1.0 + e) / (1.0 + e * cos(v)) v = Angle(v, radians=True).to_positive() return v, rr ll = 0.0 s0 = s + 1.0 while abs(s - s0) > d: s0 = s z = 1 y = s * s g1 = -y * s q3 = q2 + 2.0 * g * s * y / 3.0 f = d + 1.0 while abs(f) > d: z += 1 g1 = -g1 * g * y z1 = (z - (z + 1.0) * g) / (2.0 * z + 1.0) f = z1 * g1 q3 = q3 + f if z > 50 or abs(f) > d1: raise ValueError("No convergence") ll += 1 if ll > 50: raise ValueError("No convergence") s1 = s + 1.0 while abs(s - s1) > d: s1 = s s = (2.0 * s * s * s / 3.0 + q3) / (s * s + 1.0) v = 2.0 * atan(s) rr = q * (1.0 + e) / (1.0 + e * cos(v)) v = Angle(v, radians=True).to_positive() return v, rr else: rr = q v = Angle(0.0) return v, rr def geocentric_position(self, epoch): """This method computes the geocentric position of a minor celestial body (right ascension and declination) for the given epoch, and referred to the standard equinox J2000.0. Additionally, it also computes the elongation angle to the Sun. :param epoch: Epoch to compute geocentric position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the right ascension, the declination and the elongation angle to the Sun, as Angle objects :rtype: tuple :raises: TypeError if input value is of wrong type. >>> a = 2.2091404 >>> e = 0.8502196 >>> q = a * (1.0 - e) >>> i = Angle(11.94524) >>> omega = Angle(334.75006) >>> w = Angle(186.23352) >>> t = Epoch(1990, 10, 28.54502) >>> minor = Minor(q, e, i, omega, w, t) >>> epoch = Epoch(1990, 10, 6.0) >>> ra, dec, p = minor.geocentric_position(epoch) >>> print(ra.ra_str(n_dec=1)) 10h 34' 13.7'' >>> print(dec.dms_str(n_dec=0)) 19d 9' 32.0'' >>> print(round(p, 2)) 40.51 >>> t = Epoch(1998, 4, 14.4358) >>> q = 1.487469 >>> e = 1.0 >>> i = Angle(0.0) >>> omega = Angle(0.0) >>> w = Angle(0.0) >>> minor = Minor(q, e, i, omega, w, t) >>> epoch = Epoch(1998, 8, 5.0) >>> ra, dec, p = minor.geocentric_position(epoch) >>> print(ra.ra_str(n_dec=1)) 5h 45' 34.5'' >>> print(dec.dms_str(n_dec=0)) 23d 23' 53.0'' >>> print(round(p, 2)) 45.73 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Get internal parameters aa, bb, cc = self._aa, self._bb, self._cc am, bm, cm = self._am, self._bm, self._cm # Get the mean motion and other orbital parameters n = self._n a = self._a e = self._e w = self._w t = self._t # Time since perihelion t_peri = epoch - t # Now, compute the mean anomaly, in degrees m = t_peri * n m = Angle(m) if e < 0.98: # Elliptic case # With the mean anomaly, use Kepler's equation to find E and v ee, v = kepler_equation(e, m) ee = Angle(ee).to_positive() # Get r er = ee.rad() rr = a * (1.0 - e * cos(er)) elif abs(e - 1.0) < self._tol: # Parabolic case q = self._q ww = (0.03649116245 * (epoch - self._t)) / (q * sqrt(q)) sp = ww / 3.0 iterate = True while iterate: s = (2.0 * sp * sp * sp + ww) / (3.0 * (sp * sp + 1.0)) iterate = abs(s - sp) > self._tol sp = s v = 2.0 * atan(s) v = Angle(v, radians=True) rr = q * (1.0 + s * s) else: # We are in the near-parabolic case v, rr = self._near_parabolic(t_peri) # Compute the heliocentric rectangular equatorial coordinates wr = w.rad() vr = Angle(v).rad() x = rr * am * sin(aa + wr + vr) y = rr * bm * sin(bb + wr + vr) z = rr * cm * sin(cc + wr + vr) # Now let's compute Sun's rectangular coordinates xs, ys, zs = Sun.rectangular_coordinates_j2000(epoch) xi = x + xs eta = y + ys zeta = z + zs delta = sqrt(xi * xi + eta * eta + zeta * zeta) # We need to correct for the effect of light-time. Compute delay tau tau = 0.0057755183 * delta # Recompute some critical parameters t_peri = epoch - t - tau # Now, compute the mean anomaly, in degrees m = t_peri * n m = Angle(m) if e < 0.98: # Elliptic case # With the mean anomaly, use Kepler's equation to find E and v ee, v = kepler_equation(e, m) ee = Angle(ee).to_positive() # Get r er = ee.rad() rr = a * (1.0 - e * cos(er)) elif abs(e - 1.0) < self._tol: # Parabolic case q = self._q ww = (0.03649116245 * (epoch - self._t)) / (q * sqrt(q)) sp = ww / 3.0 iterate = True while iterate: s = (2.0 * sp * sp * sp + ww) / (3.0 * (sp * sp + 1.0)) iterate = abs(s - sp) > self._tol sp = s v = 2.0 * atan(s) v = Angle(v, radians=True) rr = q * (1.0 + s * s) else: # We are in the near-parabolic case v, rr = self._near_parabolic(t_peri) # Compute the heliocentric rectangular equatorial coordinates wr = w.rad() vr = Angle(v).rad() x = rr * am * sin(aa + wr + vr) y = rr * bm * sin(bb + wr + vr) z = rr * cm * sin(cc + wr + vr) xi = x + xs eta = y + ys zeta = z + zs ra = Angle(atan2(eta, xi), radians=True) dec = Angle(atan2(zeta, sqrt(xi * xi + eta * eta)), radians=True) r_sun = sqrt(xs * xs + ys * ys + zs * zs) psi = acos((xi * xs + eta * ys + zeta * zs) / (r_sun * delta)) psi = Angle(psi, radians=True) return ra, dec, psi def heliocentric_ecliptical_position(self, epoch): """This method computes the heliocentric position of a minor celestial body, providing the result in ecliptical coordinates. :param epoch: Epoch to compute geocentric position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing longitude and latitude, as Angle objects :rtype: tuple :raises: TypeError if input value is of wrong type. >>> a = 2.2091404 >>> e = 0.8502196 >>> q = a * (1.0 - e) >>> i = Angle(11.94524) >>> omega = Angle(334.75006) >>> w = Angle(186.23352) >>> t = Epoch(1990, 10, 28.54502) >>> epoch = Epoch(1990, 10, 6.0) >>> minor = Minor(q, e, i, omega, w, t) >>> lon, lat = minor.heliocentric_ecliptical_position(epoch) >>> print(lon.dms_str(n_dec=1)) 66d 51' 57.8'' >>> print(lat.dms_str(n_dec=1)) 11d 56' 14.4'' """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Get the mean motion and other orbital parameters n = self._n a = self._a e = self._e i = self._i omega = self._omega w = self._w t = self._t # Time since perihelion t_peri = epoch - t # Now, compute the mean anomaly, in degrees m = t_peri * n m = Angle(m) # With the mean anomaly, use Kepler's equation to find E and v ee, v = kepler_equation(e, m) ee = Angle(ee).to_positive() # Get r er = ee.rad() r = a * (1.0 - e * cos(er)) # Compute the heliocentric rectangular ecliptical coordinates wr = w.rad() vr = Angle(v).rad() ur = wr + vr omer = omega.rad() ir = i.rad() x = r * (cos(omer) * cos(ur) - sin(omer) * sin(ur) * cos(ir)) y = r * (sin(omer) * cos(ur) + cos(omer) * sin(ur) * cos(ir)) z = r * sin(ir) * sin(ur) lon = atan2(y, x) lat = atan2(z, sqrt(x * x + y * y)) return Angle(lon, radians=True), Angle(lat, radians=True) def main(): # Let's define a small helper function def print_me(msg, val): print("{}: {}".format(msg, val)) # Let's show some uses of Minor class print("\n" + 35 * "*") print("*** Use of Minor class") print(35 * "*" + "\n") # Let's compute the equatorial coordinates of comet Encke a = 2.2091404 e = 0.8502196 q = a * (1.0 - e) i = Angle(11.94524) omega = Angle(334.75006) w = Angle(186.23352) t = Epoch(1990, 10, 28.54502) epoch = Epoch(1990, 10, 6.0) minor = Minor(q, e, i, omega, w, t) ra, dec, elong = minor.geocentric_position(epoch) print_me("Right ascension", ra.ra_str(n_dec=1)) # 10h 34' 13.7'' print_me("Declination", dec.dms_str(n_dec=0)) # 19d 9' 32.0'' print_me("Elongation", round(elong, 2)) # 40.51 print("") # Now compute the heliocentric ecliptical coordinates lon, lat = minor.heliocentric_ecliptical_position(epoch) print_me("Heliocentric ecliptical longitude", lon.dms_str(n_dec=1)) # 66d 51' 57.8'' print_me("Heliocentric ecliptical latitude", lat.dms_str(n_dec=1)) # 11d 56' 14.4'' if __name__ == "__main__": main() pymeeus-0.3.6/pymeeus/Neptune.py000066400000000000000000003355011355545537700167200ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from math import sin, cos, tan, acos, atan2, sqrt, radians, log10 from pymeeus.Angle import Angle from pymeeus.Epoch import Epoch, JDE2000 from pymeeus.Coordinates import ( geometric_vsop_pos, apparent_vsop_pos, orbital_elements, nutation_longitude, true_obliquity, ecliptical2equatorial ) from pymeeus.Earth import Earth from pymeeus.Sun import Sun """ .. module:: Neptune :synopsis: Class to model Neptune planet :license: GNU Lesser General Public License v3 (LGPLv3) .. moduleauthor:: Dagoberto Salazar """ VSOP87_L = [ # L0 [ [531188633.047, 0.00000000000, 0.00000000000], [1798475.509, 2.90101273050, 38.13303563780], [1019727.662, 0.48580923660, 1.48447270830], [124531.845, 4.83008090682, 36.64856292950], [42064.450, 5.41054991607, 2.96894541660], [37714.589, 6.09221834946, 35.16409022120], [33784.734, 1.24488865578, 76.26607127560], [16482.741, 0.00007729261, 491.55792945680], [9198.582, 4.93747059924, 39.61750834610], [8994.249, 0.27462142569, 175.16605980020], [4216.235, 1.98711914364, 73.29712585900], [3364.818, 1.03590121818, 33.67961751290], [2284.800, 4.20606932559, 4.45341812490], [1433.512, 2.78340432711, 74.78159856730], [900.240, 2.07606702418, 109.94568878850], [744.996, 3.19032530145, 71.81265315070], [506.206, 5.74785370252, 114.39910691340], [399.552, 0.34972342569, 1021.24889455140], [345.195, 3.46186210169, 41.10198105440], [306.338, 0.49684039897, 0.52126486180], [287.322, 4.50523446022, 0.04818410980], [323.004, 2.24815188609, 32.19514480460], [340.323, 3.30369900416, 77.75054398390], [266.605, 4.88932609483, 0.96320784650], [227.079, 1.79713054538, 453.42489381900], [244.722, 1.24693337933, 9.56122755560], [232.887, 2.50459795017, 137.03302416240], [282.170, 2.24565579693, 146.59425171800], [251.941, 5.78166597292, 388.46515523820], [150.180, 2.99706110414, 5.93789083320], [170.404, 3.32390630650, 108.46121608020], [151.401, 2.19153094280, 33.94024994380], [148.295, 0.85948986145, 111.43016149680], [118.672, 3.67706204305, 2.44768055480], [101.821, 5.70539236951, 0.11187458460], [97.873, 2.80518260528, 8.07675484730], [103.054, 4.40441222000, 70.32818044240], [103.305, 0.04078966679, 0.26063243090], [109.300, 2.41599378049, 183.24281464750], [73.938, 1.32805041516, 529.69096509460], [77.725, 4.16446516424, 4.19278569400], [86.379, 4.22834506045, 490.07345674850], [81.536, 5.19908046216, 493.04240216510], [71.503, 5.29530386579, 350.33211960040], [64.418, 3.54541016050, 168.05251279940], [62.570, 0.15028731465, 182.27960680100], [58.488, 3.50106873945, 145.10977900970], [48.276, 1.11259925628, 112.91463420510], [47.229, 4.57373229818, 46.20979048510], [39.124, 1.66569356050, 213.29909543800], [47.728, 0.12906212461, 484.44438245600], [46.858, 3.01699530327, 498.67147645760], [38.659, 2.38685706479, 2.92076130680], [47.046, 4.49844660400, 173.68158709190], [47.565, 2.58404814824, 219.89137757700], [44.714, 5.47302733614, 176.65053250850], [32.279, 3.45759151220, 30.71067209630], [28.249, 4.13282446716, 6.59228213900], [24.433, 4.55736848232, 106.97674337190], [24.661, 3.67822620786, 181.75834193920], [24.505, 1.55095867965, 7.11354700080], [21.848, 1.04366818343, 39.09624348430], [16.936, 6.10896452834, 44.72531777680], [22.169, 2.74932970271, 256.53994050650], [16.614, 4.98188930613, 37.61177077600], [17.728, 3.55049134167, 1.37259812370], [17.347, 2.14069234880, 42.58645376270], [14.953, 3.36405649131, 98.89998852460], [14.566, 0.69857991985, 1550.93985964600], [15.676, 6.22010212025, 454.90936652730], [13.243, 5.61712542227, 68.84370773410], [14.837, 3.52557245517, 25.60286266560], [12.757, 0.04509743861, 11.04570026390], [11.988, 4.81687553351, 24.11838995730], [11.060, 1.78958277553, 7.42236354150], [12.108, 1.87022663714, 79.23501669220], [11.698, 0.49005698002, 1.59634729290], [10.459, 2.38743199893, 381.35160823740], [11.681, 3.85151357766, 218.40690486870], [8.744, 0.14168568610, 148.07872442630], [9.196, 1.00274090619, 72.07328558160], [11.343, 0.81432278263, 525.49817940060], [10.097, 5.03383557061, 601.76425067620], [8.035, 1.77685723010, 0.21244832110], [8.382, 3.07534786987, 1.27202438720], [10.803, 2.92081211459, 293.18850343600], [7.666, 1.52223325105, 115.88357962170], [7.531, 5.37537256533, 5.10780943070], [8.691, 4.74352784364, 143.62530630140], [10.183, 1.15395455831, 6244.94281435360], [8.283, 0.35956716764, 138.51749687070], [9.544, 4.02452832984, 152.53214255120], [7.274, 4.10937535938, 251.43213107580], [7.465, 1.72131945843, 31.01948863700], [6.902, 4.62452068308, 2.70831298570], [7.094, 5.11528393609, 312.19908396260], [7.929, 2.10765101655, 27.08733537390], [6.156, 3.50746507109, 28.57180808220], [7.134, 2.05292376023, 278.25883401880], [8.193, 2.58588219154, 141.22580985640], [5.499, 2.09250039025, 1.69692102940], [5.279, 4.09390686798, 983.11585891360], [6.947, 3.48041784595, 415.29185818120], [5.916, 0.68957324226, 62.25142559510], [5.925, 4.02504592620, 255.05546779820], [4.606, 1.17779101436, 43.24084506850], [5.357, 3.63061058987, 5.41662597140], [5.918, 2.57693824084, 10175.15251057320], [5.482, 3.07979737280, 329.83706636550], [3.956, 5.00418696742, 184.72728735580], [5.408, 3.31313295602, 528.20649238630], [4.767, 4.91981150665, 456.39383923560], [3.770, 1.57277409442, 32.71640966640], [3.924, 4.92763242635, 180.27386923090], [3.707, 4.82965453201, 221.37585028530], [3.802, 4.96279204998, 594.65070367540], [4.014, 1.63905164030, 40.58071619260], [3.061, 0.39713858313, 1.43628859850], [3.261, 4.65478978469, 29.22619938800], [3.474, 5.65891305944, 395.57870223900], [2.918, 5.91079083895, 1.22384027740], [3.649, 3.88114678609, 494.52687487340], [3.225, 5.57423738665, 1014.13534755060], [2.845, 0.56009386585, 144.14657116320], [2.848, 0.55423029727, 567.82400073240], [3.440, 1.70887250883, 12.53017297220], [3.267, 5.63287799820, 488.58898404020], [3.107, 5.79335949207, 105.49227066360], [2.712, 2.43726364359, 60.76695288680], [3.202, 2.21483496593, 41.05379694460], [3.134, 4.69665220513, 82.85835341460], [3.590, 5.69939670162, 1124.34166877000], [2.967, 0.54448940101, 135.54855145410], [3.211, 4.19927605853, 291.70403072770], [2.899, 5.99669788291, 22.63391724900], [3.143, 2.93495725805, 31.23193695810], [2.729, 4.62707721219, 5.62907429250], [2.513, 5.60391563025, 19.12245511120], [2.690, 5.32070128202, 2.00573757010], [2.630, 6.00855841124, 37.16982779130], [2.296, 6.06934502789, 451.94042111070], [2.858, 4.88677262419, 258.02441321480], [2.879, 5.12239168488, 38.65430049960], [2.270, 2.08634524182, 30.05628079050], [2.301, 3.35951602914, 1028.36244155220], [3.001, 3.59143817947, 211.81462272970], [2.237, 0.38455553470, 3.62333672240], [2.901, 3.24755614136, 366.48562929500], [2.592, 1.36262641469, 35.42472265210], [2.418, 4.93467056526, 47.69426319340], [2.089, 5.79838063413, 4.66586644600], [2.586, 2.69392971321, 38.18121974760], [1.913, 5.53560681085, 149.56319713460], [1.971, 6.00790964671, 34.20088237470], [2.586, 6.24984047544, 38.08485152800], [2.098, 4.57819744766, 1019.76442184310], [1.869, 3.85907708723, 911.04257333200], [2.486, 5.21235809332, 140.00196957900], [1.795, 1.68012868451, 1059.38193018920], [2.326, 2.82664069146, 807.94979911340], [1.984, 5.54763522932, 1022.73336725970], [1.919, 5.10717766499, 216.92243216040], [2.004, 5.47811228948, 63.73589830340], [2.021, 4.15631916516, 178.13500521680], [1.760, 6.00927149342, 172.19711438360], [2.140, 2.65037925793, 700.66423920080], [1.988, 3.35850272780, 186.21176006410], [1.956, 5.01527508588, 294.67297614430], [1.966, 4.07957525462, 20.60692781950], [1.637, 0.53823942149, 67.35923502580], [1.540, 2.62327849119, 41.75637236020], [1.810, 5.81430038477, 129.91947716160], [1.776, 4.37047808449, 328.35259365720], [1.460, 2.63664516309, 2.85707083200], [1.388, 2.10598045632, 3.93215326310], [1.352, 0.55618245459, 0.65439130580], [1.668, 2.77543377384, 16.15350969460], [1.338, 0.37643611305, 14.01464568050], [1.218, 0.73456434750, 426.59819087600], [1.531, 4.54891769768, 526.72201967800], [1.610, 3.40993944436, 403.13419222450], [1.361, 4.48227243414, 17.63798240290], [1.589, 5.59323020112, 3302.47939106200], [1.132, 5.64520725360, 151.04766984290], [1.357, 4.06399031430, 26.82670294300], [1.494, 4.98692049495, 666.72398925700], [1.077, 4.30911470250, 0.63313944640], [1.042, 6.02756893581, 106.01353552540], [1.060, 0.74679491358, 487.36514376280], [1.310, 3.78526380930, 386.98068252990], [1.342, 4.52685061062, 563.63121503840], [0.986, 0.00600924269, 81.37388070630], [1.232, 5.17443930901, 331.32153907380], [0.929, 4.51267465978, 38.39366806870], [0.956, 3.50447791020, 64.95973858080], [0.929, 4.43109514438, 37.87240320690], [0.926, 6.09803297747, 4.14460158420], [0.972, 0.59038366513, 8.90683624980], [1.246, 4.69840351226, 389.94962794650], [1.009, 5.98451242784, 142.14083359310], [1.020, 0.83233892300, 39.35687591520], [1.013, 0.37845630298, 36.90919536040], [0.940, 2.42688145966, 343.21857259960], [0.974, 5.23958752786, 253.57099508990], [0.964, 5.09748190218, 357.44566660120], [0.835, 1.45568626670, 35.21227433100], [1.077, 0.71409061316, 44.07092647100], [1.083, 2.27578897621, 6.90109867970], [0.938, 5.03471583911, 69.36497259590], [1.078, 1.20253141912, 35.68535508300], [1.027, 0.18243183397, 84.34282612290], [0.764, 4.62720907712, 0.83008140250], [1.013, 0.42234855022, 32.45577723550], [0.939, 4.50445799766, 365.00115658670], [0.756, 0.82872484717, 17.52610781830], [0.916, 3.89409205418, 38.24491022240], [0.736, 4.78125743795, 5.36844186160], [0.762, 0.01897337130, 189.39315380180], [0.738, 2.31770478416, 42.32582133180], [0.860, 4.82440483506, 210.33015002140], [0.888, 3.20360339895, 348.84764689210], [0.916, 5.04967792934, 38.02116105320], [0.638, 0.63267396269, 244.31858407500], [0.636, 1.02615137352, 2080.63082474060], [0.774, 5.44432678139, 367.97010200330], [0.644, 1.94044989547, 446.31134681820], [0.631, 4.82928491724, 460.53844081980], [0.855, 3.57592750113, 439.78275515400], [0.678, 4.48687912809, 351.81659230870], [0.724, 4.89141609280, 119.50691634410], [0.594, 0.59315717529, 491.03666459500], [0.655, 1.99014093000, 19.01058052660], [0.580, 2.57189536188, 492.07919431860], [0.694, 0.08328521209, 5.67725840230], [0.733, 5.81485239057, 29.74746424980], [0.666, 3.42196897591, 179.09821306330], [0.678, 0.29428615814, 171.23390653710], [0.635, 2.13805182663, 164.12035953630], [0.623, 5.61454940380, 285.37238101960], [0.529, 1.88063108785, 416.77633088950], [0.529, 5.13250788030, 697.74347789400], [0.500, 1.49548514415, 704.85702489480], [0.487, 4.97772067947, 274.06604832480], [0.666, 6.26456825266, 1474.67378837040], [0.532, 0.25784352716, 477.33083545520], [0.557, 0.71378452161, 80.71948940050], [0.556, 2.60791360513, 418.26080359780], [0.584, 4.29064541383, 16.67477455640], [0.524, 5.42759392280, 290.21955801940], [0.524, 0.29054995359, 247.23934538180], [0.541, 4.36400580938, 815.06334611420], [0.526, 1.66512720297, 97.41551581630], [0.497, 4.72640318293, 401.64971951620], [0.432, 2.98481475894, 100.38446123290], [0.382, 0.28067758468, 8.38557138800], [0.424, 6.16774845481, 178.78939652260], [0.484, 0.01535318279, 738.79727483860], [0.518, 4.48916591410, 875.83029900100], [0.506, 5.38611121207, 404.61866493280], [0.396, 4.62747640832, 6.15033915430], [0.466, 0.23340415764, 120.99138905240], [0.409, 3.08849480895, 59.28248017850], [0.470, 5.01853200224, 313.68355667090], [0.442, 3.68919475089, 457.87831194390], [0.384, 3.69499925394, 160.93896579860], [0.364, 0.76192181046, 104.00779795530], [0.416, 0.26652109651, 103.09277421860], [0.401, 4.06530055968, 14.66903698630], [0.454, 3.72767803715, 476.43131808350], [0.434, 0.33533802200, 984.60033162190], [0.340, 0.99915726716, 31.54075349880], [0.420, 3.65147769268, 20.49505323490], [0.334, 0.35121412008, 1227.43444298860], [0.323, 5.45836731979, 918.15612033280], [0.407, 4.19457842203, 309.79958751760], [0.381, 0.01364856960, 495.49008271990], [0.334, 4.05924071124, 8.33738727820], [0.380, 3.17063415023, 487.62577619370], [0.309, 0.48352303405, 118.02244363580], [0.380, 2.70238752925, 134.11226285560], [0.362, 4.88985810610, 438.29828244570], [0.327, 2.91090790412, 505.78502345840], [0.308, 0.96082817124, 21.14944454070], [0.288, 1.48123872077, 220.41264243880], [0.293, 2.56582281789, 662.53120356300], [0.331, 4.37715965811, 180.79513409270], [0.326, 2.46104924164, 169.53698550770], [0.289, 2.63591886391, 55.77101804070], [0.288, 5.02487283285, 1440.73353842660], [0.344, 1.48930997270, 166.56804009110], [0.266, 0.63672427386, 79.18683258240], [0.268, 5.02354540478, 377.41945497430], [0.308, 1.50185265748, 77.22927912210], [0.324, 5.30240189273, 457.61767951300], [0.265, 1.08736632800, 450.45594840240], [0.264, 0.83337660655, 488.37653571910], [0.290, 1.80003152563, 101.86893394120], [0.262, 2.30390003360, 494.73932319450], [0.325, 5.52669889053, 441.26722786230], [0.254, 0.02963623277, 117.36805233000], [0.300, 0.17435705540, 252.91660378410], [0.315, 5.34885013040, 183.76407950930], [0.313, 5.45945846595, 13.49338081870], [0.306, 5.23085809622, 45.24658263860], [0.237, 0.32676889138, 208.84567731310], [0.263, 2.66670785888, 464.73122651380], [0.234, 1.82700149824, 52175.80628314840], [0.275, 5.04385701142, 156.15547927360], [0.265, 5.64967127743, 326.86812094890], [0.247, 1.74540930625, 65.87476231750], [0.269, 6.09827783249, 1654.03263386460], [0.229, 2.25832077914, 190.66517818900], [0.294, 5.45249564193, 206.18554843720], [0.238, 1.55647021369, 79.88940799800], [0.230, 6.13158632762, 178.34745353790], [0.274, 4.10829870815, 518.38463239980], [0.225, 3.86300359251, 171.98466606250], [0.228, 2.48511565618, 12566.15169998280], [0.272, 5.61149862463, 148.33935685720], [0.214, 1.45987216039, 522.57741809380], [0.211, 4.04791980901, 6205.32530600750], [0.266, 0.99036038827, 209.10630974400], [0.230, 0.54049951530, 532.61172640140], [0.226, 3.84152961620, 283.62727588040], [0.243, 5.32730346969, 485.92885516430], [0.209, 4.35051470487, 536.80451209540], [0.232, 3.01948719112, 10.93382567930], [0.264, 5.70536379124, 490.33408917940], [0.280, 3.99993658196, 674.80074410430], [0.246, 0.37698964335, 157.63995198190], [0.219, 5.67679857772, 52099.54021187280], [0.251, 1.52353965506, 6.85291456990], [0.203, 5.44328656642, 145.63104387150], [0.238, 0.96169723853, 497.18700374930], [0.219, 4.52300776062, 1615.89959822680], [0.275, 2.37619210741, 2118.76386037840], [0.258, 5.12448148780, 608.87779767700], [0.260, 3.88543008475, 513.07988101300], [0.191, 3.72574595369, 65.22037101170], [0.211, 0.06484535455, 215.43795945210], [0.236, 3.95835282821, 141.48644228730], [0.189, 5.28135043909, 377.15882254340], [0.243, 4.35559878377, 482.95990974770], [0.243, 6.06808644973, 154.01661525950], [0.249, 1.57215637373, 14.22709400160], [0.238, 1.93340192445, 500.15594916590], [0.209, 5.02893682321, 364.55921360200], [0.227, 5.72984298540, 1543.82631264520], [0.217, 2.45036922991, 187.17496791060], [0.181, 1.65699502247, 1627.20593092160], [0.214, 1.60213179145, 11.30633269480], [0.203, 0.74638490279, 14.55716240170], [0.192, 3.17719161639, 343.47920503050], [0.177, 1.50027795761, 9.44935297100], [0.177, 0.03038098292, 165.60483224460], [0.176, 4.64462444674, 315.16802937920], [0.208, 2.65835778368, 496.01134758170], [0.174, 2.76155855705, 49.17873590170], [0.196, 1.95549714182, 335.77495719870], [0.200, 4.16839394758, 285.11174858870], [0.199, 0.06168021293, 73.55775828990], [0.188, 6.17288913873, 535.32003938710], [0.215, 1.92414563346, 552.69738935910], [0.166, 5.49038139690, 10135.53500222710], [0.192, 0.96973434120, 304.23420369990], [0.209, 5.34065233845, 13.64213866500], [0.203, 5.11234865419, 324.72925693480], [0.177, 3.50680841790, 207.36120460480], [0.174, 1.95010708561, 319.31263096340], [0.187, 5.57685931698, 266.10116806210], [0.181, 1.43525075751, 279.74330672710], [0.165, 4.00537112057, 493.56366702690], [0.191, 1.68313683465, 563.37058260750], [0.173, 3.93200456456, 238.90195810360], [0.161, 5.96143146317, 36.12729806770], [0.194, 2.37664231450, 944.98282327580], [0.165, 0.97421918976, 556.51766803760], [0.189, 1.11279570541, 1127.26243007680], [0.172, 0.75085513952, 267.58564077040], [0.193, 2.12636756833, 20350.30502114640], [0.181, 2.10814562080, 113.87784205160], [0.194, 1.13504964219, 57.25549074900], [0.181, 6.23699820519, 355.96119389290], [0.198, 5.68125942959, 6280.10690457480], [0.173, 5.15083799917, 474.94684537520], [0.151, 1.66981962338, 116.53797092750], [0.150, 5.42593657173, 526.98265210890], [0.205, 4.16096717573, 711.44930703380], [0.177, 3.49360697678, 421.22974901440], [0.168, 0.52839230204, 487.10451133190], [0.160, 4.77712663799, 524.01370669230], [0.145, 2.81448128781, 1512.80682400820], [0.146, 4.99570112660, 142.66209845490], [0.188, 0.82104161550, 10210.31660079440], [0.145, 4.96888131586, 1189.30140735080], [0.181, 2.99704790590, 75.74480641380], [0.176, 0.41626373842, 222.86032299360], [0.137, 2.96534226337, 6206.80977871580], [0.138, 1.22260849471, 187.69623277240], [0.128, 2.53394068407, 276.77436131050], [0.130, 3.04810765699, 310.71461125430], [0.122, 3.01323006886, 70.84944530420], [0.111, 0.77449448649, 179.35884549420], [0.141, 0.18423889807, 131.40394986990], [0.126, 5.77648809669, 525.23754696970], [0.124, 2.93225731024, 179.61947792510], [0.111, 6.18471578216, 981.63138620530], [0.141, 2.63342951123, 381.61224066830], [0.110, 5.25053027081, 986.08480433020], [0.096, 3.86591534559, 240.12579838100], [0.120, 3.78755085035, 1057.89745748090], [0.093, 4.54014016637, 36.69674703930], [0.109, 1.53327585900, 419.74527630610], [0.094, 4.21870300178, 1024.21783996800], [0.109, 2.15905156247, 289.56516671360], [0.104, 0.20665642552, 564.85505531580], [0.081, 1.89134135215, 36.60037881970], [0.080, 4.38832594589, 10137.01947493540], [0.080, 1.73940577376, 39.50563376150], [0.084, 0.81316746605, 170.71264167530], [0.090, 0.60145818457, 36.76043751410], [0.074, 4.92511651321, 1549.45538693770], [0.072, 5.06852406179, 249.94765836750], ], # L1 [ [3837687716.731, 0.00000000000, 0.00000000000], [16604.187, 4.86319129565, 1.48447270830], [15807.148, 2.27923488532, 38.13303563780], [3334.701, 3.68199676020, 76.26607127560], [1305.840, 3.67320813491, 2.96894541660], [604.832, 1.50477747549, 35.16409022120], [178.623, 3.45318524147, 39.61750834610], [106.537, 2.45126138334, 4.45341812490], [105.747, 2.75479326550, 33.67961751290], [72.684, 5.48724732699, 36.64856292950], [57.069, 5.21649804970, 0.52126486180], [57.355, 1.85767603384, 114.39910691340], [35.368, 4.51676827545, 74.78159856730], [32.216, 5.90411489680, 77.75054398390], [29.871, 3.67043294114, 388.46515523820], [28.866, 5.16877529164, 9.56122755560], [28.742, 5.16732589024, 2.44768055480], [25.507, 5.24526281928, 168.05251279940], [24.869, 4.73193067810, 182.27960680100], [20.205, 5.78945415677, 1021.24889455140], [19.022, 1.82981144269, 484.44438245600], [18.661, 1.31606255521, 498.67147645760], [15.063, 4.95003893760, 137.03302416240], [15.094, 3.98705254940, 32.19514480460], [10.720, 2.44148149225, 4.19278569400], [11.725, 4.89255650674, 71.81265315070], [9.581, 1.23188039594, 5.93789083320], [9.606, 1.88534821556, 41.10198105440], [8.968, 0.01758559103, 8.07675484730], [9.882, 6.08165628679, 7.11354700080], [7.632, 5.51307048241, 73.29712585900], [6.992, 0.61688864282, 2.92076130680], [5.543, 2.24141557794, 46.20979048510], [4.845, 3.71055823750, 112.91463420510], [3.700, 5.25713252333, 111.43016149680], [3.233, 6.10303038418, 70.32818044240], [2.939, 4.86520586648, 98.89998852460], [2.403, 2.90637675099, 601.76425067620], [2.398, 1.04343654629, 6.59228213900], [2.784, 4.95821114677, 108.46121608020], [2.894, 4.20148844767, 381.35160823740], [2.111, 5.93089610785, 25.60286266560], [2.075, 5.20632201951, 30.71067209630], [2.126, 0.54976393136, 41.05379694460], [2.235, 2.38045158073, 453.42489381900], [1.859, 0.89409373259, 24.11838995730], [2.018, 3.42245274178, 31.01948863700], [1.700, 3.91715254287, 11.04570026390], [1.776, 3.86571077241, 395.57870223900], [1.644, 0.15855999051, 152.53214255120], [1.646, 3.34591387314, 44.72531777680], [1.876, 2.59784179105, 33.94024994380], [1.614, 0.42137145545, 175.16605980020], [1.468, 6.12983933526, 1550.93985964600], [1.408, 6.13722948564, 490.07345674850], [1.207, 0.59525736062, 312.19908396260], [1.336, 3.28611928206, 493.04240216510], [1.176, 5.87266726996, 5.41662597140], [1.517, 3.12967210501, 491.55792945680], [1.053, 4.60375516830, 79.23501669220], [1.037, 4.89007314395, 1.27202438720], [1.034, 5.93741289103, 32.71640966640], [1.038, 1.13470380744, 1014.13534755060], [1.002, 1.85850922283, 5.10780943070], [0.983, 0.05345050384, 7.42236354150], [0.998, 1.73689827444, 1028.36244155220], [1.193, 4.63176675581, 60.76695288680], [0.940, 3.09103721222, 62.25142559510], [0.994, 4.11489180313, 4.66586644600], [0.890, 0.87049255398, 31.23193695810], [0.852, 5.35508394316, 144.14657116320], [0.922, 5.12373360511, 145.10977900970], [0.789, 0.37496785039, 26.82670294300], [0.828, 4.06035194600, 115.88357962170], [0.711, 3.14189997439, 278.25883401880], [0.727, 1.39718382835, 213.29909543800], [0.781, 0.10946327923, 173.68158709190], [0.793, 6.13086312116, 567.82400073240], [0.669, 4.50554989443, 27.08733537390], [0.825, 1.35568908148, 129.91947716160], [0.738, 3.56766018960, 176.65053250850], [0.714, 6.24797992301, 106.97674337190], [0.654, 1.13177751192, 68.84370773410], [0.624, 0.01567750666, 28.57180808220], [0.608, 4.60180625368, 189.39315380180], [0.595, 0.00857468445, 42.58645376270], [0.530, 5.61201247153, 12.53017297220], [0.521, 1.02371768017, 415.29185818120], [0.639, 0.68930265745, 529.69096509460], [0.526, 3.02138731705, 5.62907429250], [0.456, 4.44331571392, 43.24084506850], [0.524, 3.43316448349, 38.65430049960], [0.436, 2.41630174435, 82.85835341460], [0.424, 1.95736011325, 477.33083545520], [0.443, 3.39350946329, 357.44566660120], [0.383, 1.90232196422, 22.63391724900], [0.479, 5.55141744216, 37.61177077600], [0.462, 3.80436154644, 343.21857259960], [0.384, 5.60377408953, 594.65070367540], [0.369, 4.45577410338, 6.90109867970], [0.358, 3.69126616347, 3.93215326310], [0.352, 3.10952926034, 135.54855145410], [0.368, 3.53577440355, 40.58071619260], [0.424, 5.27159202779, 181.75834193920], [0.361, 0.29018303419, 72.07328558160], [0.390, 5.49512204296, 350.33211960040], [0.378, 2.74122401337, 488.37653571910], [0.372, 0.39980033572, 494.73932319450], [0.353, 1.10614174053, 20.60692781950], [0.296, 0.86351261285, 149.56319713460], [0.307, 5.39420288683, 160.93896579860], [0.395, 1.93577214824, 10137.01947493540], [0.288, 2.28755739359, 47.69426319340], [0.295, 2.48737537240, 19.12245511120], [0.290, 0.18636083306, 143.62530630140], [0.266, 3.09977370364, 69.36497259590], [0.266, 1.21002824826, 505.78502345840], [0.252, 3.12745026026, 460.53844081980], [0.328, 0.50849285663, 6206.80977871580], [0.257, 3.64119914774, 446.31134681820], [0.239, 5.54080102299, 911.04257333200], [0.265, 0.62702473701, 253.57099508990], [0.287, 2.44403568436, 16.67477455640], [0.231, 2.47026250085, 454.90936652730], [0.230, 3.24571542922, 1066.49547719000], [0.282, 1.48595620175, 983.11585891360], [0.212, 5.41931177641, 64.95973858080], [0.213, 1.64175339637, 1089.12939443900], [0.238, 2.69801319489, 882.94384600180], [0.210, 4.53976756699, 1093.32218013300], [0.220, 2.30038816175, 1052.26838318840], [0.256, 0.42073598460, 23.90594163620], [0.216, 5.44225918870, 39.09624348430], [0.201, 2.58746514605, 119.50691634410], [0.224, 4.43751392203, 639.89728631400], [0.186, 2.50651218075, 487.36514376280], [0.189, 4.05785534221, 120.99138905240], [0.184, 2.24245977278, 815.06334611420], [0.202, 3.43517732411, 45.24658263860], [0.175, 4.49165234532, 171.23390653710], [0.171, 5.50633466316, 179.09821306330], [0.200, 6.12663205401, 14.22709400160], [0.173, 2.61090344107, 389.94962794650], [0.167, 3.94754384833, 77.22927912210], [0.166, 3.41009128748, 81.37388070630], [0.163, 3.88198848446, 556.51766803760], [0.164, 1.49614763046, 63.73589830340], [0.176, 3.86129425367, 148.33935685720], [0.161, 2.22215642318, 574.93754773320], [0.171, 0.66899426684, 179.31066138440], [0.161, 1.21480182441, 1024.43028828910], [0.155, 3.25842414799, 10251.41858184880], [0.183, 5.45168150656, 218.40690486870], [0.152, 3.35145509017, 285.37238101960], [0.152, 0.42398786475, 274.06604832480], [0.146, 5.70714579127, 419.48464387520], [0.156, 0.64321524870, 1029.84691426050], [0.147, 4.30958930740, 157.63995198190], [0.147, 1.80689177510, 377.41945497430], [0.140, 1.49826604627, 386.98068252990], [0.137, 2.14480243915, 563.63121503840], [0.127, 3.98726599710, 84.34282612290], [0.134, 4.16039455079, 169.53698550770], [0.121, 0.29300927469, 206.18554843720], [0.129, 2.67625057010, 180.79513409270], [0.134, 3.18868986487, 166.56804009110], [0.135, 5.07517561780, 426.59819087600], [0.136, 1.81672451740, 151.04766984290], [0.129, 3.64795525602, 183.76407950930], [0.116, 6.06435563172, 220.41264243880], [0.123, 4.46641157829, 1022.73336725970], [0.112, 4.34485256988, 138.51749687070], [0.116, 5.58946529961, 35.68535508300], [0.108, 1.03796693383, 488.58898404020], [0.108, 2.10378485880, 494.52687487340], [0.106, 0.87068583107, 1059.38193018920], [0.097, 0.74486741478, 485.92885516430], [0.095, 5.54259914856, 497.18700374930], [0.085, 3.16062141266, 522.57741809380], [0.097, 6.05634803604, 482.95990974770], [0.095, 0.23111852730, 500.15594916590], [0.084, 2.64687252518, 536.80451209540], [0.074, 3.90678924318, 1019.76442184310], ], # L2 [ [53892.649, 0.00000000000, 0.00000000000], [281.251, 1.19084538887, 38.13303563780], [295.693, 1.85520292248, 1.48447270830], [270.190, 5.72143228148, 76.26607127560], [23.023, 1.21035596452, 2.96894541660], [7.333, 0.54033306830, 2.44768055480], [9.057, 4.42544992035, 35.16409022120], [5.223, 0.67427930044, 168.05251279940], [5.201, 3.02338671812, 182.27960680100], [4.288, 3.84351844003, 114.39910691340], [3.925, 3.53214557374, 484.44438245600], [3.741, 5.90238217874, 498.67147645760], [2.966, 0.31002477611, 4.45341812490], [3.415, 0.55971639038, 74.78159856730], [3.255, 1.84921884906, 175.16605980020], [2.157, 1.89135758747, 388.46515523820], [2.211, 4.37997092240, 7.11354700080], [1.847, 3.48574435762, 9.56122755560], [2.451, 4.68586840176, 491.55792945680], [1.844, 5.12281562096, 33.67961751290], [2.204, 1.69321574906, 77.75054398390], [1.652, 2.55859494053, 36.64856292950], [1.309, 4.52400192922, 1021.24889455140], [1.124, 0.38710602242, 137.03302416240], [0.664, 0.88101734307, 4.19278569400], [0.497, 2.24615784762, 395.57870223900], [0.512, 6.22609200672, 381.35160823740], [0.582, 5.25716719826, 31.01948863700], [0.446, 0.36647221351, 98.89998852460], [0.383, 5.48585528762, 5.93789083320], [0.375, 4.61250246774, 8.07675484730], [0.354, 1.30783918287, 601.76425067620], [0.259, 5.66033623678, 112.91463420510], [0.247, 2.89695614593, 189.39315380180], [0.245, 4.26572913391, 220.41264243880], [0.200, 0.52604535784, 64.95973858080], [0.191, 4.88786653062, 39.61750834610], [0.233, 3.16423779113, 41.10198105440], [0.248, 5.85877831382, 1059.38193018920], [0.194, 2.37949641473, 73.29712585900], [0.227, 0.20028518978, 60.76695288680], [0.184, 3.01962045713, 1014.13534755060], [0.190, 5.57500985081, 343.21857259960], [0.172, 3.66036463613, 477.33083545520], [0.172, 0.59550457102, 46.20979048510], [0.182, 1.92429384025, 183.76407950930], [0.171, 1.61368476689, 357.44566660120], [0.173, 6.23717119485, 493.04240216510], [0.217, 1.46218158211, 71.81265315070], [0.178, 0.34928799031, 1028.36244155220], [0.169, 4.91086673212, 166.56804009110], [0.157, 5.89200571154, 169.53698550770], [0.182, 2.33457064554, 152.53214255120], [0.151, 3.81621340568, 146.59425171800], [0.136, 2.75150881988, 144.14657116320], [0.104, 6.03262825314, 529.69096509460], [0.076, 0.20932812381, 453.42489381900], ], # L3 [ [31.254, 0.00000000000, 0.00000000000], [12.461, 6.04431418812, 1.48447270830], [14.541, 1.35337075856, 76.26607127560], [11.547, 6.11257808366, 38.13303563780], [1.351, 4.93951495175, 2.96894541660], [0.741, 2.35936954597, 168.05251279940], [0.715, 1.27409542804, 182.27960680100], [0.537, 5.23632185196, 484.44438245600], [0.523, 4.16769839601, 498.67147645760], [0.664, 0.55871435877, 31.01948863700], [0.301, 2.69253200796, 7.11354700080], [0.194, 2.05904114139, 137.03302416240], [0.206, 2.51012178002, 74.78159856730], [0.160, 5.63111039032, 114.39910691340], [0.149, 3.09327713923, 35.16409022120], ], # L4 [ [113.998, 3.14159265359, 0.00000000000], [0.605, 3.18211885677, 76.26607127560] ], # L5 [ [0.874, 3.14159265359, 0.00000000000] ], ] """This table contains Neptune's periodic terms (all of them) from the planetary theory VSOP87 for the heliocentric longitude at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in pages 452-453.""" VSOP87_B = [ # B0 [ [3088622.933, 1.44104372626, 38.13303563780], [27780.087, 5.91271882843, 76.26607127560], [27623.609, 0.00000000000, 0.00000000000], [15355.490, 2.52123799481, 36.64856292950], [15448.133, 3.50877080888, 39.61750834610], [1999.919, 1.50998669505, 74.78159856730], [1967.540, 4.37778195768, 1.48447270830], [1015.137, 3.21561035875, 35.16409022120], [605.767, 2.80246601405, 73.29712585900], [594.878, 2.12892708114, 41.10198105440], [588.805, 3.18655882497, 2.96894541660], [401.830, 4.16883287237, 114.39910691340], [254.333, 3.27120499438, 453.42489381900], [261.647, 3.76722704749, 213.29909543800], [279.964, 1.68165309699, 77.75054398390], [205.590, 4.25652348864, 529.69096509460], [140.455, 3.52969556376, 137.03302416240], [98.530, 4.16774829927, 33.67961751290], [51.257, 1.95121181203, 4.45341812490], [67.971, 4.66970781659, 71.81265315070], [41.931, 5.41783694467, 111.43016149680], [41.822, 5.94832001477, 112.91463420510], [30.637, 0.93620571932, 42.58645376270], [11.084, 5.88898793049, 108.46121608020], [9.620, 0.03944255108, 70.32818044240], [9.664, 0.22455797403, 79.23501669220], [9.728, 5.30069593532, 32.19514480460], [7.386, 3.00684933642, 426.59819087600], [7.087, 0.12535040656, 109.94568878850], [6.021, 6.20514068152, 115.88357962170], [6.169, 3.62098109648, 983.11585891360], [4.777, 0.75210194972, 5.93789083320], [6.391, 5.84646101060, 148.07872442630], [6.251, 2.41678769385, 152.53214255120], [4.539, 5.58182098700, 175.16605980020], [5.006, 4.60815664851, 1059.38193018920], [4.289, 4.19647392821, 47.69426319340], [5.795, 5.07516716087, 415.29185818120], [4.749, 2.51605725604, 37.61177077600], [4.119, 1.72779509865, 28.57180808220], [4.076, 6.00252170354, 145.10977900970], [4.429, 5.65995321659, 98.89998852460], [3.950, 2.74104636753, 350.33211960040], [4.091, 1.61787956945, 39.09624348430], [4.131, 4.40682554313, 37.16982779130], [4.710, 3.50929350767, 38.65430049960], [4.440, 4.78977105547, 38.08485152800], [4.433, 1.23386935925, 38.18121974760], [3.762, 4.83940791709, 491.55792945680], [2.606, 1.20956732792, 451.94042111070], [2.537, 2.18628045751, 454.90936652730], [2.328, 5.19779918719, 72.07328558160], [2.502, 0.85987904350, 106.97674337190], [2.342, 0.81387240947, 4.19278569400], [1.981, 0.46617960831, 184.72728735580], [1.963, 6.01909114576, 44.07092647100], [2.180, 0.70099749844, 206.18554843720], [1.811, 0.40456996647, 40.58071619260], [1.814, 3.64699555185, 220.41264243880], [1.705, 6.13551142362, 181.75834193920], [1.855, 5.61635630213, 35.68535508300], [1.595, 2.97147156093, 37.87240320690], [1.785, 2.42154818096, 388.46515523820], [1.595, 3.05266110075, 38.39366806870], [1.437, 1.48678704605, 135.54855145410], [1.387, 2.46149266117, 138.51749687070], [1.366, 1.52026779665, 68.84370773410], [1.575, 3.58964541604, 38.02116105320], [1.297, 5.06156596196, 33.94024994380], [1.487, 0.20211121607, 30.05628079050], [1.504, 5.80298577327, 46.20979048510], [1.192, 0.87275514483, 42.32582133180], [1.569, 2.43405967107, 38.24491022240], [1.207, 1.84658687853, 251.43213107580], [1.015, 0.53439848924, 129.91947716160], [0.999, 2.47463873948, 312.19908396260], [0.990, 3.41514319052, 144.14657116320], [0.963, 4.31733242907, 151.04766984290], [1.020, 0.98226686775, 143.62530630140], [0.941, 1.02993053785, 221.37585028530], [0.938, 2.43648356625, 567.82400073240], [1.111, 0.65175024456, 146.59425171800], [0.777, 0.00175975222, 218.40690486870], [0.895, 0.25123869620, 30.71067209630], [0.795, 5.80519741659, 149.56319713460], [0.737, 3.40060492866, 446.31134681820], [0.719, 1.43795191278, 8.07675484730], [0.720, 0.00651007550, 460.53844081980], [0.766, 4.03399506246, 522.57741809380], [0.666, 1.39457824982, 84.34282612290], [0.584, 1.01405548136, 536.80451209540], [0.596, 0.62390100715, 35.21227433100], [0.598, 5.39946724188, 41.05379694460], [0.475, 5.80072248338, 7.42236354150], [0.510, 1.34478579740, 258.02441321480], [0.458, 5.25325523118, 80.71948940050], [0.421, 3.24496387889, 416.77633088950], [0.446, 1.19167306357, 180.27386923090], [0.471, 0.92632922375, 44.72531777680], [0.387, 1.68488418788, 183.24281464750], [0.375, 0.15223869165, 255.05546779820], [0.354, 4.21526988674, 0.96320784650], [0.379, 2.16947487177, 105.49227066360], [0.341, 4.79194051680, 110.20632121940], [0.427, 5.15774894584, 31.54075349880], [0.302, 3.45706306280, 100.38446123290], [0.298, 2.26790695187, 639.89728631400], [0.279, 0.25689162963, 39.50563376150], [0.320, 3.58085653166, 45.24658263860], [0.269, 5.72024180826, 36.76043751410], [0.247, 0.61040148804, 186.21176006410], [0.245, 0.64173616273, 419.48464387520], [0.235, 0.73189197665, 10213.28554621100], [0.232, 0.37399822852, 490.07345674850], [0.230, 5.76570492457, 12.53017297220], [0.240, 4.13447692727, 0.52126486180], [0.279, 1.62614865256, 294.67297614430], [0.238, 2.18528916550, 219.89137757700], [0.262, 3.08384135298, 6.59228213900], [0.217, 2.93214905312, 27.08733537390], [0.217, 4.69210602828, 406.10313764110], [0.219, 1.35212712560, 216.92243216040], [0.200, 2.35215465744, 605.95703637020], [0.232, 3.92583619589, 1512.80682400820], [0.223, 5.52392277606, 187.69623277240], [0.190, 0.29169556516, 291.70403072770], [0.236, 3.12464145036, 563.63121503840], [0.193, 0.53675942386, 60.76695288680], [0.215, 3.78391259001, 103.09277421860], [0.172, 5.63262770743, 7.11354700080], [0.164, 4.14700645532, 77.22927912210], [0.162, 0.72021213236, 11.04570026390], [0.160, 4.23490438166, 487.36514376280], [0.191, 0.37651439206, 31.01948863700], [0.157, 1.02419759383, 6283.07584999140], [0.157, 4.42530429545, 6206.80977871580], [0.178, 6.24797160202, 316.39186965660], [0.161, 5.65988283675, 343.21857259960], [0.153, 5.58405022784, 252.08652238160], [0.189, 4.80791039970, 641.12112659140], [0.166, 5.50438043692, 662.53120356300], [0.146, 5.08949604858, 286.59622129700], [0.145, 2.13015521881, 2042.49778910280], [0.156, 2.19452173251, 274.06604832480], [0.148, 4.85696640135, 442.75170057060], [0.187, 4.96121139073, 1589.07289528380], [0.155, 2.28260574227, 142.14083359310], [0.134, 1.29277093566, 456.39383923560], [0.126, 5.59769497652, 179.35884549420], [0.146, 2.53359213478, 256.53994050650], [0.140, 1.57962199954, 75.74480641380], [0.123, 0.05442220184, 944.98282327580], [0.122, 1.90676379802, 418.26080359780], [0.154, 1.86865302773, 331.32153907380], [0.144, 5.52229258454, 14.01464568050], [0.138, 2.80728175526, 82.85835341460], [0.107, 0.66995358132, 190.66517818900], [0.114, 1.48894980280, 253.57099508990], [0.110, 5.32587573069, 240.12579838100], [0.105, 0.65548440578, 173.68158709190], [0.102, 2.58735617801, 450.45594840240], [0.098, 0.44044795266, 328.35259365720], [0.101, 4.71267656829, 117.36805233000], [0.094, 0.54938580474, 293.18850343600], [0.095, 2.17636214523, 101.86893394120], [0.093, 0.63687810471, 377.15882254340], [0.091, 5.84828809934, 10137.01947493540], [0.089, 1.02830167997, 1021.24889455140], [0.094, 1.79320597168, 493.04240216510], [0.080, 1.58140274465, 69.15252427480], [0.075, 0.23453373368, 63.73589830340], [0.071, 1.51961989690, 488.58898404020], ], # B1 [ [227279.214, 3.80793089870, 38.13303563780], [1803.120, 1.97576485377, 76.26607127560], [1385.733, 4.82555548018, 36.64856292950], [1433.300, 3.14159265359, 0.00000000000], [1073.298, 6.08054240712, 39.61750834610], [147.903, 3.85766231348, 74.78159856730], [136.448, 0.47764957338, 1.48447270830], [70.285, 6.18782052139, 35.16409022120], [51.899, 5.05221791891, 73.29712585900], [37.273, 4.89476629246, 41.10198105440], [42.568, 0.30721737205, 114.39910691340], [37.104, 5.75999349109, 2.96894541660], [26.399, 5.21566335936, 213.29909543800], [16.949, 4.26463671859, 77.75054398390], [18.747, 0.90426522185, 453.42489381900], [12.951, 6.17709713139, 529.69096509460], [10.502, 1.20336443465, 137.03302416240], [4.416, 1.25478204684, 111.43016149680], [4.383, 6.14147099615, 71.81265315070], [3.694, 0.94837702528, 33.67961751290], [2.957, 4.77532871210, 4.45341812490], [2.698, 1.92435531119, 112.91463420510], [1.989, 3.96637567224, 42.58645376270], [1.150, 4.30568700024, 37.61177077600], [0.871, 4.81775882249, 152.53214255120], [0.944, 2.21777772050, 109.94568878850], [0.936, 1.17054983940, 148.07872442630], [0.925, 2.40329074000, 206.18554843720], [0.690, 1.57381082857, 38.65430049960], [0.624, 2.79466003645, 79.23501669220], [0.726, 4.13829519132, 28.57180808220], [0.640, 2.46161252327, 115.88357962170], [0.531, 2.96991530500, 98.89998852460], [0.537, 1.95986772922, 220.41264243880], [0.539, 2.06690307827, 40.58071619260], [0.716, 0.55781847010, 350.33211960040], [0.563, 1.84072805158, 983.11585891360], [0.533, 1.34787677940, 47.69426319340], [0.566, 1.80111775954, 175.16605980020], [0.449, 1.62191691011, 144.14657116320], [0.371, 2.74239666472, 415.29185818120], [0.381, 6.11910193382, 426.59819087600], [0.366, 2.39752585360, 129.91947716160], [0.456, 3.19611413854, 108.46121608020], [0.327, 3.62341506247, 38.18121974760], [0.328, 0.89613145346, 38.08485152800], [0.341, 3.87265469070, 35.68535508300], [0.331, 4.48858774501, 460.53844081980], [0.414, 1.03543720726, 70.32818044240], [0.310, 0.51297445145, 37.16982779130], [0.287, 2.18351651800, 491.55792945680], [0.274, 6.11504724934, 522.57741809380], [0.281, 3.81657117512, 5.93789083320], [0.298, 4.00532631258, 39.09624348430], [0.265, 5.26569823181, 446.31134681820], [0.319, 1.34097217817, 184.72728735580], [0.203, 6.02944475303, 149.56319713460], [0.205, 5.53935732020, 536.80451209540], [0.226, 6.17710997862, 454.90936652730], [0.186, 3.24302117645, 4.19278569400], [0.179, 4.91458426239, 451.94042111070], [0.198, 2.30775852880, 146.59425171800], [0.166, 1.16793600058, 72.07328558160], [0.147, 2.10574339673, 44.07092647100], [0.123, 1.98250467171, 46.20979048510], [0.159, 3.46955908364, 145.10977900970], [0.116, 5.88971113590, 38.02116105320], [0.115, 4.73412534395, 38.24491022240], [0.125, 3.42713474801, 251.43213107580], [0.128, 1.51108932026, 221.37585028530], [0.127, 0.17176461812, 138.51749687070], [0.124, 5.85160407534, 1059.38193018920], [0.091, 2.38273591235, 30.05628079050], [0.118, 5.27114846878, 37.87240320690], [0.117, 5.35267669439, 38.39366806870], [0.099, 5.19920708255, 135.54855145410], [0.114, 4.37452353441, 388.46515523820], [0.093, 4.64183693718, 106.97674337190], [0.084, 1.35269684746, 33.94024994380], [0.111, 3.56226463770, 181.75834193920], [0.082, 3.18401661435, 42.32582133180], [0.084, 5.51669920239, 8.07675484730], ], # B2 [ [9690.766, 5.57123750291, 38.13303563780], [78.815, 3.62705474219, 76.26607127560], [71.523, 0.45476688580, 36.64856292950], [58.646, 3.14159265359, 0.00000000000], [29.915, 1.60671721861, 39.61750834610], [6.472, 5.60736756575, 74.78159856730], [5.800, 2.25341847151, 1.48447270830], [4.309, 1.68126737666, 35.16409022120], [3.502, 2.39142672984, 114.39910691340], [2.649, 0.65061457644, 73.29712585900], [1.518, 0.37600329684, 213.29909543800], [1.223, 1.23116043030, 2.96894541660], [0.766, 5.45279753249, 453.42489381900], [0.779, 2.07081431472, 529.69096509460], [0.496, 0.26552533921, 41.10198105440], [0.469, 5.87866293959, 77.75054398390], [0.482, 5.63056237954, 137.03302416240], [0.345, 1.80085651594, 71.81265315070], [0.274, 2.86650141006, 33.67961751290], [0.158, 4.63868656467, 206.18554843720], [0.166, 1.24877330835, 220.41264243880], [0.153, 2.87376446497, 111.43016149680], [0.116, 3.63838544843, 112.91463420510], [0.085, 0.43712705655, 4.45341812490], [0.104, 6.12597614674, 144.14657116320], ], # B3 [ [273.423, 1.01688979072, 38.13303563780], [2.274, 2.36805657126, 36.64856292950], [2.029, 5.33364321342, 76.26607127560], [2.393, 0.00000000000, 0.00000000000], [0.538, 3.21934211365, 39.61750834610], [0.242, 4.52650721578, 114.39910691340], [0.185, 1.04913770083, 74.78159856730], [0.155, 3.62376309338, 35.16409022120], [0.157, 3.94195369610, 1.48447270830], ], # B4 [[5.728, 2.66872693322, 38.13303563780]], # B5 [[0.113, 4.70646877989, 38.13303563780]], ] """This table contains Neptune's periodic terms (all of them) from the planetary theory VSOP87 for the heliocentric latitude at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in page 453.""" VSOP87_R = [ # R0 [ [3007013206.102, 0.00000000000, 0.00000000000], [27062259.490, 1.32999458930, 38.13303563780], [1691764.281, 3.25186138896, 36.64856292950], [807830.737, 5.18592836167, 1.48447270830], [537760.613, 4.52113902845, 35.16409022120], [495725.642, 1.57105654815, 491.55792945680], [274571.970, 1.84552256801, 175.16605980020], [135134.095, 3.37220607384, 39.61750834610], [121801.825, 5.79754444303, 76.26607127560], [100895.397, 0.37702748681, 73.29712585900], [69791.722, 3.79617226928, 2.96894541660], [46687.838, 5.74937810094, 33.67961751290], [24593.778, 0.50801728204, 109.94568878850], [16939.242, 1.59422166991, 71.81265315070], [14229.686, 1.07786112902, 74.78159856730], [12011.825, 1.92062131635, 1021.24889455140], [8394.731, 0.67816895547, 146.59425171800], [7571.800, 1.07149263431, 388.46515523820], [5720.852, 2.59059512267, 4.45341812490], [4839.672, 1.90685991070, 41.10198105440], [4483.492, 2.90573457534, 529.69096509460], [4270.202, 3.41343865825, 453.42489381900], [4353.790, 0.67985662370, 32.19514480460], [4420.804, 1.74993796503, 108.46121608020], [2881.063, 1.98600105123, 137.03302416240], [2635.535, 3.09755943422, 213.29909543800], [3380.930, 0.84810683275, 183.24281464750], [2878.942, 3.67415901855, 350.33211960040], [2306.293, 2.80962935724, 70.32818044240], [2530.149, 5.79839567009, 490.07345674850], [2523.132, 0.48630800015, 493.04240216510], [2087.303, 0.61858378281, 33.94024994380], [1976.522, 5.11703044560, 168.05251279940], [1905.254, 1.72186472126, 182.27960680100], [1654.039, 1.92782545887, 145.10977900970], [1435.072, 1.70005157785, 484.44438245600], [1403.029, 4.58914203187, 498.67147645760], [1499.193, 1.01623299513, 219.89137757700], [1398.860, 0.76220317620, 176.65053250850], [1403.377, 6.07659416908, 173.68158709190], [1128.560, 5.96661179805, 9.56122755560], [1228.304, 1.59881465324, 77.75054398390], [835.414, 3.97066884218, 114.39910691340], [811.186, 3.00258880870, 46.20979048510], [731.925, 2.10447054189, 181.75834193920], [615.781, 2.97874625677, 106.97674337190], [704.778, 1.18738210880, 256.53994050650], [502.040, 1.38657803368, 5.93789083320], [530.357, 4.24059166485, 111.43016149680], [437.096, 2.27029212923, 1550.93985964600], [400.250, 1.25609325435, 8.07675484730], [421.011, 1.89084929506, 30.71067209630], [382.457, 3.29965259685, 983.11585891360], [422.485, 5.53186169605, 525.49817940060], [355.389, 2.27847846648, 218.40690486870], [280.062, 1.54129714238, 98.89998852460], [314.499, 3.95932948594, 381.35160823740], [280.556, 4.54238271682, 44.72531777680], [267.738, 5.13323364247, 112.91463420510], [333.311, 5.75067616021, 39.09624348430], [291.625, 4.02398326341, 68.84370773410], [321.429, 1.50625025822, 454.90936652730], [309.196, 2.85452752153, 72.07328558160], [345.094, 1.35905860594, 293.18850343600], [307.439, 0.31964571332, 601.76425067620], [251.356, 3.53992782846, 312.19908396260], [248.152, 3.41078346726, 37.61177077600], [306.000, 2.72475094464, 6244.94281435360], [293.532, 4.89079857814, 528.20649238630], [234.479, 0.59231043427, 42.58645376270], [239.628, 3.16441455173, 143.62530630140], [214.523, 3.62480283040, 278.25883401880], [246.198, 1.01506302015, 141.22580985640], [174.089, 5.55011789988, 567.82400073240], [163.934, 2.10166491786, 2.44768055480], [162.897, 2.48946521653, 4.19278569400], [193.455, 1.58425287580, 138.51749687070], [155.323, 3.28425127954, 31.01948863700], [182.469, 2.45244890571, 255.05546779820], [177.846, 4.14773474853, 10175.15251057320], [174.413, 1.53042999914, 329.83706636550], [137.649, 3.34900537767, 0.96320784650], [161.011, 5.16655038482, 211.81462272970], [113.473, 4.96286007991, 148.07872442630], [128.823, 3.25521535448, 24.11838995730], [107.363, 3.26457701792, 1059.38193018920], [122.732, 5.39399536941, 62.25142559510], [120.529, 3.08050145518, 184.72728735580], [99.356, 1.92888554099, 28.57180808220], [97.713, 2.59474415429, 6.59228213900], [124.095, 3.11516750340, 221.37585028530], [124.693, 2.97042405451, 251.43213107580], [114.252, 0.25039919123, 594.65070367540], [111.006, 3.34276426767, 180.27386923090], [120.939, 1.92914010593, 25.60286266560], [104.667, 0.94883561775, 395.57870223900], [109.779, 5.43147520571, 494.52687487340], [96.919, 0.86184760695, 1014.13534755060], [98.685, 0.89577952710, 488.58898404020], [88.968, 4.78109764779, 144.14657116320], [107.888, 0.98700578434, 1124.34166877000], [97.067, 2.62667400276, 291.70403072770], [75.131, 5.88936524779, 43.24084506850], [93.718, 6.09873565184, 526.72201967800], [94.822, 0.20662943940, 456.39383923560], [70.036, 2.39683345663, 426.59819087600], [77.187, 4.21076753240, 105.49227066360], [89.874, 3.25100749923, 258.02441321480], [69.133, 4.93031154435, 1028.36244155220], [90.657, 1.69466970587, 366.48562929500], [74.242, 3.14479101276, 82.85835341460], [57.995, 0.86159785905, 60.76695288680], [78.695, 1.09307575550, 700.66423920080], [57.230, 0.81331949225, 2.92076130680], [63.443, 4.39590123005, 149.56319713460], [55.698, 3.89047249911, 47.69426319340], [56.430, 5.15003563302, 0.52126486180], [56.174, 5.42986960794, 911.04257333200], [61.746, 6.16453667559, 1019.76442184310], [70.503, 0.08077330612, 40.58071619260], [74.677, 4.85904499980, 186.21176006410], [61.861, 4.78702599861, 11.04570026390], [61.135, 0.83712253227, 1022.73336725970], [61.268, 5.70228826765, 178.13500521680], [52.887, 0.37458943972, 27.08733537390], [56.722, 3.52318112447, 216.92243216040], [48.819, 5.10789123481, 64.95973858080], [63.290, 4.39424910030, 807.94979911340], [64.062, 6.28297531806, 7.11354700080], [46.356, 1.34735469284, 451.94042111070], [60.540, 3.40316162416, 294.67297614430], [46.900, 0.17048203552, 7.42236354150], [56.766, 0.45048868231, 140.00196957900], [55.887, 1.06815733757, 172.19711438360], [53.761, 2.79644687008, 328.35259365720], [43.828, 6.04655696644, 135.54855145410], [49.549, 0.64106656292, 41.05379694460], [53.960, 2.91774494436, 563.63121503840], [42.961, 5.40175361431, 487.36514376280], [51.508, 0.09105540708, 210.33015002140], [41.889, 3.12343223889, 29.22619938800], [47.655, 3.90701760087, 63.73589830340], [41.639, 6.26847783513, 32.71640966640], [41.429, 4.45464156759, 37.16982779130], [40.745, 0.16043648294, 79.23501669220], [48.205, 1.84198373010, 403.13419222450], [36.912, 0.44771386183, 30.05628079050], [47.762, 0.88083849566, 3302.47939106200], [39.465, 3.50565484069, 357.44566660120], [42.139, 0.63375113663, 343.21857259960], [41.275, 1.36370496322, 31.23193695810], [42.612, 3.55270845713, 38.65430049960], [38.931, 5.26691753270, 415.29185818120], [38.967, 5.25866056502, 386.98068252990], [33.734, 5.24400184426, 67.35923502580], [40.879, 3.55292279438, 331.32153907380], [38.768, 1.12288359393, 38.18121974760], [37.500, 6.08687972441, 35.42472265210], [38.831, 4.67876780698, 38.08485152800], [38.231, 6.26491054328, 389.94962794650], [29.976, 4.45759985804, 22.63391724900], [31.356, 0.07746010366, 12.53017297220], [26.341, 4.59559782754, 106.01353552540], [27.465, 5.99541587890, 206.18554843720], [25.152, 4.49867760320, 34.20088237470], [24.122, 5.17089441917, 129.91947716160], [28.997, 3.64927210210, 253.57099508990], [27.173, 4.37944546475, 142.14083359310], [30.634, 1.59348806560, 348.84764689210], [31.464, 1.05065113524, 100.38446123290], [24.056, 1.02801635413, 41.75637236020], [22.632, 4.72511111292, 81.37388070630], [21.942, 3.48416607882, 69.15252427480], [26.333, 3.01556008632, 365.00115658670], [22.355, 3.92220883921, 5.10780943070], [22.498, 4.03487494425, 19.12245511120], [22.885, 1.58977064672, 189.39315380180], [26.520, 3.61427038042, 367.97010200330], [25.496, 2.43810518614, 351.81659230870], [19.111, 2.59694457001, 2080.63082474060], [19.640, 6.15701741238, 35.21227433100], [25.688, 2.00512719767, 439.78275515400], [21.613, 3.32354204724, 119.50691634410], [25.389, 4.74025836522, 1474.67378837040], [18.107, 5.35129342595, 244.31858407500], [23.295, 5.93767742799, 316.39186965660], [22.087, 4.81594755148, 84.34282612290], [16.972, 3.05105149940, 220.41264243880], [20.022, 4.99276451168, 179.09821306330], [20.370, 1.86508317889, 171.23390653710], [19.426, 2.04829970231, 5.41662597140], [22.628, 0.27205783433, 666.72398925700], [19.072, 3.70882976684, 164.12035953630], [17.969, 3.40425338171, 69.36497259590], [18.716, 0.90215956591, 285.37238101960], [15.889, 0.42011285882, 697.74347789400], [14.988, 3.08544843665, 704.85702489480], [14.774, 3.36129613309, 274.06604832480], [15.972, 1.82864185268, 477.33083545520], [13.892, 2.94161501165, 38.39366806870], [13.922, 2.85574364078, 37.87240320690], [15.481, 4.94982954853, 101.86893394120], [17.571, 5.82317632469, 35.68535508300], [15.856, 5.04973561582, 36.90919536040], [16.414, 3.63049397028, 45.24658263860], [17.158, 2.51251149482, 20.60692781950], [12.941, 3.03041555329, 522.57741809380], [15.752, 5.00292909214, 247.23934538180], [12.679, 0.20331109568, 460.53844081980], [16.260, 5.93480347217, 815.06334611420], [12.903, 3.51141502996, 446.31134681820], [13.891, 5.51064697670, 31.54075349880], [13.668, 5.45576135320, 39.35687591520], [13.418, 3.95805150079, 290.21955801940], [15.368, 2.45783892707, 26.82670294300], [14.246, 3.18588280921, 401.64971951620], [12.222, 4.94370170146, 14.01464568050], [15.484, 3.79703715637, 404.61866493280], [13.427, 3.79527836573, 151.04766984290], [14.450, 4.93940408761, 120.99138905240], [14.331, 4.71117327722, 738.79727483860], [11.566, 5.91003539239, 536.80451209540], [15.578, 2.91836788254, 875.83029900100], [13.124, 2.16056013419, 152.53214255120], [11.744, 2.94770244071, 2.70831298570], [12.793, 1.97868575679, 1.37259812370], [12.969, 0.00535826017, 97.41551581630], [13.891, 4.76435441820, 0.26063243090], [13.729, 2.32306473850, 38.24491022240], [10.714, 6.18129683877, 115.88357962170], [11.610, 4.61712859898, 178.78939652260], [11.257, 0.79300245838, 42.32582133180], [14.500, 5.44690193314, 44.07092647100], [11.534, 5.26580538005, 160.93896579860], [13.355, 5.20849186729, 32.45577723550], [13.658, 2.15687632802, 476.43131808350], [13.782, 3.47865209163, 38.02116105320], [12.714, 2.09462988855, 20.49505323490], [13.257, 5.15138524813, 103.09277421860], [9.715, 0.74597883480, 918.15612033280], [10.340, 5.38977407079, 222.86032299360], [13.357, 5.89635739027, 748.09786996330], [12.632, 1.20306997433, 16.15350969460], [11.437, 1.58444114292, 495.49008271990], [11.424, 4.74142930795, 487.62577619370], [9.098, 5.19932138822, 118.02244363580], [9.336, 0.97313630925, 662.53120356300], [9.827, 4.48170250645, 505.78502345840], [8.585, 0.20375451897, 944.98282327580], [8.875, 5.53111742265, 17.52610781830], [9.957, 4.03258125243, 169.53698550770], [11.506, 3.11649121817, 17.63798240290], [9.818, 5.20376439002, 1.59634729290], [10.160, 3.74441320429, 457.61767951300], [8.661, 0.31247523804, 1440.73353842660], [8.496, 1.06445636872, 55.77101804070], [11.162, 1.92907800408, 564.85505531580], [8.057, 0.31116345866, 377.41945497430], [9.851, 4.23328578127, 418.26080359780], [7.938, 2.40417397694, 488.37653571910], [9.894, 0.63707319139, 183.76407950930], [9.913, 3.94049519088, 441.26722786230], [7.867, 3.87469522964, 494.73932319450], [7.589, 3.15909316566, 416.77633088950], [8.496, 5.38968698704, 104.00779795530], [9.716, 3.06038536864, 166.56804009110], [9.377, 0.56416645296, 673.31627139600], [8.771, 5.24534141981, 1057.89745748090], [7.990, 1.55726966638, 59.28248017850], [9.090, 4.32953439022, 29.74746424980], [9.667, 5.89033222679, 358.40887444770], [7.209, 2.29464803358, 79.18683258240], [8.062, 0.44458003524, 19.01058052660], [8.254, 3.47304582051, 156.15547927360], [9.804, 6.06393995615, 784.74643289280], [8.516, 5.99060386955, 180.79513409270], [8.090, 1.38588221442, 1654.03263386460], [9.074, 4.03971490460, 1017.05610885740], [6.908, 1.41919832926, 178.34745353790], [8.230, 2.53750470473, 518.38463239980], [8.594, 5.29104206063, 457.87831194390], [6.769, 5.43380191356, 171.98466606250], [8.571, 0.35876828441, 636.66770846650], [8.995, 1.36992508507, 6209.77872413240], [6.641, 2.92327140872, 0.04818410980], [9.278, 3.80308677009, 25558.21217647960], [6.567, 4.01934954352, 0.11187458460], [6.441, 4.28250687347, 36.12729806770], [7.257, 4.09776235307, 326.86812094890], [8.384, 5.49363770202, 532.61172640140], [7.471, 4.62144262894, 526.98265210890], [7.500, 0.61545750834, 485.92885516430], [7.716, 1.04880632264, 525.23754696970], [8.504, 2.79350586429, 10139.98842035200], [7.466, 5.07942174095, 157.63995198190], [7.186, 6.22833818429, 77.22927912210], [7.784, 1.89308880453, 984.60033162190], [6.513, 0.07498932215, 79.88940799800], [6.077, 2.96673519667, 36.69674703930], [7.706, 5.70632580790, 209.10630974400], [7.265, 4.94483532589, 131.40394986990], [6.984, 2.53239305821, 497.18700374930], [7.824, 2.31462643851, 513.07988101300], [7.175, 3.69203633127, 524.01370669230], [6.855, 0.14076801572, 283.62727588040], [6.922, 3.36515011915, 438.29828244570], [7.349, 3.50406958122, 500.15594916590], [6.301, 0.14776691217, 608.87779767700], [5.892, 4.24403528888, 4.66586644600], [7.613, 5.14905171677, 259.50888592310], [7.128, 5.92696788834, 482.95990974770], [6.829, 1.01745137848, 1543.82631264520], [5.981, 4.79954091087, 215.43795945210], [5.526, 2.34003154732, 65.22037101170], [6.817, 6.12162829690, 395.05743737720], [5.369, 3.76855960849, 52099.54021187280], [5.776, 5.61434462641, 987.56927703850], [7.523, 5.60432148128, 2810.92146160520], [7.329, 3.76815551582, 1512.80682400820], [5.616, 2.13872867116, 145.63104387150], [5.258, 0.30850836910, 36.60037881970], [5.688, 1.82274388581, 1227.43444298860], [5.658, 2.35049199704, 5.62907429250], [6.135, 4.23390561816, 496.01134758170], [5.128, 2.89050864873, 313.68355667090], [6.472, 3.49494191669, 552.69738935910], [4.983, 3.91958511552, 10135.53500222710], [5.217, 0.40052635702, 319.31263096340], [4.952, 1.42482088612, 49.17873590170], [5.964, 5.70758449643, 309.79958751760], [5.091, 6.00974510144, 1409.71404978960], [5.205, 5.50271334510, 238.90195810360], [4.800, 1.13450310670, 134.06407874580], [4.943, 1.43051344597, 422.40540518200], [5.604, 2.05669305961, 207.36120460480], [6.310, 5.22966882627, 139.74133714810], [4.772, 3.06668713747, 464.73122651380], [4.919, 3.57280542629, 52175.80628314840], [4.762, 5.90654311203, 838.96928775040], [4.848, 0.77467099227, 1.69692102940], [5.694, 0.77313415569, 709.96483432550], [5.455, 0.90289242792, 208.84567731310], [4.901, 3.79986913631, 15.49911838880], [4.772, 0.15755140037, 39.50563376150], [5.673, 2.68359159067, 1127.26243007680], [5.477, 0.53123497431, 113.87784205160], [5.077, 1.59268428609, 1547.97091422940], [4.981, 1.44584050478, 1.27202438720], [5.813, 5.85024085408, 57.25549074900], [5.520, 5.06396698257, 421.22974901440], [5.938, 0.96886308551, 6280.10690457480], [5.206, 3.58003819370, 474.94684537520], [5.256, 0.61005270999, 95.97922721780], [5.531, 5.28764137194, 36.76043751410], [6.158, 5.73176703797, 711.44930703380], [5.003, 2.19048397989, 501.64042187420], [5.150, 5.58407480282, 26049.77010593640], [5.138, 4.55234158942, 670.91677495100], [5.609, 4.37272759780, 52.80207262410], [5.636, 2.39183054397, 10210.31660079440], [4.512, 2.59978208967, 1234.54798998940], [5.412, 4.58813638089, 179.61947792510], [4.314, 3.38846714337, 142.66209845490], [4.708, 5.23537414423, 3.62333672240], [4.471, 3.94378336812, 12566.15169998280], [5.296, 1.12249063176, 134.11226285560], [4.188, 2.52490407427, 6205.32530600750], [4.645, 1.90644271528, 13324.31667116140], [4.502, 2.01956920977, 315.16802937920], [5.346, 2.94804816223, 353.04043258610], [4.177, 2.09489065926, 803.75701341940], [5.296, 3.88249567974, 2118.76386037840], [5.325, 4.28221258353, 477.91579079180], [5.519, 0.09960891963, 600.01914553700], [5.169, 0.59948596687, 6.90109867970], [4.179, 0.14619703083, 6644.57629047010], [4.490, 1.07042724999, 52139.15772021889], [3.970, 6.13227798578, 1553.90880506260], [3.970, 4.69887237362, 91.78644152380], [4.234, 0.14478458924, 65.87476231750], [5.183, 3.52837189306, 110.20632121940], [5.259, 6.20809827528, 142.71028256470], [3.869, 5.25125030487, 1558.05340664680], [4.457, 2.10248126544, 487.10451133190], [4.890, 1.83606790269, 46.51860702580], [3.875, 5.60269278935, 385.49620982160], [3.826, 1.30946706974, 2176.61005195840], [4.591, 4.84657580441, 1337.64076420800], [5.111, 1.18808079775, 981.63138620530], [4.709, 1.40878215308, 52213.93931878620], [3.891, 5.43661875415, 154.67100656530], [4.145, 4.32505910718, 363.51668387840], [4.441, 3.50158424570, 187.69623277240], [3.703, 2.48768949613, 67.88049988760], [4.094, 1.42347047260, 310.71461125430], [3.681, 5.70552661143, 491.66980404140], [4.787, 3.65822147476, 589.34595228860], [4.020, 5.45643059988, 6641.60734505350], [3.656, 0.57790726599, 491.44605487220], [4.288, 3.35265955957, 203.21660302060], [3.843, 4.61508898119, 1025.70231267630], [3.767, 0.05292047125, 320.27583880990], [4.632, 0.82011276589, 3265.83082813250], [4.609, 5.25443775917, 296.15744885260], [4.555, 5.30391170376, 26013.12154300690], [3.556, 4.80267245336, 224.34479570190], [4.859, 5.52756242256, 487.41332787260], [3.626, 1.44624342082, 70.84944530420], [4.302, 1.60914544159, 12529.50313705330], [3.493, 4.75315651083, 12489.88562870720], [3.722, 0.27433061822, 949.43624140070], [4.234, 5.25112033465, 194.28851491140], [3.451, 2.97409317928, 499.63468430410], [4.796, 6.21059766333, 491.81856188770], [3.639, 1.25605018211, 2603.20824283440], [4.646, 5.71392540144, 321.76031151820], [3.702, 2.08952561657, 491.03666459500], [3.672, 2.87489628704, 497.49582029000], [3.965, 1.05484988240, 75.74480641380], [3.416, 0.68584132933, 305.08553696180], [4.513, 4.38927002490, 425.11371816770], [3.853, 0.61321572401, 12526.53419163670], [3.788, 3.32221995840, 3140.01275492980], [3.781, 5.58125317044, 1652.54816115630], [3.903, 5.31609723466, 408.17831118040], [3.945, 3.60558877407, 1589.07289528380], [4.084, 0.83813879869, 52.36012963940], [4.084, 3.50290269471, 23.90594163620], [3.694, 1.03218855688, 481.47543703940], [3.636, 5.31068934607, 141.48644228730], [3.345, 3.94392179077, 20389.92252949249], [4.639, 6.24618220184, 821.39499582230], [3.934, 0.26992234338, 1655.51710657290], [4.431, 2.48647437800, 549.72844394250], [4.168, 5.39993754642, 236.50246165860], [4.020, 0.07393243012, 52136.18877480229], [4.055, 1.34004288978, 1054.92851206430], [3.275, 0.98533127454, 1344.75431120880], [3.213, 2.97105590703, 20386.95358407589], [4.428, 0.06728869735, 491.29729702590], [4.063, 0.06192838570, 6168.67674307800], [3.804, 5.34897033476, 523.75307426140], [3.917, 5.67905809516, 1131.19458333990], [3.833, 0.87811168267, 52.69019803950], [4.020, 2.69209723289, 1439.46151403940], [4.373, 1.86209663434, 73.55775828990], [3.159, 1.04693380342, 703.37255218650], [3.116, 5.20159166840, 449.23210812500], [3.258, 4.65131076542, 696.25900518570], [3.427, 0.27003884843, 2389.90914739640], [4.349, 0.07531141761, 20426.57109242200], [3.383, 5.61838426864, 699.22795060230], [3.305, 1.41666877290, 562.14674233010], [3.297, 5.46677712589, 1442.21801113490], [3.277, 2.71815883511, 980.14691349700], [3.171, 4.49510885866, 1439.24906571830], [4.175, 4.24327707038, 381.61224066830], [3.155, 3.40776789576, 39.72938293070], [4.112, 0.90309319273, 1087.69310584050], [3.350, 5.27474671017, 80.71948940050], [3.725, 1.52448613082, 1058.10990580200], [3.650, 3.59798316565, 192.80404220310], [3.837, 1.48519528444, 10098.88643929760], [2.959, 1.23012121982, 2500.11546861580], [3.330, 6.12470287875, 10172.18356515660], [3.361, 4.31837298696, 492.07919431860], [3.288, 3.14692435376, 347.36317418380], [2.992, 5.01304660316, 175.21424391000], [3.294, 2.52694043155, 1692.16566950240], [2.984, 1.81780659890, 175.11787569040], [3.013, 0.92957285991, 1515.77576942480], [3.863, 5.46044928570, 332.80601178210], [3.403, 1.10932483984, 987.30864460760], [3.312, 0.67710158807, 977.48678462110], [3.030, 1.77996261146, 156489.28581380739], [3.605, 4.89955108152, 1043.88281180040], [2.937, 0.60469671230, 990.22940591440], [3.276, 4.26765608367, 1189.30140735080], [2.966, 5.29808076929, 31.98269648350], [2.994, 2.58599359402, 178.08682110700], [3.905, 1.87748122254, 1158.28191871380], [3.110, 3.09203517638, 235.93301268700], [3.313, 2.70308129756, 604.47256366190], [3.276, 1.24440460327, 874.65464283340], [3.276, 5.58544609667, 950.92071410900], [3.746, 0.33859914037, 913.96333463880], [3.552, 3.07180917863, 240.38643081190], [2.885, 6.01130634957, 1097.51496582700], [3.643, 5.11977873355, 452.20105354160], [2.768, 4.38396269009, 391.43410065480], [2.776, 5.01821594830, 8.90683624980], [2.990, 5.62911695857, 140.65636088480], [2.761, 4.05534163807, 6283.07584999140], [3.226, 4.76711354367, 6241.97386893700], [3.748, 4.84009347869, 341.73409989130], [2.752, 4.53621078796, 6206.80977871580], [3.847, 2.40982343643, 26086.41866886590], [2.727, 3.28234198801, 483.48117460950], [2.884, 4.05452029151, 1.22384027740], [2.702, 3.72061244391, 946.46729598410], [2.723, 4.37517047024, 15.19030184810], [2.847, 5.22951186538, 661.04673085470], [2.680, 4.19379121323, 13.18456427800], [3.269, 0.43119778520, 496.97455542820], [3.489, 3.82213189319, 625.99451521810], [3.757, 3.88223872147, 495.70253104100], [2.872, 5.00345974886, 252.08652238160], [3.742, 2.03372773652, 8.59801970910], [3.172, 1.11135762382, 260.99335863140], [3.341, 2.91360557418, 304.23420369990], [2.915, 2.63627684599, 6681.22485339960], [2.915, 1.43773625890, 6604.95878212400], [2.629, 2.09824407450, 2713.41456405380], [2.901, 3.33924800230, 515.46387109300], [2.803, 1.23584865903, 6643.09181776180], [3.045, 3.33515866438, 921.07688163960], [2.699, 5.42597794650, 925.26966733360], [2.808, 5.77870303237, 1024.21783996800], [3.028, 3.75501312393, 511.59540830470], [3.090, 2.49453093252, 14.66903698630], [2.913, 4.83296711477, 515.93695184500], [3.139, 5.99134254710, 570.74476203920], [2.752, 3.08268180744, 853.19638175200], [2.779, 3.74527347899, 494.00561001160], [2.643, 1.99093797444, 470.21728845440], [2.763, 4.01095972177, 448.97147569410], [2.643, 5.24970673655, 249.94765836750], [3.426, 4.73955481174, 1050.99635880120], [2.573, 2.01267457287, 1514.29129671650], [2.633, 1.63640090603, 170.71264167530], [3.034, 4.48979734509, 560.71045373160], [3.025, 5.51446170055, 369.45457471160], [3.095, 4.01459691667, 1615.89959822680], [2.490, 0.15301603966, 78187.44335344699], [2.589, 0.79196093766, 1228.91891569690], [3.143, 5.33170343283, 1542.34183993690], [3.138, 4.50785484172, 461.76228109720], [2.812, 3.74246594120, 2.00573757010], [3.062, 4.88018345098, 227.96813242430], [2.553, 4.85437812287, 488.84961647110], [2.971, 1.27359129352, 530.91480537200], [2.646, 3.64828423565, 335.77495719870], [3.329, 2.71693827722, 171.02145821600], [2.648, 0.60243117586, 70.58881287330], [3.061, 5.05044834864, 378.64329525170], [2.738, 4.75405645015, 151.26011816400], [2.728, 5.89052930055, 213.95348674380], [3.411, 2.24137878065, 734.45573129830], [2.623, 0.54340876464, 1586.10394986720], [3.169, 5.84871429991, 1049.51188609290], [2.430, 2.34595493263, 450.45594840240], [2.907, 5.58085498481, 597.57146498220], [3.300, 0.94221473935, 58.17051448570], [2.543, 5.30426930256, 419.48464387520], [3.175, 2.32600231924, 339.28641933650], [2.858, 2.36621678719, 32.50396134530], [2.712, 5.79983621237, 1587.58842257550], [3.340, 1.36950315448, 384.27236954420], [3.301, 5.83023910521, 51.77517430280], [2.415, 0.69446923670, 489.55219188670], [2.736, 5.74320864965, 1167.84314626940], [2.956, 5.22962139507, 199.85389872910], [3.262, 0.01501002027, 1545.31078535350], [2.506, 4.84043333582, 943.49835056750], [3.240, 2.46676155925, 1016.79547642650], [3.148, 4.62079057738, 233.53351624200], [2.327, 4.10421417326, 70.11573212130], [2.371, 4.79963943424, 271.14528701800], [3.006, 3.66877796077, 1476.15826107870], [2.537, 5.66681769885, 21.14944454070], [3.006, 0.93048909480, 21.97952594320], [3.033, 0.67157488690, 292.48592802040], [2.344, 1.83547256266, 492.30868898220], [3.117, 2.76268894894, 1473.18931566210], [2.323, 2.88799980853, 533.62311835770], [2.340, 4.44862573253, 490.80716993140], [2.511, 0.99467349084, 266.10116806210], [2.919, 4.75889516601, 1511.32235129990], [2.493, 6.10541658597, 1225.94997028030], [2.798, 3.06162629894, 419.74527630610], [2.691, 3.20679023131, 463.50738623640], [2.291, 5.81534758547, 246.97871295090], [2.319, 6.05514281470, 525.75881183150], [3.112, 0.89712836583, 314.90739694830], [3.085, 5.84605938859, 1192.22216865760], [2.897, 0.54747024257, 20350.30502114640], [3.067, 2.22206306288, 248.46318565920], [2.252, 0.87483094907, 61.02758531770], [2.392, 3.62837597194, 439.19779981740], [2.817, 2.73562306571, 16.67477455640], [2.379, 6.17876088396, 467.65198782060], [2.598, 4.82643304253, 384.58118608490], [2.718, 1.01823841209, 215.95922431390], [2.998, 1.09755715300, 1964.74724511890], [2.884, 2.97813466834, 383.09671337660], [2.231, 4.48841493844, 4.14460158420], [2.203, 2.23336308907, 481.26298871830], [2.260, 2.35404913660, 659.61044225620], [2.491, 1.70236357070, 445.34813897170], [3.041, 5.55577674116, 674.80074410430], [2.289, 1.18497528002, 1552.42433235430], [2.975, 0.48272389481, 1052.48083150950], [2.339, 0.75318738767, 478.81530816350], [3.011, 0.16359500858, 54.28654533240], [2.820, 6.18522693724, 556.51766803760], [2.266, 5.91286000054, 3.49021027840], [2.231, 1.45038594906, 196.50670080260], ], # R1 [ [236338.502, 0.70498011235, 38.13303563780], [13220.279, 3.32015499895, 1.48447270830], [8621.863, 6.21628951630, 35.16409022120], [2701.740, 1.88140666779, 39.61750834610], [2153.150, 5.16873840979, 76.26607127560], [2154.735, 2.09431198086, 2.96894541660], [1463.924, 1.18417031047, 33.67961751290], [1603.165, 0.00000000000, 0.00000000000], [1135.773, 3.91891199655, 36.64856292950], [897.650, 5.24122933533, 388.46515523820], [789.908, 0.53315484580, 168.05251279940], [760.030, 0.02051033644, 182.27960680100], [607.183, 1.07706500350, 1021.24889455140], [571.622, 3.40060785432, 484.44438245600], [560.790, 2.88685815667, 498.67147645760], [490.190, 3.46830928696, 137.03302416240], [264.093, 0.86220057976, 4.45341812490], [270.526, 3.27355867939, 71.81265315070], [203.524, 2.41820674409, 32.19514480460], [155.438, 0.36537064534, 41.10198105440], [132.766, 3.60157672619, 9.56122755560], [93.626, 0.66670888163, 46.20979048510], [83.317, 3.25992461673, 98.89998852460], [72.205, 4.47717435693, 601.76425067620], [68.983, 1.46326969479, 74.78159856730], [86.953, 5.77228651853, 381.35160823740], [68.717, 4.52563942435, 70.32818044240], [64.724, 3.85477388838, 73.29712585900], [68.377, 3.39509945953, 108.46121608020], [53.375, 5.43650770516, 395.57870223900], [44.453, 3.61409723545, 2.44768055480], [41.243, 4.73866592865, 8.07675484730], [48.331, 1.98568593981, 175.16605980020], [41.744, 4.94257598763, 31.01948863700], [44.102, 1.41744904844, 1550.93985964600], [41.170, 1.41999374753, 490.07345674850], [41.099, 4.86312637841, 493.04240216510], [36.267, 5.30764043577, 312.19908396260], [36.284, 0.38187812797, 77.75054398390], [40.619, 2.27237172464, 529.69096509460], [32.360, 5.91123007786, 5.93789083320], [31.197, 2.70549944134, 1014.13534755060], [32.730, 5.22147683115, 41.05379694460], [36.079, 4.87817494829, 491.55792945680], [30.181, 3.63273193845, 30.71067209630], [29.991, 3.30769367603, 1028.36244155220], [27.048, 1.77647060739, 44.72531777680], [27.756, 4.55583165091, 7.11354700080], [27.475, 0.97228280623, 33.94024994380], [24.944, 3.10083391185, 144.14657116320], [25.958, 2.99724758632, 60.76695288680], [21.369, 4.71270048898, 278.25883401880], [21.283, 0.68957829113, 251.43213107580], [23.727, 5.12044184469, 176.65053250850], [21.392, 0.86286397645, 4.19278569400], [23.373, 1.64955088447, 173.68158709190], [24.163, 3.56602004577, 145.10977900970], [20.238, 5.61479765982, 24.11838995730], [26.958, 4.14294870704, 453.42489381900], [24.048, 1.00718363213, 213.29909543800], [18.322, 1.98028683488, 72.07328558160], [18.266, 6.17260374467, 189.39315380180], [19.201, 4.65162168927, 106.97674337190], [17.606, 1.60307551767, 62.25142559510], [16.545, 1.69931816587, 357.44566660120], [20.132, 3.29520553529, 114.39910691340], [15.425, 4.38812302799, 25.60286266560], [19.173, 2.20014267311, 343.21857259960], [15.077, 3.66802659382, 0.52126486180], [14.029, 0.55336333290, 129.91947716160], [13.361, 5.85751083720, 68.84370773410], [15.357, 4.20731277007, 567.82400073240], [12.746, 3.52815836608, 477.33083545520], [11.724, 5.57647263460, 31.23193695810], [11.533, 0.89138506506, 594.65070367540], [10.508, 4.35552732772, 32.71640966640], [10.826, 5.21826226871, 26.82670294300], [10.085, 1.98102855874, 40.58071619260], [10.518, 5.27281360238, 2.92076130680], [9.207, 0.50092534158, 64.95973858080], [9.231, 0.68180977710, 160.93896579860], [8.735, 5.80657503476, 6.59228213900], [10.114, 4.51164596694, 28.57180808220], [10.392, 5.18877536013, 42.58645376270], [9.873, 3.76512158080, 181.75834193920], [8.350, 2.82449631025, 43.24084506850], [9.838, 1.49438763600, 47.69426319340], [7.645, 4.07503370297, 389.94962794650], [8.004, 2.78082277326, 505.78502345840], [7.440, 2.35731983047, 11.04570026390], [7.342, 1.62279119952, 135.54855145410], [9.450, 0.27241261915, 426.59819087600], [7.192, 0.82841201068, 911.04257333200], [6.979, 1.86753914872, 206.18554843720], [6.874, 0.83802906828, 82.85835341460], [7.897, 1.86554246391, 38.65430049960], [6.729, 3.98338053636, 12.53017297220], [6.357, 0.90093123522, 487.36514376280], [6.720, 1.33936040700, 220.41264243880], [7.695, 5.13312500855, 23.90594163620], [7.059, 5.99832463494, 639.89728631400], [8.302, 3.85960902325, 37.61177077600], [6.412, 2.41743702679, 1059.38193018920], [6.751, 1.96860894470, 45.24658263860], [6.431, 4.07813226506, 35.68535508300], [5.517, 3.81325790890, 815.06334611420], [5.562, 0.41619602150, 563.63121503840], [6.115, 2.10934525342, 697.74347789400], [6.216, 4.79301628209, 143.62530630140], [5.346, 3.13071964722, 386.98068252990], [5.245, 6.06245070403, 171.23390653710], [5.129, 0.79394555531, 179.09821306330], [5.168, 4.73765992885, 522.57741809380], [6.422, 0.64684316894, 350.33211960040], [5.006, 2.37645082899, 77.22927912210], [5.005, 4.70632786971, 460.53844081980], [5.167, 5.20246616570, 446.31134681820], [5.119, 2.17338058771, 494.73932319450], [5.025, 4.21265519856, 536.80451209540], [4.722, 6.22814313946, 63.73589830340], [5.125, 5.38138329172, 179.31066138440], [4.918, 4.09031782903, 488.37653571910], [4.652, 5.10765073368, 274.06604832480], [4.711, 5.56542374115, 42.32582133180], [4.459, 1.30784829830, 69.36497259590], [5.485, 3.88088464259, 218.40690486870], [4.416, 3.05353893868, 27.08733537390], [4.559, 4.92224120952, 285.37238101960], [4.393, 4.18047835584, 5.41662597140], [4.687, 2.21401153210, 1029.84691426050], [4.644, 1.87902594973, 1433.61999142580], [5.639, 3.05596737234, 983.11585891360], [6.045, 5.68817982786, 351.81659230870], [4.430, 3.37768805833, 377.41945497430], [4.683, 2.14346624864, 97.41551581630], [5.845, 4.62301099402, 1024.21783996800], [4.536, 2.45860473853, 496.01134758170], [4.398, 5.65312496227, 3.93215326310], [4.287, 0.66340266603, 1012.65087484230], [4.086, 0.14551174994, 385.28376150050], [4.029, 5.98399329775, 178.34745353790], [4.276, 3.68205082970, 348.84764689210], [5.257, 3.75263242432, 379.86713552910], [4.012, 0.42559540783, 104313.47953065898], [4.025, 2.40645188238, 84.34282612290], [3.957, 0.86846121055, 171.98466606250], [3.961, 3.04953080906, 1017.31674128830], [5.559, 0.77714806229, 1447.84708542740], [5.071, 2.61075526868, 1536.71276564440], [4.052, 5.00014006312, 391.64654897590], [5.182, 4.73444634983, 382.83608094570], [3.763, 4.29449373755, 313.68355667090], [4.038, 2.82857942788, 1661.14618086540], [4.067, 5.73169928960, 169.53698550770], [3.841, 1.62580928420, 0.96320784650], [3.901, 2.70874386576, 14.01464568050], [3.721, 1.20062375429, 1026.87796884390], [3.911, 3.01809123569, 100.38446123290], [3.489, 4.28865448963, 1025.18104781450], [3.714, 5.05021268365, 292.48592802040], [3.816, 3.93084933114, 39.09624348430], [3.988, 2.82832650224, 134.11226285560], [3.745, 4.24728135115, 180.79513409270], [3.836, 1.02685786071, 1018.27994913480], [3.941, 5.21895739331, 183.76407950930], [4.669, 4.38080962573, 1066.49547719000], [3.780, 6.03723468132, 1022.73336725970], [3.647, 3.98130320367, 608.87779767700], [3.456, 5.54052355058, 846.08283475120], [4.047, 3.71041480907, 1018.06750081370], [3.865, 4.76002199091, 166.56804009110], [3.629, 3.29053233846, 447.79581952650], [3.564, 4.36703678321, 397.06317494730], [3.304, 1.49289552229, 1505.69327700740], [3.976, 2.42476188945, 106.01353552540], [4.217, 4.21677652639, 1052.26838318840], [3.294, 0.42088065654, 22.63391724900], [3.615, 3.68096122231, 494.52687487340], [3.230, 5.10786091356, 69.15252427480], [3.280, 3.62226152032, 531.17543780290], [3.337, 2.72502876320, 481.47543703940], [3.187, 0.08677634706, 399.51085550210], [3.389, 1.79454271219, 1519.92037100900], [3.179, 3.40418030121, 423.62924545940], [3.154, 3.69356460843, 470.21728845440], [3.706, 2.79048710497, 462.02291352810], [3.136, 4.38015969606, 385.49620982160], [3.122, 0.48346644637, 79.18683258240], [3.392, 0.48037804731, 521.09294538550], [3.465, 0.93152295589, 2183.72359895920], [3.735, 0.98809808606, 487.41332787260], [3.998, 3.38773325131, 6283.07584999140], [2.998, 2.61728063127, 487.62577619370], [3.295, 2.53821501556, 4.66586644600], [2.964, 3.66274645375, 495.49008271990], [3.901, 1.65463523144, 210.33015002140], [2.950, 1.99904237956, 872.90953769420], [2.948, 2.90769224206, 391.43410065480], [2.971, 0.31626092637, 5.10780943070], [3.085, 0.95725590904, 109.94568878850], [2.995, 3.34433305798, 394.09422953070], [3.126, 5.89472116854, 105.49227066360], [3.904, 3.01022809543, 556.51766803760], [3.388, 6.24936444215, 535.32003938710], [2.930, 6.15005257333, 164.12035953630], [3.267, 4.19718045293, 518.38463239980], [3.946, 2.88842759670, 151.26011816400], [3.076, 6.04134449219, 142.14083359310], [2.823, 0.60712626756, 214.78356814630], [2.917, 2.74502617182, 138.51749687070], [3.347, 6.09373507569, 6246.42728706190], [3.659, 5.12211619716, 79.23501669220], [3.010, 0.24656411754, 91.78644152380], [2.861, 6.17465663902, 422.40540518200], [2.989, 2.31620917965, 485.92885516430], [3.088, 2.29186342974, 110.20632121940], [3.030, 3.69866149100, 532.61172640140], [3.020, 2.36422658177, 290.21955801940], [3.170, 1.23078934548, 10176.63698328150], [2.652, 3.35836234807, 148.07872442630], [2.673, 6.03366372927, 196.50670080260], [2.630, 0.46957619348, 1970.42450352120], [2.599, 4.86022081674, 439.19779981740], [2.878, 2.61946597178, 488.58898404020], [2.720, 1.71836225398, 364.55921360200], [3.333, 3.25126857354, 30.05628079050], [3.053, 2.49346960035, 6243.45834164530], [3.062, 6.23776299963, 419.48464387520], [2.786, 0.83078219939, 497.18700374930], [2.834, 3.52926079424, 457.87831194390], [2.932, 1.80245810977, 500.15594916590], [3.030, 5.10152500393, 367.97010200330], [2.956, 5.76230870725, 986.08480433020], [3.116, 2.20042242739, 495.70253104100], [2.554, 0.65945973992, 67.35923502580], [2.901, 3.91891656185, 10173.66803786490], [2.840, 1.34453183591, 482.95990974770], [2.458, 1.20012815574, 489.11024890200], [2.556, 3.86921927085, 487.10451133190], [2.614, 1.51881085312, 463.50738623640], [2.386, 4.58400538443, 615.99134467780], [2.438, 5.19827220476, 501.11915701240], [2.537, 1.64802783144, 519.60847267720], [2.444, 3.87859489652, 185.24855221760], [2.795, 4.04265752580, 255.05546779820], [2.895, 3.26202698812, 1646.91908686380], [2.225, 5.75197574692, 605.95703637020], [2.324, 3.99503920129, 481.26298871830], [2.962, 1.74151265966, 2080.63082474060], [2.621, 1.74442251671, 35.21227433100], ], # R2 [ [4247.412, 5.89910679117, 38.13303563780], [217.570, 0.34581829080, 1.48447270830], [163.025, 2.23872947130, 168.05251279940], [156.285, 4.59414467342, 182.27960680100], [117.940, 5.10295026024, 484.44438245600], [112.429, 1.19000583596, 498.67147645760], [127.141, 2.84786298079, 35.16409022120], [99.467, 3.41578558739, 175.16605980020], [64.814, 3.46214064840, 388.46515523820], [77.286, 0.01659281785, 491.55792945680], [49.509, 4.06995509133, 76.26607127560], [39.330, 6.09521855958, 1021.24889455140], [36.450, 5.17130059988, 137.03302416240], [37.080, 5.97288967681, 2.96894541660], [30.484, 3.58259801313, 33.67961751290], [21.099, 0.76843555176, 36.64856292950], [13.886, 3.59248623971, 395.57870223900], [13.117, 5.09263515697, 98.89998852460], [11.379, 1.18060018898, 381.35160823740], [9.132, 2.34787658568, 601.76425067620], [8.527, 5.25134685897, 2.44768055480], [8.136, 4.96270726986, 4.45341812490], [7.417, 4.46775409796, 189.39315380180], [7.225, 1.92287508629, 9.56122755560], [7.289, 1.65519525780, 1028.36244155220], [8.076, 5.84268048311, 220.41264243880], [9.654, 0.00000000000, 0.00000000000], [6.554, 0.69397520733, 144.14657116320], [7.782, 1.14341656235, 1059.38193018920], [5.665, 6.25378258571, 74.78159856730], [5.628, 5.23383764266, 46.20979048510], [5.523, 4.59041448911, 1014.13534755060], [5.177, 5.23116646157, 477.33083545520], [5.503, 3.49522319102, 183.76407950930], [4.878, 3.52934357721, 39.61750834610], [4.787, 2.08260524745, 41.10198105440], [5.055, 0.19949888617, 166.56804009110], [4.751, 1.18054948270, 169.53698550770], [4.747, 1.50608965076, 73.29712585900], [6.113, 6.18326155595, 71.81265315070], [4.606, 3.91970908886, 587.53715667460], [5.756, 2.23667359233, 176.65053250850], [4.536, 2.84337336954, 7.11354700080], [4.338, 0.51553847388, 446.31134681820], [3.891, 0.26338839265, 1550.93985964600], [4.465, 3.01487041298, 129.91947716160], [3.727, 2.37977930658, 160.93896579860], [3.840, 3.79290381880, 111.43016149680], [4.142, 1.70293820961, 983.11585891360], [3.296, 1.07748822909, 505.78502345840], [4.008, 0.30663868827, 494.73932319450], [3.974, 5.97351783840, 488.37653571910], [3.925, 4.85736421123, 60.76695288680], [2.966, 2.01608546009, 822.17689311500], [3.972, 1.07780371834, 374.23806123660], [3.843, 5.23002047199, 350.33211960040], [2.848, 6.17799253802, 704.85702489480], [3.527, 0.79317138165, 274.06604832480], [2.828, 1.32275775835, 386.98068252990], [2.773, 5.37132330836, 251.43213107580], [3.113, 5.12622288690, 426.59819087600], [3.344, 5.61433537548, 1124.34166877000], [2.597, 0.67759426519, 312.19908396260], [2.581, 3.55847612121, 567.82400073240], [2.578, 1.45603792456, 1035.47598855300], [2.541, 5.19427579702, 1227.43444298860], [2.510, 4.12148891512, 171.23390653710], [2.511, 2.71606957319, 179.09821306330], [2.342, 0.96469916587, 1019.76442184310], [2.500, 0.70282276030, 707.77778620160], [2.480, 4.59623030219, 693.55069220000], [2.253, 0.74334306011, 976.00231191280], ], # R3 [ [166.297, 4.55243893489, 38.13303563780], [22.380, 3.94830879358, 168.05251279940], [21.348, 2.86296778794, 182.27960680100], [16.233, 0.54226725872, 484.44438245600], [15.623, 5.75702251906, 498.67147645760], [11.867, 4.40280192710, 1.48447270830], [6.448, 5.19003066847, 31.01948863700], [3.655, 5.91335292846, 1007.02180054980], [3.681, 1.62865545676, 388.46515523820], [3.198, 0.70197118575, 1558.05340664680], [3.243, 1.88035665980, 522.57741809380], [3.269, 2.94301808574, 76.26607127560], [2.688, 1.87062743473, 402.69224923980], [3.246, 0.79381356193, 536.80451209540], [2.650, 5.76858449026, 343.21857259960], [2.644, 4.64542905401, 500.15594916590], [2.541, 4.79217120822, 482.95990974770], [2.523, 1.72869889780, 395.57870223900], [2.690, 2.21096415618, 446.31134681820], [2.355, 5.77381398401, 485.92885516430], [2.874, 6.19643340540, 815.06334611420], [2.278, 3.66579603119, 497.18700374930], ], # R4 [ [4.227, 2.40375758563, 477.33083545520], [4.333, 0.10459484545, 395.57870223900], [3.545, 4.78431259422, 1028.36244155220], [3.154, 3.88192942366, 505.78502345840], [3.016, 1.03609346831, 189.39315380180], [2.294, 1.10879658603, 182.27960680100], [2.295, 5.67776133184, 168.05251279940], ], ] """This table contains Neptune's periodic terms (all of them) from the planetary theory VSOP87 for the radius vector at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in page 454.""" ORBITAL_ELEM = [ [304.348665, 219.8833092, 0.00030882, 0.000000018], # L [30.110386869, -0.0000001663, 0.00000000069, 0.0], # a [0.00945575, 0.000006033, 0.0, -0.00000000005], # e [1.769953, -0.0093082, -0.00000708, 0.000000027], # i [131.748057, 1.1022039, 0.00025952, -0.000000637], # Omega [48.120276, 1.4262957, 0.00038434, 0.00000002] # pie ] """This table contains the parameters to compute Neptune's orbital elements for the mean equinox of date. Based in Table 31.A, page 213""" ORBITAL_ELEM_J2000 = [ [304.348665, 218.4862002, 0.00000059, -0.000000002], # L [1.769953, 0.0002256, 0.00000023, 0.0], # i [131.748057, -0.0061651, -0.00000219, -0.000000078], # Omega [48.120276, 0.0291866, 0.0000761, 0.0] # pie ] """This table contains the parameters to compute Neptune's orbital elements for the standard equinox J2000.0. Based on Table 31.B, page 215""" class Neptune(object): """ Class Neptune models that planet. """ @staticmethod def geometric_heliocentric_position(epoch, tofk5=True): """This method computes the geometric heliocentric position of planet Neptune for a given epoch, using the VSOP87 theory. :param epoch: Epoch to compute Neptune position, as an Epoch object :type epoch: :py:class:`Epoch` :param tofk5: Whether or not the small correction to convert to the FK5 system will be applied or not :type tofk5: bool :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2018, 10, 27.0) >>> l, b, r = Neptune.geometric_heliocentric_position(epoch) >>> print(round(l.to_positive(), 4)) 345.3776 >>> print(round(b, 4)) -0.9735 >>> print(round(r, 5)) 29.93966 """ return geometric_vsop_pos(epoch, VSOP87_L, VSOP87_B, VSOP87_R, tofk5) @staticmethod def apparent_heliocentric_position(epoch): """This method computes the apparent heliocentric position of planet Neptune for a given epoch, using the VSOP87 theory. :param epoch: Epoch to compute Neptune position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. """ return apparent_vsop_pos(epoch, VSOP87_L, VSOP87_B, VSOP87_R) @staticmethod def orbital_elements_mean_equinox(epoch): """This method computes the orbital elements of Neptune for the mean equinox of the date for a given epoch. :param epoch: Epoch to compute orbital elements, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the following six orbital elements: - Mean longitude of the planet (Angle) - Semimajor axis of the orbit (float, astronomical units) - eccentricity of the orbit (float) - inclination on the plane of the ecliptic (Angle) - longitude of the ascending node (Angle) - argument of the perihelion (Angle) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2065, 6, 24.0) >>> l, a, e, i, ome, arg = Neptune.orbital_elements_mean_equinox(epoch) >>> print(round(l, 6)) 88.321947 >>> print(round(a, 8)) 30.11038676 >>> print(round(e, 7)) 0.0094597 >>> print(round(i, 6)) 1.763855 >>> print(round(ome, 5)) 132.46986 >>> print(round(arg, 6)) -83.415521 """ return orbital_elements(epoch, ORBITAL_ELEM, ORBITAL_ELEM) @staticmethod def orbital_elements_j2000(epoch): """This method computes the orbital elements of Neptune for the standard equinox J2000.0 for a given epoch. :param epoch: Epoch to compute orbital elements, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the following six orbital elements: - Mean longitude of the planet (Angle) - Semimajor axis of the orbit (float, astronomical units) - eccentricity of the orbit (float) - inclination on the plane of the ecliptic (Angle) - longitude of the ascending node (Angle) - argument of the perihelion (Angle) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2065, 6, 24.0) >>> l, a, e, i, ome, arg = Neptune.orbital_elements_j2000(epoch) >>> print(round(l, 6)) 87.407029 >>> print(round(a, 8)) 30.11038676 >>> print(round(e, 7)) 0.0094597 >>> print(round(i, 6)) 1.770101 >>> print(round(ome, 5)) 131.74402 >>> print(round(arg, 6)) -83.6046 """ return orbital_elements(epoch, ORBITAL_ELEM, ORBITAL_ELEM_J2000) @staticmethod def geocentric_position(epoch): """This method computes the geocentric position of Neptune (right ascension and declination) for the given epoch, as well as the elongation angle. :param epoch: Epoch to compute geocentric position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the right ascension, the declination and the elongation angle as Angle objects :rtype: tuple :raises: TypeError if input value is of wrong type. >>> epoch = Epoch(1992, 12, 20.0) >>> ra, dec, elon = Neptune.geocentric_position(epoch) >>> print(ra.ra_str(n_dec=1)) 19h 17' 14.5'' >>> print(dec.dms_str(n_dec=1)) -21d 34' 15.1'' >>> print(elon.dms_str(n_dec=1)) 19d 44' 59.6'' """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Compute the heliocentric position of Neptune l, b, r = Neptune.geometric_heliocentric_position(epoch, tofk5=False) # Compute the heliocentric position of the Earth l0, b0, r0 = Earth.geometric_heliocentric_position(epoch, tofk5=False) # Convert to radians lr = l.rad() br = b.rad() l0r = l0.rad() b0r = b0.rad() # Compute first iteration x = r * cos(br) * cos(lr) - r0 * cos(b0r) * cos(l0r) y = r * cos(br) * sin(lr) - r0 * cos(b0r) * sin(l0r) z = r * sin(br) - r0 * sin(b0r) delta = sqrt(x * x + y * y + z * z) tau = 0.0057755183 * delta # Adjust the epoch for light-time epoch -= tau # Compute again Neptune coordinates with this correction l, b, r = Neptune.geometric_heliocentric_position(epoch, tofk5=False) # Compute second iteration lr = l.rad() br = b.rad() x = r * cos(br) * cos(lr) - r0 * cos(b0r) * cos(l0r) y = r * cos(br) * sin(lr) - r0 * cos(b0r) * sin(l0r) z = r * sin(br) - r0 * sin(b0r) # Compute longitude and latitude lamb = atan2(y, x) beta = atan2(z, sqrt(x * x + y * y)) # Now, let's compute the aberration effect t = (epoch - JDE2000) / 36525 e = 0.016708634 + t * (-0.000042037 - t * 0.0000001267) pie = 102.93735 + t * (1.71946 + t * 0.00046) pie = radians(pie) lon = l0 + 180.0 lon = lon.rad() k = 20.49552 # The constant of aberration deltal1 = k * (-cos(lon - lamb) + e * cos(pie - lamb)) / cos(beta) deltab1 = -k * sin(beta) * (sin(lon - lamb) - e * sin(pie - lamb)) deltal1 = Angle(0, 0, deltal1) deltab1 = Angle(0, 0, deltab1) # Correction to FK5 system lamb = Angle(lamb, radians=True) lamb = lamb.to_positive() beta = Angle(beta, radians=True) l_prime = lamb - t * (1.397 + t * 0.00031) deltal2 = Angle(0, 0, -0.09033) a = 0.03916 * (cos(l_prime.rad()) + sin(l_prime.rad())) a = a * tan(b.rad()) deltal2 += Angle(0, 0, a) deltab2 = 0.03916 * (cos(l_prime.rad()) - sin(l_prime.rad())) deltab2 = Angle(0, 0, deltab2) # Apply the corrections lamb = lamb + deltal1 + deltal2 beta = beta + deltab1 + deltab2 # Correction for nutation dpsi = nutation_longitude(epoch) lamb += dpsi e = true_obliquity(epoch) ra, dec = ecliptical2equatorial(lamb, beta, e) # Let's compute the elongation angle lons, lats, rs = Sun.apparent_geocentric_position(epoch) lambr = lamb.rad() lsr = lons.rad() betar = beta.rad() elon = acos(cos(betar) * cos(lambr - lsr)) elon = Angle(elon, radians=True) return ra, dec, elon @staticmethod def conjunction(epoch): """This method computes the time of the conjunction closest to the given epoch. :param epoch: Epoch close to the desired conjunction :type epoch: :py:class:`Epoch` :returns: The time when the conjunction happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(1993, 10, 1.0) >>> conj = Neptune.conjunction(epoch) >>> y, m, d = conj.get_date() >>> print(y) 1994 >>> print(m) 1 >>> print(round(d, 4)) 11.3057 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Neptune's conjunction a = 2451569.379 b = 367.486703 m0 = 21.5569 m1 = 2.194998 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 # Compute a couple auxiliary angles ee = 207.83 + 8.51 * t gg = 276.74 + 209.98 * t # Convert to radians ee = Angle(ee).rad() gg = Angle(gg).rad() corr = (0.0168 + sin(m) * (-2.5606 + t * (0.0088 + t * 0.00002)) + cos(m) * (-0.8611 + t * (-0.0037 + t * 0.00002)) + sin(2.0 * m) * (0.0118 + t * (-0.0004 + t * 0.00001)) + cos(2.0 * m) * (0.0307 - t * 0.0003) + cos(ee) * (-0.5964) + cos(gg) * (0.0728)) to_return = jde0 + corr return Epoch(to_return) @staticmethod def opposition(epoch): """This method computes the time of the opposition closest to the given epoch. :param epoch: Epoch close to the desired opposition :type epoch: :py:class:`Epoch` :returns: The time when the opposition happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(1846, 8, 1) >>> oppo = Neptune.opposition(epoch) >>> y, m, d = oppo.get_date() >>> print(y) 1846 >>> print(m) 8 >>> print(round(d, 4)) 20.1623 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Neptune's opposition a = 2451753.122 b = 367.486703 m0 = 202.6544 m1 = 2.194998 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 # Compute a couple auxiliary angles ee = 207.83 + 8.51 * t gg = 276.74 + 209.98 * t # Convert to radians ee = Angle(ee).rad() gg = Angle(gg).rad() corr = (-0.014 + t * t * 0.00001 + sin(m) * (-1.3486 + t * (0.001 + t * 0.00001)) + cos(m) * (0.8597 + t * 0.0037) + sin(2.0 * m) * (-0.0082 + t * (-0.0002 + t * 0.00001)) + cos(2.0 * m) * (0.0037 - t * 0.0003) + cos(ee) * (-0.5964) + cos(gg) * (0.0728)) to_return = jde0 + corr return Epoch(to_return) @staticmethod def magnitude(sun_dist, earth_dist): """This function computes the approximate magnitude of Neptune. :param sun_dist: Distance from Neptune to Sun, in Astronomical Units :type sun_dist: float :param earth_dist: Distance Neptune to Earth, in Astronomical Units :type earth_dist: float :returns: Neptune's magnitude :rtype: float :raises: TypeError if input values are of wrong type. """ if not (isinstance(sun_dist, float) and isinstance(earth_dist, float)): raise TypeError("Invalid input types") m = -7.05 + 5.0 * log10(sun_dist * earth_dist) return round(m, 1) def main(): # Let's define a small helper function def print_me(msg, val): print("{}: {}".format(msg, val)) # Let's show some uses of Neptune class print("\n" + 35 * "*") print("*** Use of Neptune class") print(35 * "*" + "\n") # Let's now compute the heliocentric position for a given epoch epoch = Epoch(2018, 10, 27.0) lon, lat, r = Neptune.geometric_heliocentric_position(epoch) print_me("Geometric Heliocentric Longitude", lon.to_positive()) print_me("Geometric Heliocentric Latitude", lat) print_me("Radius vector", r) print("") # Compute the geocentric position for 1992/12/20: epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Neptune.geocentric_position(epoch) print_me("Right ascension", ra.ra_str(n_dec=1)) print_me("Declination", dec.dms_str(n_dec=1)) print_me("Elongation", elon.dms_str(n_dec=1)) print("") # Print mean orbital elements for Neptune at 2065.6.24 epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Neptune.orbital_elements_mean_equinox(epoch) print_me("Mean longitude of the planet", round(l, 6)) # 88.321947 print_me("Semimajor axis of the orbit (UA)", round(a, 8)) # 30.11038676 print_me("Eccentricity of the orbit", round(e, 7)) # 0.0094597 print_me("Inclination on plane of the ecliptic", round(i, 6)) # 1.763855 print_me("Longitude of the ascending node", round(ome, 5)) # 132.46986 print_me("Argument of the perihelion", round(arg, 6)) # -83.415521 print("") # Compute the time of the conjunction close to 1993/10/1 epoch = Epoch(1993, 10, 1.0) conj = Neptune.conjunction(epoch) y, m, d = conj.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Conjunction date", date) # Compute the time of the opposition close to 1846/8/1 epoch = Epoch(1846, 8, 1) oppo = Neptune.opposition(epoch) y, m, d = oppo.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Opposition date", date) if __name__ == "__main__": main() pymeeus-0.3.6/pymeeus/Pluto.py000066400000000000000000000262421355545537700164040ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from math import sin, cos, sqrt, asin, atan2 from pymeeus.Angle import Angle from pymeeus.Epoch import Epoch, JDE2000 from pymeeus.Sun import Sun """ .. module:: Pluto :synopsis: Class to model Pluto minor planet :license: GNU Lesser General Public License v3 (LGPLv3) .. moduleauthor:: Dagoberto Salazar """ PLUTO_ARGUMENT = [ (0.0, 0.0, 1.0), (0.0, 0.0, 2.0), (0.0, 0.0, 3.0), (0.0, 0.0, 4.0), (0.0, 0.0, 5.0), (0.0, 0.0, 6.0), (0.0, 1.0, -1.0), (0.0, 1.0, 0.0), (0.0, 1.0, 1.0), (0.0, 1.0, 2.0), (0.0, 1.0, 3.0), (0.0, 2.0, -2.0), (0.0, 2.0, -1.0), (0.0, 2.0, 0.0), (1.0, -1.0, 0.0), (1.0, -1.0, 1.0), (1.0, 0.0, -3.0), (1.0, 0.0, -2.0), (1.0, 0.0, -1.0), (1.0, 0.0, 0.0), (1.0, 0.0, 1.0), (1.0, 0.0, 2.0), (1.0, 0.0, 3.0), (1.0, 0.0, 4.0), (1.0, 1.0, -3.0), (1.0, 1.0, -2.0), (1.0, 1.0, -1.0), (1.0, 1.0, 0.0), (1.0, 1.0, 1.0), (1.0, 1.0, 3.0), (2.0, 0.0, -6.0), (2.0, 0.0, -5.0), (2.0, 0.0, -4.0), (2.0, 0.0, -3.0), (2.0, 0.0, -2.0), (2.0, 0.0, -1.0), (2.0, 0.0, 0.0), (2.0, 0.0, 1.0), (2.0, 0.0, 2.0), (2.0, 0.0, 3.0), (3.0, 0.0, -2.0), (3.0, 0.0, -1.0), (3.0, 0.0, 0.0) ] """This table contains Pluto's argument coefficients according to Table 37.A in Meeus' book, page 265.""" PLUTO_LONGITUDE = [ (-19799805.0, 19850055.0), (897144.0, -4954829.0), (611149.0, 1211027.0), (-341243.0, -189585.0), (129287.0, -34992.0), (-38164.0, 30893.0), (20442.0, -9987.0), (-4063.0, -5071.0), (-6016.0, -3336.0), (-3956.0, 3039.0), (-667.0, 3572.0), (1276.0, 501.0), (1152.0, -917.0), (630.0, -1277.0), (2571.0, -459.0), (899.0, -1449.0), (-1016.0, 1043.0), (-2343.0, -1012.0), (7042.0, 788.0), (1199.0, -338.0), (418.0, -67.0), (120.0, -274.0), (-60.0, -159.0), (-82.0, -29.0), (-36.0, -29.0), (-40.0, 7.0), (-14.0, 22.0), (4.0, 13.0), (5.0, 2.0), (-1.0, 0.0), (2.0, 0.0), (-4.0, 5.0), (4.0, -7.0), (14.0, 24.0), (-49.0, -34.0), (163.0, -48.0), (9.0, -24.0), (-4.0, 1.0), (-3.0, 1.0), (1.0, 3.0), (-3.0, -1.0), (5.0, -3.0), (0.0, 0.0) ] """This table contains the periodic terms to compute Pluto's heliocentric longitude according to Table 37.A in Meeus' book, page 265""" PLUTO_LATITUDE = [ (-5452852.0, -14974862), (3527812.0, 1672790.0), (-1050748.0, 327647.0), (178690.0, -292153.0), (18650.0, 100340.0), (-30697.0, -25823.0), (4878.0, 11248.0), (226.0, -64.0), (2030.0, -836.0), (69.0, -604.0), (-247.0, -567.0), (-57.0, 1.0), (-122.0, 175.0), (-49.0, -164.0), (-197.0, 199.0), (-25.0, 217.0), (589.0, -248.0), (-269.0, 711.0), (185.0, 193.0), (315.0, 807.0), (-130.0, -43.0), (5.0, 3.0), (2.0, 17.0), (2.0, 5.0), (2.0, 3.0), (3.0, 1.0), (2.0, -1.0), (1.0, -1.0), (0.0, -1.0), (0.0, 0.0), (0.0, -2.0), (2.0, 2.0), (-7.0, 0.0), (10.0, -8.0), (-3.0, 20.0), (6.0, 5.0), (14.0, 17.0), (-2.0, 0.0), (0.0, 0.0), (0.0, 0.0), (0.0, 1.0), (0.0, 0.0), (1.0, 0.0) ] """This table contains the periodic terms to compute Pluto's heliocentric latitude according to Table 37.A in Meeus' book, page 265""" PLUTO_RADIUS_VECTOR = [ (66865439.0, 68951812.0), (-11827535.0, -332538.0), (1593179.0, -1438890.0), (-18444.0, 483220.0), (-65977.0, -85431.0), (31174.0, -6032.0), (-5794.0, 22161.0), (4601.0, 4032.0), (-1729.0, 234.0), (-415.0, 702.0), (239.0, 723.0), (67.0, -67.0), (1034.0, -451.0), (-129.0, 504.0), (480.0, -231.0), (2.0, -441.0), (-3359.0, 265.0), (7856.0, -7832.0), (36.0, 45763.0), (8663.0, 8547.0), (-809.0, -769.0), (263.0, -144.0), (-126.0, 32.0), (-35.0, -16.0), (-19.0, -4.0), (-15.0, 8.0), (-4.0, 12.0), (5.0, 6.0), (3.0, 1.0), (6.0, -2.0), (2.0, 2.0), (-2.0, -2.0), (14.0, 13.0), (-63.0, 13.0), (136.0, -236.0), (273.0, 1065.0), (251.0, 149.0), (-25.0, -9.0), (9.0, -2.0), (-8.0, 7.0), (2.0, -10.0), (19.0, 35.0), (10.0, 3.0) ] """This table contains the periodic terms to compute Pluto's heliocentric radius vector according to Table 37.A in Meeus' book, page 265""" class Pluto(object): """ Class Pluto models that minor planet. """ @staticmethod def geometric_heliocentric_position(epoch): """This method computes the geometric heliocentric position of planet Pluto for a given epoch. :param epoch: Epoch to compute Pluto position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the 1885-2099 range. >>> epoch = Epoch(1992, 10, 13.0) >>> l, b, r = Pluto.geometric_heliocentric_position(epoch) >>> print(round(l, 5)) 232.74071 >>> print(round(b, 5)) 14.58782 >>> print(round(r, 6)) 29.711111 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < 1885.0 or y > 2099.0: raise ValueError("Epoch outside the 1885-2099 range") t = (epoch - JDE2000) / 36525.0 jj = 34.35 + 3034.9057 * t ss = 50.08 + 1222.1138 * t pp = 238.96 + 144.96 * t # Compute the arguments corr_lon = 0.0 corr_lat = 0.0 corr_rad = 0.0 for n, argument in enumerate(PLUTO_ARGUMENT): iii, jjj, kkk = argument alpha = Angle(iii * jj + jjj * ss + kkk * pp).to_positive() alpha = alpha.rad() sin_a = sin(alpha) cos_a = cos(alpha) a_lon, b_lon = PLUTO_LONGITUDE[n] corr_lon += a_lon * sin_a + b_lon * cos_a a_lat, b_lat = PLUTO_LATITUDE[n] corr_lat += a_lat * sin_a + b_lat * cos_a a_rad, b_rad = PLUTO_RADIUS_VECTOR[n] corr_rad += a_rad * sin_a + b_rad * cos_a # The coefficients in the tables were scaled up. Let's scale them down corr_lon /= 1000000.0 corr_lat /= 1000000.0 corr_rad /= 10000000.0 lon = Angle(238.958116 + 144.96 * t + corr_lon) lat = Angle(-3.908239 + corr_lat) radius = 40.7241346 + corr_rad return lon, lat, radius @staticmethod def geocentric_position(epoch): """This method computes the geocentric position of Pluto (right ascension and declination) for the given epoch, for the standard equinox J2000.0. :param epoch: Epoch to compute geocentric position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the right ascension and the declination as Angle objects :rtype: tuple :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the 1885-2099 range. >>> epoch = Epoch(1992, 10, 13.0) >>> ra, dec = Pluto.geocentric_position(epoch) >>> print(ra.ra_str(n_dec=1)) 15h 31' 43.7'' >>> print(dec.dms_str(n_dec=0)) -4d 27' 29.0'' """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < 1885.0 or y > 2099.0: raise ValueError("Epoch outside the 1885-2099 range") # Compute the heliocentric position of Pluto ll, b, r = Pluto.geometric_heliocentric_position(epoch) # Change angles to radians ll = ll.rad() b = b.rad() # Values corresponding to obliquity of ecliptic (epsilon) for J2000.0 sine = 0.397777156 cose = 0.917482062 x = r * cos(ll) * cos(b) y = r * (sin(ll) * cos(b) * cose - sin(b) * sine) z = r * (sin(ll) * cos(b) * sine + sin(b) * cose) # Compute Sun's J2000.0 rectacngular coordinates xs, ys, zs = Sun.rectangular_coordinates_j2000(epoch) # Compute auxiliary quantities xi = x + xs eta = y + ys zeta = z + zs # Compute Pluto's distance to Earth delta = sqrt(xi * xi + eta * eta + zeta * zeta) # Get the light-time difference tau = 0.0057755183 * delta # Repeat the computations using the light-time correction ll, b, r = Pluto.geometric_heliocentric_position(epoch - tau) # Change angles to radians ll = ll.rad() b = b.rad() x = r * cos(ll) * cos(b) y = r * (sin(ll) * cos(b) * cose - sin(b) * sine) z = r * (sin(ll) * cos(b) * sine + sin(b) * cose) # Compute auxiliary quantities xi = x + xs eta = y + ys zeta = z + zs # Compute Pluto's distance to Earth delta = sqrt(xi * xi + eta * eta + zeta * zeta) # Compute right ascension and declination alpha = Angle(atan2(eta, xi), radians=True) dec = Angle(asin(zeta / delta), radians=True) return alpha.to_positive(), dec def main(): # Let's define a small helper function def print_me(msg, val): print("{}: {}".format(msg, val)) # Let's show some uses of Pluto class print("\n" + 35 * "*") print("*** Use of Pluto class") print(35 * "*" + "\n") # Let's now compute the heliocentric position for a given epoch epoch = Epoch(1992, 10, 13.0) lon, lat, r = Pluto.geometric_heliocentric_position(epoch) print_me("Geometric Heliocentric Longitude", lon.to_positive()) print_me("Geometric Heliocentric Latitude", lat) print_me("Radius vector", r) print("") # Compute the geocentric position for 1992/10/13: epoch = Epoch(1992, 10, 13.0) ra, dec = Pluto.geocentric_position(epoch) print_me("Right ascension", ra.ra_str(n_dec=1)) print_me("Declination", dec.dms_str(n_dec=1)) if __name__ == "__main__": main() pymeeus-0.3.6/pymeeus/Saturn.py000066400000000000000000011520161355545537700165550ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from math import sin, cos, tan, acos, atan2, sqrt, radians, log10 from pymeeus.Angle import Angle from pymeeus.Epoch import Epoch, JDE2000 from pymeeus.Interpolation import Interpolation from pymeeus.Coordinates import ( geometric_vsop_pos, apparent_vsop_pos, orbital_elements, nutation_longitude, true_obliquity, ecliptical2equatorial, passage_nodes_elliptic ) from pymeeus.Earth import Earth from pymeeus.Sun import Sun """ .. module:: Saturn :synopsis: Class to model Saturn planet :license: GNU Lesser General Public License v3 (LGPLv3) .. moduleauthor:: Dagoberto Salazar """ VSOP87_L = [ # L0 [ [87401354.029, 0.00000000000, 0.00000000000], [11107659.780, 3.96205090194, 213.29909543800], [1414150.958, 4.58581515873, 7.11354700080], [398379.386, 0.52112025957, 206.18554843720], [350769.223, 3.30329903015, 426.59819087600], [206816.296, 0.24658366938, 103.09277421860], [79271.288, 3.84007078530, 220.41264243880], [23990.338, 4.66976934860, 110.20632121940], [16573.583, 0.43719123541, 419.48464387520], [14906.995, 5.76903283845, 316.39186965660], [15820.300, 0.93808953760, 632.78373931320], [14609.562, 1.56518573691, 3.93215326310], [13160.308, 4.44891180176, 14.22709400160], [15053.509, 2.71670027883, 639.89728631400], [13005.305, 5.98119067061, 11.04570026390], [10725.066, 3.12939596466, 202.25339517410], [5863.207, 0.23657028777, 529.69096509460], [5227.771, 4.20783162380, 3.18139373770], [6126.308, 1.76328499656, 277.03499374140], [5019.658, 3.17787919533, 433.71173787680], [4592.541, 0.61976424374, 199.07200143640], [4005.862, 2.24479893937, 63.73589830340], [2953.815, 0.98280385206, 95.97922721780], [3873.696, 3.22282692566, 138.51749687070], [2461.172, 2.03163631205, 735.87651353180], [3269.490, 0.77491895787, 949.17560896980], [1758.143, 3.26580514774, 522.57741809380], [1640.183, 5.50504966218, 846.08283475120], [1391.336, 4.02331978116, 323.50541665740], [1580.641, 4.37266314120, 309.27832265580], [1123.515, 2.83726793572, 415.55249061210], [1017.258, 3.71698151814, 227.52618943960], [848.643, 3.19149825839, 209.36694217490], [1087.237, 4.18343232481, 2.44768055480], [956.752, 0.50740889886, 1265.56747862640], [789.205, 5.00745123149, 0.96320784650], [686.965, 1.74714407827, 1052.26838318840], [654.470, 1.59889331515, 0.04818410980], [748.811, 2.14398149298, 853.19638175200], [633.980, 2.29889903023, 412.37109687440], [743.584, 5.25276954625, 224.34479570190], [852.677, 3.42141350697, 175.16605980020], [579.857, 3.09259007048, 74.78159856730], [624.904, 0.97046831256, 210.11770170030], [529.861, 4.44938897119, 117.31986822020], [542.643, 1.51824320514, 9.56122755560], [474.279, 5.47527185987, 742.99006053260], [448.542, 1.28990416161, 127.47179660680], [546.358, 2.12678554211, 350.33211960040], [478.054, 2.96488054338, 137.03302416240], [354.944, 3.01286483030, 838.96928775040], [451.827, 1.04436664241, 490.33408917940], [347.413, 1.53928227764, 340.77089204480], [343.475, 0.24604039134, 0.52126486180], [309.001, 3.49486734909, 216.48048917570], [322.185, 0.96137456104, 203.73786788240], [372.308, 2.27819108625, 217.23124870110], [321.543, 2.57182354537, 647.01083331480], [330.196, 0.24715617844, 1581.95934828300], [249.116, 1.47010534421, 1368.66025284500], [286.688, 2.37043745859, 351.81659230870], [220.225, 4.20422424873, 200.76892246580], [277.775, 0.40020408926, 211.81462272970], [204.500, 6.01082206600, 265.98929347750], [207.663, 0.48349820488, 1162.47470440780], [208.655, 1.34516255304, 625.67019231240], [182.454, 5.49122292426, 2.92076130680], [226.609, 4.91003163138, 12.53017297220], [207.659, 1.28302218900, 39.35687591520], [173.914, 1.86305806814, 0.75075952540], [184.690, 3.50344404958, 149.56319713460], [183.511, 0.97254952728, 4.19278569400], [146.068, 6.23102544071, 195.13984817330], [164.541, 0.44005517520, 5.41662597140], [147.526, 1.53529320509, 5.62907429250], [139.666, 4.29450260069, 21.34064100240], [131.283, 4.06828961903, 10.29494073850], [117.283, 2.67920400584, 1155.36115740700], [149.299, 5.73594349789, 52.69019803950], [122.373, 1.97588777199, 4.66586644600], [113.747, 5.59427544714, 1059.38193018920], [102.702, 1.19748124058, 1685.05212250160], [118.156, 5.34072933900, 554.06998748280], [109.275, 3.43812715686, 536.80451209540], [110.399, 0.16604024090, 1.48447270830], [124.969, 6.27737805832, 1898.35121793960], [89.949, 5.80392934702, 114.13847448250], [103.956, 2.19210363069, 88.86568021700], [112.437, 1.10502663534, 191.20769491020], [106.570, 4.01156608514, 956.28915597060], [91.430, 1.87521577510, 38.13303563780], [83.791, 5.48810655641, 0.11187458460], [83.461, 2.28972767279, 628.85158605010], [96.987, 4.53666595763, 302.16477565500], [100.631, 4.96513666539, 269.92144674060], [75.491, 2.18045274099, 728.76296653100], [96.330, 2.83319189210, 275.55052103310], [82.363, 3.05469876064, 440.82528487760], [73.888, 5.08914205084, 1375.77379984580], [71.633, 5.10940743430, 65.22037101170], [70.409, 4.86846451411, 0.21244832110], [69.760, 3.71029022489, 14.97785352700], [88.772, 3.86334563977, 278.51946644970], [68.090, 0.73415460990, 1478.86657406440], [66.501, 0.02677580336, 70.84944530420], [65.682, 2.02165559602, 142.44965013380], [75.765, 1.61410487792, 284.14854074220], [63.153, 3.49493353034, 479.28838891550], [62.539, 2.58713611532, 422.66603761290], [69.313, 3.43979731402, 515.46387109300], [79.021, 4.45154941586, 35.42472265210], [63.664, 3.31749528708, 62.25142559510], [52.939, 5.51392725227, 0.26063243090], [53.011, 3.18480701697, 8.07675484730], [54.492, 2.45674090515, 22.09140052780], [50.514, 4.26749346978, 99.16062095550], [55.170, 0.96797446150, 942.06206196900], [49.288, 2.38641424063, 1471.75302706360], [47.199, 2.02515248245, 312.19908396260], [61.080, 1.50295092063, 210.85141488320], [45.126, 0.93109376473, 2001.44399215820], [60.556, 2.68715551585, 388.46515523820], [43.452, 2.52602011714, 288.08069400530], [42.544, 3.81793980322, 330.61896365820], [39.915, 5.71378652900, 408.43894361130], [50.145, 6.03164759907, 2214.74308759620], [45.860, 0.54229721801, 212.33588759150], [54.165, 0.78154835399, 191.95845443560], [47.016, 4.59934671151, 437.64389113990], [42.362, 1.90070070955, 430.53034413910], [39.722, 1.63259419913, 1066.49547719000], [36.345, 0.84756992711, 213.34727954780], [35.468, 4.18603772925, 215.74677599280], [36.344, 3.93295730315, 213.25091132820], [38.005, 0.31313803095, 423.41679713830], [44.746, 1.12488341174, 6.15033915430], [37.902, 1.19795851115, 2.70831298570], [43.402, 1.37363944007, 563.63121503840], [43.764, 3.93043802956, 525.49817940060], [34.825, 1.01566605408, 203.00415469950], [31.755, 1.69273634405, 0.16005869440], [30.880, 6.13525703832, 417.03696332040], [36.388, 6.00586032647, 18.15924726470], [29.032, 1.19660544505, 404.50679034820], [32.812, 0.53649479713, 107.02492748170], [30.433, 0.72335287989, 222.86032299360], [32.644, 0.81204701486, 1795.25844372100], [37.769, 3.69666903716, 1272.68102562720], [27.679, 1.45663979401, 7.16173111060], [27.187, 1.89731951902, 1045.15483618760], [37.699, 4.51997049537, 24.37902238820], [34.885, 4.46095761791, 214.26230328450], [32.650, 0.66372395761, 692.58748435350], [30.324, 5.30369950147, 33.94024994380], [27.480, 6.22702216249, 1.27202438720], [26.657, 4.56713198392, 7.06536289100], [31.745, 5.49798599565, 56.62235130260], [28.050, 5.64447420566, 128.95626931510], [24.277, 3.93966553574, 414.06801790380], [32.017, 5.22260660455, 92.04707395470], [26.976, 0.06705123981, 205.22234059070], [22.974, 3.65817751770, 207.67002114550], [31.775, 5.59198119173, 6069.77675455340], [23.153, 2.10054506119, 1788.14489672020], [31.025, 0.37190053329, 703.63318461740], [29.376, 0.14742155778, 131.40394986990], [22.562, 5.24009182383, 212.77783057620], [26.185, 5.41311252822, 140.00196957900], [25.673, 4.36038885283, 32.24332891440], [20.392, 2.82413909260, 429.77958461370], [20.659, 0.67091805084, 2317.83586181480], [24.397, 3.08740396398, 145.63104387150], [23.735, 2.54365387567, 76.26607127560], [20.157, 5.06708675157, 617.80588578620], [23.307, 3.97357729211, 483.22054217860], [22.878, 6.10452832642, 177.87437278590], [22.978, 3.20140795404, 208.63322899200], [20.638, 5.22128727027, 6.59228213900], [21.446, 0.72034565528, 1258.45393162560], [18.034, 6.11382719947, 210.37833413120], [22.380, 5.92299908546, 173.94221952280], [19.128, 5.77772013766, 213.82036029980], [20.871, 5.79126331864, 2531.13495725280], [19.327, 1.64147367403, 565.11568774670], [16.806, 3.27953583323, 98.89998852460], [20.833, 2.01655935909, 860.30992875280], [17.939, 3.14329498012, 831.85574074960], [15.653, 3.10137669623, 106.27416795630], [18.235, 5.22595172482, 73.29712585900], [19.302, 5.93947114050, 425.11371816770], [14.514, 2.75049388379, 1.22384027740], [14.562, 5.18795088579, 305.34616939270], [14.254, 3.88079504939, 54.17467074780], [14.594, 3.25016810034, 78.71375183040], [13.637, 2.55486219141, 405.25754987360], [13.914, 1.72356993808, 69.15252427480], [13.689, 2.37430586272, 125.98732389850], [13.496, 0.82683590985, 99.91138048090], [18.483, 0.73171264866, 9999.98645077300], [13.542, 3.58584380924, 234.63973644040], [13.741, 6.18458356845, 245.54242435240], [16.944, 0.72200792996, 2111.65031337760], [17.441, 0.23803796878, 134.58534360760], [14.181, 4.51963935804, 59.80374504030], [13.598, 2.53776983965, 1.69692102940], [12.240, 2.11973445754, 28.31117565130], [11.988, 1.62114832786, 1361.54670584420], [11.974, 4.07378735120, 280.96714700450], [12.758, 5.31146919749, 344.70304530790], [16.051, 3.97093160336, 355.74874557180], [11.427, 5.51123470805, 192.69216761850], [13.133, 4.69168003518, 767.36908292080], [14.746, 3.28998910617, 1589.07289528380], [11.417, 1.81615681635, 2104.53676637680], [11.626, 2.79410384978, 362.86229257260], [13.234, 4.16642914717, 225.82926841020], [10.599, 5.50554288376, 199.28444975750], [10.558, 3.57501718639, 1.43628859850], [10.485, 2.84462532686, 85.82729883120], [10.296, 0.22225264071, 198.32124191100], [10.552, 0.18716643576, 217.49188113200], [11.853, 0.11584857323, 7.63481186260], [10.248, 0.21904154170, 144.14657116320], [10.403, 1.68776321208, 31.01948863700], [10.313, 4.72132701805, 216.21985674480], [10.719, 2.60869377832, 339.28641933650], [9.636, 3.66746262954, 212.54833591260], [9.631, 3.34275630477, 223.59403617650], [9.684, 0.41556436593, 2634.22773147140], [9.885, 4.01798130416, 207.14875628370], [13.212, 6.00683506785, 214.78356814630], [11.346, 2.61898383052, 7.86430652620], [9.158, 5.39855118256, 342.25536475310], [11.882, 4.00188476744, 267.47376618580], [12.054, 3.59904816676, 124.43341522100], [8.921, 4.22716773496, 6.36278747540], [10.142, 3.60807025662, 14.01464568050], [9.350, 0.72255756005, 347.88443904560], [10.529, 2.36779614951, 831.10498122420], [8.587, 4.48439552745, 1692.16566950240], [10.142, 3.93620624488, 207.88246946660], [9.147, 4.28032835242, 312.45971639350], [8.088, 0.81225752596, 264.50482076920], [9.241, 4.26402650779, 20.60692781950], [9.614, 0.64291347187, 218.92816973050], [8.537, 0.48756672382, 1574.84580128220], [7.986, 4.71088791079, 333.65734504400], [8.951, 0.90641577433, 497.44763618020], [7.959, 2.73277594136, 4.14460158420], [9.133, 5.08250578843, 241.61027108930], [9.669, 1.60623316904, 0.89377187730], [8.883, 5.55491009279, 2847.52682690940], [8.926, 5.80857835271, 329.72519178090], [7.226, 0.60164771281, 206.23373254700], [7.655, 5.53676341721, 116.42609634290], [7.118, 0.18747501525, 209.10630974400], [7.507, 5.43555636173, 621.73803904930], [8.885, 5.36210591059, 343.21857259960], [7.056, 0.41911130648, 756.32338265690], [8.124, 4.05571025939, 237.67811782620], [8.964, 1.65023927130, 210.33015002140], [6.961, 3.17855200943, 543.02428721890], [8.916, 0.56503620503, 2428.04218303420], [6.926, 3.66869171435, 247.23934538180], [8.982, 4.25046722481, 46.47042291600], [7.089, 5.14399672225, 231.45834270270], [7.381, 1.25092810119, 217.96496188400], [7.134, 2.83090354854, 1148.24761040620], [6.353, 0.82582711056, 31.49256938900], [7.558, 5.62617378543, 518.64526483070], [6.383, 3.54809945181, 244.31858407500], [6.914, 3.70012837706, 206.13736432740], [6.286, 5.79144749096, 179.35884549420], [6.639, 4.55197585824, 120.35824960600], [5.823, 1.40737990571, 214.04985496340], [5.850, 4.86725483749, 320.32402291970], [6.213, 1.07959478499, 251.43213107580], [7.730, 3.82244175824, 380.12776796000], [5.716, 1.34909972549, 1677.93857550080], [6.469, 1.34776801494, 188.92007304980], [5.668, 2.28643368177, 20.44686912510], [6.092, 3.62275289839, 1169.58825140860], [5.711, 0.51687421521, 148.07872442630], [5.804, 1.54831552984, 2420.92863603340], [5.703, 5.05993483230, 2.96894541660], [5.913, 1.66225477547, 842.15068148810], [7.449, 1.36195943673, 166.82867252200], [6.482, 1.94032041024, 357.44566660120], [6.368, 2.44556930837, 654.12438031560], [6.327, 0.40654591365, 168.05251279940], [5.573, 2.69383455663, 750.10360753340], [7.216, 2.22547711392, 488.84961647110], [6.701, 6.03737590382, 160.60889739850], [6.938, 5.78362034410, 700.66423920080], [6.701, 3.14738404371, 491.81856188770], [5.684, 2.59531540359, 1.64453140270], [4.900, 2.03902856851, 0.80314915210], [5.147, 4.10182033298, 196.62432088160], [4.985, 2.96765983996, 258.87574647670], [5.911, 1.81507526918, 252.65597135320], [6.056, 3.33431010543, 182.27960680100], [6.195, 5.01900871714, 273.10284047830], [6.316, 5.49053160191, 206.70681329900], [5.529, 3.31498938717, 1905.46476494040], [5.102, 3.98171453610, 254.94359321360], [4.762, 2.24463685255, 635.96513305090], [5.213, 0.53609344278, 135.54855145410], [4.639, 0.04466373027, 213.18722085340], [5.951, 0.54565487490, 51.20572533120], [4.535, 0.16088614438, 2950.61960112800], [4.639, 4.73769153591, 213.41097002260], [4.716, 3.13636467789, 28.57180808220], [4.748, 1.12156952989, 6.21977512350], [5.735, 0.04425142145, 348.84764689210], [4.334, 2.68814219154, 81.75213321620], [4.538, 3.83676888638, 487.36514376280], [5.582, 3.63486861028, 248.72381809010], [4.106, 3.39164360376, 50.40257617910], [5.657, 3.59967787362, 282.45161971280], [5.145, 1.33329458239, 173.68158709190], [3.898, 4.11804949361, 213.51154375910], [3.898, 0.66430577257, 213.08664711690], [4.418, 0.10784811796, 905.88657979150], [4.935, 2.19060382431, 189.72322220190], [3.799, 2.60752583205, 546.95644048200], [3.960, 1.60339889010, 218.71572140940], [3.740, 3.30724497407, 274.06604832480], [3.778, 0.26606330942, 636.71589257630], [4.657, 0.37532078548, 2744.43405269080], [3.682, 5.11587898667, 458.84151979040], [4.230, 5.18313062329, 27.08733537390], [5.181, 3.75590784411, 3127.31333126180], [3.904, 2.21738744557, 358.93013930950], [4.784, 4.60666675927, 72.07328558160], [3.552, 3.23789349146, 543.91805909620], [3.502, 3.68869576093, 41.64449777560], [4.803, 4.73553427126, 240.38643081190], [3.768, 3.86077796242, 2008.55753915900], [3.680, 5.36657425183, 10.03430830760], [4.298, 3.15595944154, 738.79727483860], [3.388, 0.73176365772, 11.30633269480], [3.507, 2.62508475661, 13.33332212430], [3.552, 0.28967392251, 1891.23767093880], [3.604, 4.69324090480, 295.05122865420], [3.621, 6.25264336426, 129.91947716160], [3.334, 5.04221806054, 153.49535039770], [3.837, 5.31732096284, 3163.91869656600], [3.281, 5.59031570352, 2.00573757010], [4.042, 2.37081308090, 176.65053250850], [3.500, 2.54744268360, 1464.63948006280], [4.144, 5.46982520458, 6.90109867970], [3.691, 4.07518441665, 969.62247809490], [3.947, 4.27108449197, 181.80652604900], [3.867, 5.48643386310, 37.87240320690], [3.339, 6.05372370584, 9.40116886120], [3.484, 5.81097824751, 13.49338081870], [3.033, 2.38897886651, 221.37585028530], [2.990, 4.13995939326, 66.70484372000], [3.746, 5.29902286106, 561.18353448360], [3.233, 4.27743802321, 593.42686339800], [3.170, 1.75400477770, 235.39049596580], [4.114, 2.01006788412, 601.76425067620], [2.937, 4.76351448561, 213.55972786890], [2.932, 1.83671373509, 501.37978944330], [2.937, 0.01884528825, 213.03846300710], [3.268, 4.44653949711, 60.76695288680], [3.608, 0.14307251176, 552.58551477450], [2.947, 0.74753671556, 17.52610781830], [3.979, 0.76931722276, 424.15051032120], [2.803, 1.07518176128, 1994.33044515740], [2.905, 1.27201007426, 2737.32050569000], [3.610, 0.22394084000, 121.25202148330], [2.846, 5.11748545179, 205.66428357540], [3.156, 2.74955723696, 494.26624244250], [3.576, 4.49826302447, 167.08930495290], [2.746, 0.66908290712, 7.00167241620], [2.780, 2.10066625279, 894.84087952760], [2.875, 2.39009721774, 151.04766984290], [3.020, 0.25475826890, 40.84134862350], [2.731, 3.74814908509, 429.04587143080], [2.793, 4.17938837230, 292.01284726840], [2.706, 5.34438894925, 327.43756992050], [2.965, 0.61653881148, 643.82943957710], [2.616, 4.81901387560, 681.54178408960], [2.548, 3.78162580820, 1485.98012106520], [3.483, 5.76091147029, 141.22580985640], [3.257, 0.75722680616, 555.55446019110], [2.887, 6.15899159727, 425.63498302950], [2.450, 1.29619859767, 193.65537546500], [3.401, 2.48137843009, 43.28902917830], [3.208, 0.66002842340, 776.93031047640], [2.435, 4.58097103726, 477.80391620720], [2.577, 1.41538858001, 100.64509366380], [2.600, 3.73139519973, 17.40848773930], [2.428, 1.04400815278, 1279.79457262800], [2.569, 5.36004101928, 7.22542158540], [2.844, 2.47228767650, 280.00393915800], [2.847, 1.52706408796, 17.26547538740], [2.461, 2.73899140465, 172.24529849340], [3.228, 4.10258705369, 618.55664531160], [2.288, 0.18365494079, 426.64637498580], [2.952, 3.97748947007, 650.94298657790], [2.653, 0.14255829255, 162.89651925890], [2.291, 3.26940117011, 426.55000676620], [3.118, 2.80941831445, 2221.85663459700], [2.343, 4.24349768377, 113.38771495710], [2.780, 4.36271946528, 130.44074202340], [2.539, 5.58396427573, 381.35160823740], [2.673, 2.74210116623, 45.57665103870], [3.017, 3.72208070740, 228.27694896500], [2.781, 0.36312756349, 8.59801970910], [2.377, 4.49193242045, 25.12978191360], [2.140, 5.43424670725, 630.33605875840], [2.456, 1.71617205116, 313.68355667090], [2.071, 2.40453395841, 16.46232623530], [2.050, 6.19704773331, 3267.01147078460], [2.764, 0.40107063007, 219.44943459230], [2.307, 2.61462153778, 26.82670294300], [2.650, 0.05892373791, 5856.47765911540], [1.974, 2.15890150781, 746.92221379570], [1.949, 3.13157993205, 226.63241756230], [2.063, 0.75916097286, 472.17484191470], [2.172, 1.41622302638, 23.57587323610], [2.378, 3.45446288811, 241.87090352020], [2.314, 2.92766120608, 170.76082578510], [2.409, 1.55291842382, 112.65400177420], [2.092, 4.33481587531, 210.59078245230], [1.883, 4.75777119721, 115.62294719080], [1.963, 5.63940648232, 454.90936652730], [1.871, 2.14579836453, 135.33610313300], [2.304, 0.11816226543, 3060.82592234740], [2.221, 4.34506511014, 556.51766803760], [1.867, 5.70943358261, 19.12245511120], [2.269, 3.36100653157, 696.51963761660], [2.127, 0.44754929310, 216.00740842370], [1.807, 6.15427316170, 5.84152261360], [2.213, 3.42223891884, 533.62311835770], [1.866, 3.90535444843, 220.36445832900], [1.767, 0.94232357739, 213.45915413240], [1.767, 3.84003619647, 213.13903674360], [1.910, 3.72504487558, 104.05598206510], [1.750, 0.82378244287, 220.46082654860], [1.838, 0.06310147657, 436.15941843160], [2.146, 4.41415180481, 184.09414790940], [1.730, 2.21039276178, 416.30325013750], [1.715, 0.26601715797, 103.14095832840], [1.710, 0.63515407580, 181.05576652360], [2.307, 3.29544714308, 569.04784100980], [1.906, 5.30639447218, 405.99126305650], [1.863, 4.68613642432, 286.59622129700], [1.873, 2.26516020863, 1781.03134971940], [2.035, 3.85188859267, 672.14061522840], [2.236, 3.01959133214, 105.54045477340], [1.767, 1.45800271562, 16.67477455640], [1.633, 0.16030477876, 18.91000679010], [2.116, 2.90186702031, 486.40193591630], [2.202, 3.88125957017, 427.56139872250], [1.706, 3.35213628354, 103.04459010880], [1.604, 2.48973273967, 55.65914345610], [1.744, 1.83791106739, 1044.40407666220], [1.569, 6.10089581118, 106.01353552540], [2.081, 6.03810192844, 916.93228005540], [1.799, 5.01592570405, 731.94436026870], [1.737, 1.49651330833, 25.86349509650], [1.695, 3.53314158403, 627.36711334180], [1.543, 0.81384993001, 2310.72231481400], [1.896, 3.38169845451, 2324.94940881560], [1.926, 4.66519027283, 353.30106501700], [1.765, 5.14740716994, 107.28555991260], [1.556, 1.12431826916, 230.82520325630], [1.843, 0.02435960281, 102.12956637210], [1.501, 4.18415120927, 194.17664032680], [1.528, 1.00328674046, 3053.71237534660], [1.529, 5.58893570479, 212.02707105080], [1.684, 5.08547245125, 3480.31056622260], [1.461, 2.31020597821, 721.64941953020], [1.480, 5.34331643017, 418.52143602870], [1.601, 5.53623000915, 391.17346822390], [1.893, 3.62340803433, 204.70107572890], [1.529, 6.06535432009, 77.96299230500], [1.529, 5.47660937625, 214.57111982520], [1.552, 2.06693539836, 36.64856292950], [1.453, 6.04709831442, 165.60483224460], [1.393, 2.28253369060, 403.02231763990], [1.444, 2.90650214018, 447.93883187840], [1.924, 1.37028714759, 468.24268865160], [1.426, 0.13255011458, 2207.62954059540], [1.389, 2.21739183113, 643.07868005170], [1.365, 1.63853880518, 629.60234557550], [1.362, 3.35131049142, 93.53154666300], [1.376, 5.36989538450, 180.16199464630], [1.584, 0.85642767335, 271.40591944890], [1.405, 5.69231057947, 25.27279426550], [1.681, 5.30308110734, 835.03713448730], [1.598, 3.04233449432, 42.53826965290], [1.759, 3.59043066940, 508.35032409220], [1.394, 4.55070863290, 426.07692601420], [1.314, 1.81147178081, 1382.88734684660], [1.281, 4.26508388040, 123.53964334370], [1.742, 5.71133189432, 22.89454967990], [1.483, 1.84687831602, 289.56516671360], [1.257, 3.01131200921, 409.92341631960], [1.285, 4.41168551011, 558.00214074590], [1.355, 3.87115897452, 1802.37199072180], [1.333, 0.08474224795, 411.62033734900], [1.235, 4.08060394635, 28.45418800320], [1.373, 5.06955106471, 427.11945573780], [1.565, 2.32953532704, 41.05379694460], [1.656, 6.06169130804, 268.43697403230], [1.212, 3.05966957556, 420.96911658350], [1.238, 5.25936700679, 412.58354519550], [1.220, 3.92987038126, 2.66012887590], [1.552, 1.48184004773, 9786.68735533500], [1.240, 1.46716327302, 291.26208774300], [1.133, 5.39046583617, 423.67742956920], [1.319, 5.79905891015, 1108.13997496560], [1.329, 0.92291650117, 778.41478318470], [1.399, 2.55906860098, 421.93232443000], [1.120, 3.86777259232, 1033.35837639830], [1.164, 4.10048660918, 685.47393735270], [1.321, 1.45843550806, 1073.60902419080], [1.313, 0.11761534168, 71.81265315070], [1.438, 2.57741975416, 100.38446123290], [1.190, 5.63379509659, 5.10780943070], [1.289, 5.20604565993, 278.25883401880], [1.157, 5.00101860101, 230.56457082540], [1.233, 2.70207317014, 282.66406803390], [1.209, 4.02230498135, 980.66817835880], [1.070, 5.17569455055, 313.21047591890], [1.292, 4.30946655209, 219.89137757700], [1.399, 2.58476795858, 2538.24850425360], [1.038, 0.14212199680, 820.05928096030], [1.245, 4.08278897130, 525.75881183150], [1.254, 2.46275017735, 457.61767951300], [1.021, 1.11239421009, 69.36497259590], [1.009, 1.01709171385, 143.93412284210], [1.075, 2.39196853318, 48.75804477640], [1.180, 6.18938910429, 3377.21779200400], [0.989, 5.94928603657, 3583.40334044120], [0.972, 4.25434114756, 397.39324334740], [0.983, 0.04442608551, 140.96517742550], [0.972, 5.67683107883, 422.40540518200], [1.298, 1.34524469231, 875.83029900100], [1.190, 0.67933974618, 699.70103135430], [0.950, 2.66964340700, 92.30770638560], [0.933, 0.63000656580, 406.95447090300], [0.959, 1.77556884452, 67.66805156650], [1.185, 3.70140604185, 285.63301345050], [0.956, 5.18928530992, 319.31263096340], [1.014, 1.97449310063, 2097.42321937600], [1.048, 3.69659410655, 117.91056905120], [1.153, 2.53320305623, 104.57724692690], [1.258, 2.51536062507, 694.07195706180], [0.971, 5.19147635849, 240.12579838100], [0.940, 3.94701776697, 35.21227433100], [1.047, 6.12360979460, 238.90195810360], [1.185, 5.28289734361, 638.41281360570], [0.893, 0.95364488395, 14.81779483260], [1.094, 3.93009679240, 945.24345570670], [0.949, 3.46451925897, 443.86366626340], [1.002, 3.18639902867, 337.73251065900], [1.017, 2.87111101661, 211.60217440860], [0.875, 0.58638080067, 2.28762186040], [0.925, 1.54981519784, 19.64371997300], [1.152, 1.68528608590, 691.10301164520], [0.832, 2.64637256467, 436.89313161450], [0.834, 3.88913521570, 331.20966448920], [0.825, 2.15437872210, 739.80866679490], [0.848, 3.18263239100, 196.03362005060], [1.044, 3.87842686803, 532.61172640140], [0.846, 5.38853773752, 97.67614824720], [1.021, 2.93075488512, 184.98791978670], [0.843, 6.12012061227, 616.32141307790], [0.820, 1.01380400969, 480.77286162380], [0.842, 3.56523575381, 421.18156490460], [1.076, 3.28234305253, 5.67725840230], [0.808, 2.78227865672, 212.07525516060], [0.812, 0.94281737163, 108.72184851110], [0.808, 2.21202653278, 610.69233878540], [0.808, 2.00008111713, 214.52293571540], [0.875, 2.14897461363, 114.39910691340], [0.791, 2.35474255596, 1.37259812370], [0.960, 0.25496742364, 710.74673161820], [1.001, 2.34471240227, 16.04163511000], [0.994, 0.63700664871, 84.93352695390], [0.985, 2.63664920104, 395.57870223900], [0.874, 2.59112594967, 418.00017116690], [0.758, 0.58117487362, 2627.11418447060], [0.894, 1.48976897396, 760.25553592000], [0.768, 5.25095392845, 305.08553696180], [1.020, 2.73153988233, 268.95823889410], [0.903, 0.13224671457, 238.42887735160], [0.750, 0.76128043194, 724.83081326790], [0.903, 3.37105323370, 526.50957135690], [0.930, 2.83622594110, 2641.34127847220], [0.808, 5.23759255053, 216.26804085460], [0.864, 1.22059443823, 570.74476203920], [0.798, 3.72388187653, 124.50285119020], [0.753, 0.72747041757, 3370.10424500320], [0.844, 2.03251767810, 511.53171782990], [0.827, 4.49936223096, 444.75743814070], [0.848, 3.74330244183, 2118.76386037840], [0.795, 0.27939057139, 101.86893394120], [0.754, 5.68583497533, 662.53120356300], [0.750, 4.78778128003, 102.57150935680], [0.709, 1.64518562815, 159.12442469020], [0.770, 4.02404991950, 909.81873305460], [0.765, 1.62693133597, 465.95506679120], [0.911, 5.04635658282, 913.96333463880], [0.861, 2.78971410809, 495.75071515080], [0.688, 1.10207467005, 1.53686233500], [0.803, 4.33043919090, 453.42489381900], [0.673, 0.03439333853, 2524.02141025200], [0.856, 3.50639182375, 439.12836384820], [0.684, 3.93906807606, 337.80194662820], [0.716, 6.18909854987, 310.71461125430], [0.922, 1.70634200320, 125.18417474640], [0.885, 1.69955870744, 6283.07584999140], [0.656, 1.28102954508, 432.01481684740], [0.808, 1.64410808383, 299.12639426920], [0.656, 1.49449164620, 849.26422848890], [0.679, 4.02962984490, 429.51895218280], [0.854, 3.04068731741, 298.23262239190], [0.676, 2.17631477883, 576.16138801060], [0.881, 5.47733557925, 220.93390730060], [0.739, 5.85330901725, 938.12990870590], [0.637, 2.96294462433, 425.84743135060], [0.665, 1.62998758015, 221.16340196420], [0.693, 3.53871697600, 1182.92157353290], [0.659, 1.85319023888, 72.33391801250], [0.631, 2.01234919422, 58.10682401090], [0.806, 5.21763933753, 428.08266358430], [0.804, 5.94281804567, 26.02355379090], [0.679, 2.11784460940, 256.42806592190], [0.692, 1.88791537515, 214.99601646740], [0.731, 1.95762888351, 19.01058052660], [0.786, 0.91252523635, 518.38463239980], [0.684, 4.89288171806, 3796.70243587920], [0.612, 2.08511492036, 1038.04128918680], [0.598, 3.48814927085, 219.66188291340], [0.828, 0.31689472200, 25.60286266560], [0.773, 4.57524006328, 624.91943278700], [0.775, 6.12920077021, 432.22726516850], [0.820, 4.11320326130, 141.48644228730], [0.588, 1.95775535412, 211.86280683950], [0.661, 5.30100397707, 103.61403908040], [0.588, 2.82460441973, 214.73538403650], [0.651, 5.56732715834, 393.46109008430], [0.564, 4.01666572198, 850.01498801430], [0.657, 2.58166087726, 526.98265210890], [0.722, 0.68494219480, 953.10776223290], [0.592, 2.37190662490, 205.43478891180], [0.738, 1.07981019512, 239.16259053450], [0.590, 6.03587790219, 188.02630117250], [0.559, 5.76010635813, 430.79097657000], [0.535, 5.80499883199, 100.17201291180], [0.611, 5.95439360100, 3693.60966166060], [0.591, 4.22379888536, 505.31194270640], [0.691, 2.96568305933, 606.76018552230], [0.648, 2.33387623043, 30.75885620610], [0.544, 2.21686115865, 92.79783348010], [0.517, 2.68282421083, 262.05714021440], [0.563, 1.69735688719, 2413.81508903260], [0.569, 2.85075508949, 227.31374111850], [0.531, 2.17713708433, 263.02034806090], [0.504, 4.44947885193, 343.73983746140], [0.578, 3.31462999801, 33.72780162270], [0.619, 1.83409636127, 867.42347575360], [0.546, 4.82201187196, 1048.33622992530], [0.517, 1.42016110098, 1246.65747183630], [0.681, 1.94124532036, 25874.60404613620], [0.551, 5.70617358907, 1119.18567522950], [0.523, 5.78878978812, 366.79444583570], [0.486, 1.90063955671, 1063.31408345230], [0.552, 3.64325031166, 256.58812461630], [0.612, 2.39349965241, 2854.64037391020], [0.495, 3.46833581240, 597.35901666110], [0.622, 1.86539391351, 524.01370669230], [0.480, 5.33557742428, 29.20494752860], [0.492, 4.64109549618, 384.05992122310], [0.520, 2.32171681836, 2957.73314812880], [0.545, 0.53274778710, 431.26405732200], [0.479, 2.13325177240, 319.57326339430], [0.526, 4.17771910249, 136.06981631590], [0.612, 4.56148986681, 774.48262992160], [0.642, 3.25195912708, 67.88049988760], [0.527, 4.00299045889, 2435.15573003500], [0.524, 4.69817741494, 336.83873878170], [0.495, 5.95703962647, 765.88461021250], [0.463, 6.09780322600, 54.33472944220], [0.538, 0.22116216124, 450.97721326420], [0.465, 1.87487942848, 958.57677783100], [0.500, 1.54084756342, 572.22923474750], [0.528, 3.54764543325, 233.90602325750], [0.451, 5.72664397006, 3899.79521009780], [0.514, 5.00509609437, 273.85360000370], [0.471, 2.96871670899, 306.83064210100], [0.447, 1.87279400375, 62.03897727400], [0.456, 5.45521998520, 1171.87587326900], [0.499, 1.92821778530, 217.44369702220], [0.548, 3.21873307934, 824.74219374880], [0.579, 2.29424247924, 810.65811209910], [0.550, 0.67875196590, 315.16802937920], [0.556, 1.30277646899, 133.10087089930], [0.449, 6.05954557724, 141.69889060840], [0.447, 5.83737433218, 823.99143422340], [0.517, 3.62832879827, 934.94851496820], [0.482, 1.04855231956, 1055.44977692610], [0.482, 4.07207792722, 195.89060769870], [0.428, 0.65142455407, 427.34895040140], [0.585, 5.48406138684, 376.19561469690], [0.469, 3.87344294455, 320.58465535060], [0.488, 2.83523964260, 460.53844081980], [0.450, 4.30419652064, 88.11492069160], [0.537, 0.85582040238, 214.19286731530], [0.438, 1.32216133929, 963.40270297140], [0.560, 2.50374228728, 952.09637027660], [0.442, 2.80002649649, 209.15449385380], [0.443, 4.31062007978, 9992.87290377220], [0.469, 0.45235276525, 464.73122651380], [0.488, 0.35817443686, 36.90919536040], [0.418, 4.81080887468, 775.23338944700], [0.417, 4.93943593579, 306.09692891810], [0.483, 3.92847922420, 39.61750834610], [0.467, 1.89153069484, 30.05628079050], [0.410, 5.52148731635, 118.07062774560], [0.406, 1.35991757653, 945.99421523210], [0.446, 4.06656112480, 380.38840039090], [0.466, 3.65954736664, 988.53248488500], [0.418, 1.40185532806, 313.94418910180], [0.481, 1.80873987903, 43.12897048390], [0.437, 0.86746182155, 170.97327410620], [0.483, 4.49894122772, 46.20979048510], [0.398, 2.90977731924, 131.54696222180], [0.529, 3.74604329884, 699.17976649250], [0.396, 0.34033987778, 2943.50605412720], [0.545, 2.97400965609, 305.60680182360], [0.412, 3.81935995126, 84.34282612290], [0.425, 2.60672101181, 121.84272231430], [0.474, 2.41769418569, 838.21852822500], [0.457, 1.27246488727, 107.75864066460], [0.519, 3.12247974037, 10213.28554621100], [0.495, 4.63705386984, 301.41401612960], [0.537, 3.92653937147, 212.40532356070], [0.385, 3.33476325050, 806.72595883600], [0.477, 1.66001855277, 175.42669223110], [0.378, 0.47722247042, 200.55647414470], [0.459, 5.14821844812, 960.22130923370], [0.401, 4.36420932544, 739.05790726950], [0.467, 2.96423984091, 170.01006625970], [0.457, 4.45829983338, 33.13710079170], [0.476, 3.63257697985, 20.49505323490], [0.462, 3.57494442856, 71.60020482960], [0.376, 2.94770389653, 6062.66320755260], [0.473, 5.32759318114, 373.90799283650], [0.383, 1.84111991862, 346.39996633730], [0.366, 2.05039240297, 87.31177153950], [0.383, 2.00608370504, 3274.12501778540], [0.374, 5.65444305031, 540.73666535850], [0.410, 5.62629715297, 58.31927233200], [0.441, 6.26992749567, 378.90392768260], [0.451, 3.05920369737, 898.77303279070], [0.371, 5.65787287655, 89.75945209430], [0.367, 5.71998148487, 96.87299909510], [0.410, 1.06290837961, 1257.70317210020], [0.418, 2.03053179312, 146.59425171800], [0.492, 0.89529424356, 423.62924545940], [0.474, 2.43080822444, 705.11765732570], [0.457, 3.42347802916, 829.62050851590], [0.419, 0.32183412086, 90.56260124640], [0.347, 3.60116807440, 449.23210812500], [0.397, 2.29159647723, 782.34693644780], [0.433, 3.40938468811, 32.45577723550], [0.343, 4.30952656038, 401.32539661050], [0.351, 0.42160026295, 3686.49611465980], [0.360, 5.83204569879, 491.55792945680], [0.389, 2.73429108352, 36.17548217750], [0.434, 0.33664392528, 55.13787859430], [0.346, 5.09191837323, 392.65794093220], [0.336, 2.38696934868, 295.19424100610], [0.336, 1.56832822829, 233.74596456310], [0.400, 3.08774286568, 745.91082183940], [0.468, 4.21298903633, 832.58945393250], [0.400, 1.32415028336, 551.10104206620], [0.344, 1.52193307438, 754.83890994860], [0.433, 3.06696455642, 885.43971066640], [0.346, 4.76971433870, 4113.09430553580], [0.329, 3.31034285904, 952.35700270750], [0.425, 2.90590905341, 462.02291352810], [0.342, 5.87738962422, 561.93429400900], [0.439, 0.20791179302, 768.85355562910], [0.330, 2.08599193524, 614.62449204850], [0.394, 3.59805431851, 1261.63532536330], [0.369, 6.03075127328, 199.80571461930], [0.375, 2.56075851331, 732.69511979410], [0.408, 0.69233617038, 328.24071907260], [0.331, 4.28333309370, 541.53981451060], [0.323, 0.06694179304, 433.75992198660], [0.431, 4.50603340920, 2914.01423582380], [0.343, 2.18898146246, 80.19822453870], [0.437, 5.34124436008, 387.24131496080], [0.371, 4.82569229712, 103.35340664950], [0.318, 3.75720880396, 749.20983565610], [0.344, 0.70749566894, 229.97386999440], [0.312, 6.02741985422, 361.37781986430], [0.340, 0.64358874512, 303.86169668440], [0.394, 0.49801994278, 248.46318565920], [0.309, 5.83535487659, 236.19364511790], [0.325, 2.65292455786, 757.21715453420], [0.365, 0.56788400592, 402.21916848780], [0.342, 3.83450185886, 519.39602435610], [0.306, 0.35126074897, 354.99798604640], [0.314, 5.42086935152, 1151.42900414390], [0.384, 0.09367760642, 201.51968199120], [0.307, 5.62165090342, 426.48631629140], [0.301, 1.78550205039, 1354.43315884340], [0.300, 5.23426324539, 190.40454575810], [0.296, 3.15801280224, 192.85222631290], [0.381, 1.98600461808, 109.94568878850], [0.370, 5.57659190517, 562.14674233010], [0.305, 2.73187068494, 840.66620877980], [0.374, 3.73375594662, 420.44785172170], [0.307, 4.03149340189, 426.71006546060], [0.320, 1.42665180100, 2730.20695868920], [0.392, 0.14343294900, 206.39799675830], [0.288, 2.44787565138, 623.22251175760], [0.344, 1.57825843162, 6290.18939699220], [0.317, 1.84490263693, 214.94362684070], [0.346, 2.16849893508, 3171.03224356680], [0.286, 1.01623455966, 315.64111013120], [0.361, 3.44807605339, 259.76951835400], [0.280, 4.64272946177, 254.14044406150], [0.285, 2.09430258387, 335.14181775230], [0.281, 4.72136141979, 317.14262918200], [0.289, 4.70265740009, 29.74746424980], [0.290, 2.74360609522, 551.03160609700], [0.300, 5.23308974173, 1321.43907040360], [0.283, 1.21193797828, 1699.27921650320], [0.280, 0.45877292284, 38.60611638980], [0.273, 1.81952809851, 1056.20053645150], [0.336, 5.63115066542, 95.22846769240], [0.309, 3.33676739908, 1193.96727379680], [0.288, 2.57603349418, 1166.40685767090], [0.277, 3.35359995343, 532.87235883230], [0.287, 0.37229115993, 114.94162363460], [0.274, 4.21164027953, 90.82323367730], [0.267, 5.61367132586, 870.46185713940], [0.376, 6.14391456675, 913.00012679230], [0.296, 5.75705165982, 4010.00153131720], [0.304, 1.97982468634, 495.96316347190], [0.308, 5.08911712262, 481.73606947030], [0.265, 0.02893016561, 172.45774681450], [0.291, 2.10106037916, 619.29035849450], [0.273, 4.78343050572, 771.30123618390], [0.358, 0.04093867464, 637.44960575920], [0.272, 5.86505586319, 332.17287233570], [0.266, 3.28626000731, 560.71045373160], [0.312, 3.91213951915, 1226.21060271120], [0.258, 3.41185135958, 426.81063919710], [0.257, 1.06772454181, 714.67888488130], [0.258, 6.24129294573, 426.38574255490], [0.256, 0.75289096697, 103.84353374400], [0.254, 3.21116652124, 102.34201469320], [0.254, 6.14632777985, 620.25356634100], [0.266, 2.54280196709, 132.88842257820], [0.314, 0.31303204249, 991.71387862270], [0.317, 2.93589163442, 357.23321828010], [0.266, 6.12280636670, 57.51612317990], [0.254, 2.99730079627, 642.34496686880], [0.267, 5.54663413439, 628.59095361920], [0.348, 1.33319249154, 815.06334611420], [0.278, 5.59573741920, 334.55111692130], [0.303, 3.22789148979, 409.18970313670], [0.246, 3.90430259983, 441.57604440300], [0.260, 3.86355293530, 639.37602145220], [0.250, 0.07635434166, 2840.41327990860], [0.246, 5.71009371698, 476.31944349890], [0.301, 6.15272106984, 559.69906177530], [0.268, 3.73809606804, 658.05653357870], [0.316, 4.63035287047, 745.27768239300], [0.311, 3.51827727424, 2751.54759969160], [0.239, 0.51133317457, 1041.22268292450], [0.238, 5.46347279420, 4216.18707975440], [0.262, 3.20254407166, 1251.34038462480], [0.238, 1.02679111743, 1262.38608488870], [0.277, 3.32996713394, 545.47196777370], [0.271, 0.49229846069, 419.53282798500], [0.303, 3.77087511317, 285.37238101960], [0.234, 3.64328189368, 407.47573576480], [0.270, 3.93080966194, 313.47110834980], [0.302, 3.15201610429, 915.23535902600], [0.264, 0.46127639727, 720.89866000480], [0.235, 1.74238582338, 369.08206769610], [0.284, 5.20345848078, 395.10562148700], [0.295, 5.03016292492, 594.65070367540], [0.290, 1.94941528794, 907.37105249980], [0.229, 0.11049722694, 3259.89792378380], [0.304, 1.81516929363, 49.72125262290], [0.268, 5.54944666204, 12352.85260454480], [0.248, 4.39993603541, 385.54439393140], [0.234, 1.63365119249, 3590.51688744200], [0.317, 4.74907646809, 420.00590873700], [0.228, 4.89094697746, 1181.43710082460], [0.258, 2.41510535278, 550.13783421970], [0.236, 4.10002766188, 6467.92575796160], [0.249, 1.97767956861, 589.49471013490], [0.226, 1.60308230318, 316.27999507200], [0.286, 6.10513234736, 484.70501488690], [0.299, 3.71741328977, 1123.11782849260], [0.263, 1.85502475341, 608.87779767700], [0.220, 0.94624116595, 316.50374424120], [0.292, 3.12099513976, 47.69426319340], [0.217, 4.93010394323, 281.17959532560], [0.295, 3.18346450625, 1050.99635880120], [0.248, 5.48523310249, 638.93407846750], [0.276, 1.09325899753, 544.50875992720], [0.279, 2.65446123759, 134.11226285560], [0.247, 4.17284927352, 950.13881681630], [0.212, 2.45582771491, 1164.76232626820], [0.266, 2.30028827109, 314.90739694830], [0.215, 3.55148746518, 1097.09427470170], [0.223, 0.36862624591, 81.89514556810], [0.283, 0.35013012349, 1269.49963188950], [0.263, 0.58255768951, 386.98068252990], [0.208, 4.61303945066, 668.20846196530], [0.222, 4.51639912193, 304.12232911530], [0.274, 0.63572336701, 679.25416222920], [0.215, 0.74685271552, 1008.97935401010], [0.268, 3.43326489941, 598.84348936940], [0.271, 3.98364990268, 453.68552624990], [0.215, 2.24139383226, 661.23792731640], [0.264, 2.58516335032, 2527.20280398970], [0.205, 1.94472028389, 650.19222705250], [0.258, 1.50724315598, 1759.83372106890], [0.272, 6.27135287672, 990.22940591440], [0.201, 1.11891338895, 97.41551581630], [0.236, 4.13547185065, 348.63519857100], [0.201, 2.67485193508, 1546.53462563090], [0.250, 5.44391862722, 1254.52177836250], [0.203, 5.48660442144, 557.03893289940], [0.250, 0.32142312427, 25448.00585526019], [0.198, 0.91019549387, 1310.39337013970], [0.200, 0.90438804926, 47.06112374700], [0.194, 4.05730813129, 426.85882330690], [0.197, 0.58292199999, 156.67674413540], [0.197, 2.59384188520, 639.84910220420], [0.201, 1.49980256114, 827.92358748650], [0.197, 5.79126360809, 639.94547042380], [0.266, 1.45514683392, 109.24311337290], [0.239, 4.63640382863, 868.71675200020], [0.194, 5.59582424111, 426.33755844510], [0.247, 2.91348766248, 689.61853893690], [0.205, 1.04616771894, 448.68959140380], [0.232, 1.76503818816, 354.26427286350], [0.224, 3.45391027762, 1190.03512053370], [0.221, 6.27951545913, 1596.18644228460], [0.237, 1.24961141369, 882.94384600180], [0.206, 5.17010664247, 253.45912050530], [0.203, 0.25518217825, 4002.88798431640], [0.245, 3.94368773869, 769.81676347560], [0.255, 6.11790751550, 763.43692965770], [0.194, 2.83197251801, 263.70167161710], [0.237, 2.14007373880, 2700.71514038580], [0.203, 3.00078001542, 1385.17496870700], [0.203, 3.88000057282, 419.43645976540], [0.186, 4.79530535895, 843.63515419640], [0.203, 0.16707173895, 535.91074021810], [0.245, 0.76762638475, 5643.17856367740], [0.183, 2.20151176434, 35.16409022120], [0.242, 3.41613986919, 864.24208201590], [0.249, 3.47840802421, 1045.88854937050], [0.199, 4.70077509959, 1276.61317889030], [0.189, 1.84247610390, 434.67494572330], [0.192, 3.83148077309, 666.72398925700], [0.201, 1.34290804373, 1012.91150727320], [0.210, 5.12097279511, 3494.53766022420], [0.192, 1.36630036429, 904.40210708320], [0.195, 1.62629576534, 364.34676528090], [0.179, 1.66502999050, 244.79166482700], [0.186, 4.55663748319, 347.41135829360], [0.201, 0.50219680740, 36.38793049860], [0.179, 4.55153097409, 97.46369992610], [0.200, 0.68398141887, 2015.67108615980], [0.195, 2.20599546209, 66.18357885820], [0.186, 4.48925201018, 611.44309831080], [0.186, 3.13663606153, 433.66355376700], [0.177, 3.62811326217, 326.68681039510], [0.206, 0.38552475035, 857.12853501510], [0.229, 1.22330638216, 2906.90068882300], [0.213, 6.08436923028, 271.61836777000], [0.174, 6.18833529233, 3576.28979344040], [0.220, 2.89866380776, 322.61164478010], [0.202, 2.43755817264, 812.14258480740], [0.211, 4.27999470527, 1127.26243007680], [0.188, 0.97173474238, 1080.72257119160], [0.168, 0.65008064023, 1493.09366806600], [0.208, 4.68942071563, 5429.87946823940], [0.182, 0.76058628096, 504.56118318100], [0.167, 6.22608046965, 108.50940019000], [0.176, 2.08816807487, 670.91677495100], [0.170, 1.55680702386, 1670.82502850000], [0.187, 4.12687876136, 9985.75935677140], [0.166, 1.58596354370, 1379.70595310890], [0.170, 1.30946662341, 837.69726336320], [0.166, 0.02413278965, 224.60542813280], [0.204, 6.12072939658, 9360.08916445900], [0.189, 0.28191962964, 1175.80802653210], [0.184, 2.87461093640, 398.14400287280], [0.172, 5.41410693088, 2306.79016155090], [0.174, 0.94052578814, 632.03297978780], [0.181, 2.20017945285, 1049.08698945070], [0.176, 1.09857632660, 531.97858695500], [0.201, 2.68411933635, 795.68025857210], [0.197, 1.43444932583, 347.36317418380], [0.200, 4.33954193534, 1364.72809958190], [0.166, 2.83936872840, 3553.91152213780], [0.160, 1.28778451384, 962.50893109410], [0.206, 3.02518737424, 1141.13406340540], [0.200, 5.54644533685, 308.31511480930], [0.158, 4.75462437610, 1534.73816584160], [0.156, 3.42359004405, 241.75328344120], [0.182, 5.26192506263, 968.13800538660], [0.168, 0.37055108740, 10007.09999777380], [0.174, 4.61279044571, 223.33340374560], [0.158, 4.23116519562, 821.70381236300], [0.212, 5.98406058023, 432.74853003030], [0.160, 4.08093018212, 632.73555520340], [0.179, 5.74376301842, 924.04582705620], [0.185, 3.01715709315, 55.87159177720], [0.185, 0.75718598244, 1286.90811962880], [0.170, 3.46903106526, 1304.92435454160], [0.167, 3.19767851189, 635.23141986800], [0.153, 3.83006208210, 318.67949151700], [0.156, 1.61558494091, 110.25450532920], [0.206, 1.62702696825, 389.94962794650], [0.184, 3.31730160238, 1578.02719501990], [0.184, 6.19913208096, 731.68372783780], [0.158, 5.58628906712, 42.32582133180], [0.159, 2.00727485442, 702.14871190910], [0.155, 0.02889842368, 1357.61455258110], [0.151, 5.80616069064, 680.05731138130], [0.157, 5.67235483479, 77837.11123384659], [0.156, 2.78001360754, 1567.73225428140], [0.203, 5.91820261629, 971.10695080320], [0.156, 5.68482948401, 649.45851386960], [0.186, 5.72093247348, 664.27630870220], [0.184, 4.05878767739, 976.73602509570], [0.159, 3.10978439502, 230.70758317730], [0.154, 4.54479813612, 1239.54392483550], [0.177, 4.68148789757, 2921.12778282460], [0.158, 4.30854435851, 633.74694715970], [0.195, 5.33376523453, 1130.23137549340], [0.188, 2.04023570497, 1127.04998175570], [0.174, 2.88817750136, 25668.41849769900], [0.161, 2.96300008890, 152.74459087230], [0.170, 1.70779560770, 493.30303459600], [0.156, 3.05331862578, 913.75088631770], [0.169, 3.18325334507, 757.80785536520], [0.145, 0.89672198690, 632.83192342300], [0.149, 2.69519361988, 203.26478713040], [0.167, 2.96547549589, 1201.83158032300], [0.187, 3.17592113403, 842.90144101350], [0.173, 1.91528836350, 3487.42411322340], [0.154, 0.37169915171, 285.11174858870], [0.198, 3.14620903981, 640.86049416050], [0.143, 3.42760427364, 520.12973753900], [0.157, 2.34913118792, 5959.57043333400], [0.178, 5.34566184657, 272.58157561650], [0.171, 3.34185265551, 3067.93946934820], [0.171, 4.87848878292, 354.52490529440], [0.189, 0.07069084691, 1585.89150154610], [0.137, 1.28925665885, 214.10224459010], [0.137, 3.49438482900, 212.49594628590], [0.174, 3.07450555579, 64.95973858080], [0.181, 0.78652249647, 657.16276170140], [0.158, 2.93809799392, 211.65456403530], [0.133, 5.70724173596, 469.72716135990], [0.140, 0.35530248121, 219.51887056150], [0.132, 1.60614108449, 1372.59240610810], [0.164, 1.68236348359, 707.56533788050], [0.128, 1.49742950959, 45.24658263860], [0.132, 4.98075995751, 238.57188970350], [0.140, 3.62845435388, 423.88987789030], [0.134, 1.41837795083, 3906.90875709860], [0.127, 1.48966646069, 856.37777548970], [0.158, 2.57990141197, 369.97583957340], [0.132, 2.39662455993, 184.72728735580], [0.140, 4.36785639279, 207.07932031450], [0.157, 4.56655940808, 251.17149864490], [0.125, 4.60433583965, 6076.89030155420], [0.121, 1.59513269211, 184.84490743480], [0.145, 5.85121885906, 221.89711514710], [0.137, 0.76499603885, 476.10699517780], [0.139, 6.02467582226, 429.30650386170], [0.117, 0.23611722307, 426.75824957040], [0.117, 3.13382984215, 426.43813218160], [0.116, 4.34801448720, 418.96337901340], [0.135, 2.69789181467, 455.16999895820], [0.134, 1.19058772772, 502.86426215160], [0.123, 3.97560160218, 499.89531673500], [0.110, 2.37032413718, 439.93151300030], [0.109, 6.20303291896, 220.30076785420], [0.109, 1.38979633175, 325.95309721220], [0.115, 0.05845336809, 631.82053146670], [0.139, 2.21086387259, 9573.38825989700], [0.142, 6.14666228712, 3340.61242669980], [0.122, 4.77182119272, 604.47256366190], [0.119, 3.03461367061, 528.20649238630], [0.127, 2.97263950543, 498.93210888850], [0.111, 5.01192320232, 220.20019411770], [0.126, 3.95743516129, 566.60016045500], [0.098, 2.36210526249, 634.26821202150], [0.108, 2.46872857126, 83.37961827640], [0.101, 4.88259474274, 425.32616648880], [0.127, 4.89006771254, 162.09337010680], [0.099, 0.90073463816, 586.31331639720], [0.099, 0.16310526294, 394.35486196160], [0.115, 0.49160291262, 517.16079212240], [0.101, 3.86043866859, 198.10879358990], [0.105, 3.48222097813, 5863.59120611620], [0.104, 4.61148354671, 220.52451702340], [0.101, 4.77041950285, 427.87021526320], [0.098, 2.90784721214, 199.96577331370], [0.127, 0.14136936897, 2332.06295581640], [0.091, 6.22628300117, 211.29335786790], [0.100, 5.14847283436, 226.79247625670], [0.091, 4.84054379386, 215.30483300810], [0.099, 4.37583492400, 640.41855117580], [0.093, 5.30395179617, 222.70026429920], [0.086, 4.57481701854, 636.97652500720], [0.111, 0.61102669309, 1089.12939443900], [0.086, 4.50969293872, 625.88264063350], [0.088, 0.36828594935, 444.12429869430], [0.093, 5.76287499885, 203.89792657680], [0.082, 2.85558603378, 318.83955021140], [0.082, 5.19618475111, 1467.82087380050], [0.086, 0.97633784601, 200.03520928290], [0.082, 4.78557953017, 195.77298761970], [0.106, 2.29520624233, 799.61241183520], [0.081, 3.57727166766, 205.97310011610], [0.078, 5.50343512580, 262.80789973980], [0.087, 0.76830756075, 201.99276274320], [0.102, 2.11516755277, 206.93630796260], [0.081, 5.29639775054, 111.16952906590], [0.075, 2.77117107886, 255.83736509090], [0.074, 5.81587984729, 316.44005376640], [0.076, 1.78743197928, 171.65459766240], [0.094, 4.99996904753, 378.64329525170], [0.089, 5.85818860151, 807.94979911340], [0.072, 0.99858616883, 280.21638747910], [0.099, 0.15018241445, 186.21176006410], [0.072, 5.15715918322, 110.15813710960], ], # L1 [ [21354295595.986, 0.00000000000, 0.00000000000], [1296855.005, 1.82820544701, 213.29909543800], [564347.566, 2.88500136429, 7.11354700080], [98323.030, 1.08070061328, 426.59819087600], [107678.770, 2.27769911872, 206.18554843720], [40254.586, 2.04128257090, 220.41264243880], [19941.734, 1.27954662736, 103.09277421860], [10511.706, 2.74880392800, 14.22709400160], [6939.233, 0.40493079985, 639.89728631400], [4803.325, 2.44194097666, 419.48464387520], [4056.325, 2.92166618776, 110.20632121940], [3768.630, 3.64965631460, 3.93215326310], [3384.684, 2.41694251653, 3.18139373770], [3302.200, 1.26256486715, 433.71173787680], [3071.382, 2.32739317750, 199.07200143640], [1953.036, 3.56394683300, 11.04570026390], [1249.348, 2.62803737519, 95.97922721780], [921.683, 1.96089834250, 227.52618943960], [705.587, 4.41689249330, 529.69096509460], [649.654, 6.17418093659, 202.25339517410], [627.603, 6.11088227167, 309.27832265580], [486.843, 6.03998200305, 853.19638175200], [468.377, 4.61707843907, 63.73589830340], [478.501, 4.98776987984, 522.57741809380], [417.010, 2.11708169277, 323.50541665740], [407.630, 1.29949556676, 209.36694217490], [343.826, 3.95854178574, 412.37109687440], [339.724, 3.63396398752, 316.39186965660], [335.936, 3.77173072712, 735.87651353180], [331.933, 2.86077699882, 210.11770170030], [352.489, 2.31707079463, 632.78373931320], [289.429, 2.73263080235, 117.31986822020], [265.801, 0.54344631312, 647.01083331480], [230.493, 1.64428879621, 216.48048917570], [280.911, 5.74398845416, 2.44768055480], [191.667, 2.96512946582, 224.34479570190], [172.891, 4.07695221044, 846.08283475120], [167.131, 2.59745202658, 21.34064100240], [136.328, 2.28580246629, 10.29494073850], [131.364, 3.44108355646, 742.99006053260], [127.838, 4.09533471247, 217.23124870110], [108.862, 6.16141072262, 415.55249061210], [93.909, 3.48397279899, 1052.26838318840], [92.482, 3.94755499926, 88.86568021700], [97.584, 4.72845436677, 838.96928775040], [86.600, 1.21951325061, 440.82528487760], [83.463, 3.11269504725, 625.67019231240], [77.588, 6.24408938835, 302.16477565500], [61.557, 1.82789612597, 195.13984817330], [61.900, 4.29344363385, 127.47179660680], [67.106, 0.28961738595, 4.66586644600], [56.919, 5.01889578112, 137.03302416240], [54.160, 5.12628572382, 490.33408917940], [54.585, 0.28356341456, 74.78159856730], [51.425, 1.45766406064, 536.80451209540], [65.843, 5.64757042732, 9.56122755560], [57.780, 2.47630552035, 191.95845443560], [44.444, 2.70873627665, 5.41662597140], [46.799, 1.17721211050, 149.56319713460], [40.380, 3.88870105683, 728.76296653100], [37.768, 2.53379013859, 12.53017297220], [46.649, 5.14818326902, 515.46387109300], [45.891, 2.23198878761, 956.28915597060], [40.400, 0.41281520440, 269.92144674060], [37.191, 3.78239026411, 2.92076130680], [33.778, 3.21070688046, 1368.66025284500], [37.969, 0.64665967180, 422.66603761290], [32.857, 0.30063884563, 351.81659230870], [33.050, 5.43038091186, 1066.49547719000], [30.276, 2.84067004928, 203.00415469950], [35.116, 6.08421794089, 5.62907429250], [29.667, 3.39052569135, 1059.38193018920], [33.217, 4.64063092111, 277.03499374140], [31.876, 4.38622923770, 1155.36115740700], [28.913, 2.02614760507, 330.61896365820], [28.264, 2.74178953996, 265.98929347750], [30.089, 6.18684614308, 284.14854074220], [31.329, 2.43455855525, 52.69019803950], [26.493, 4.51214170121, 340.77089204480], [21.983, 5.14437352579, 4.19278569400], [22.230, 1.96481952451, 203.73786788240], [20.824, 6.16048095923, 860.30992875280], [21.690, 2.67578768862, 942.06206196900], [22.552, 5.88579123000, 210.85141488320], [19.807, 2.31345263487, 437.64389113990], [19.447, 4.76573277668, 70.84944530420], [19.310, 4.10209060369, 18.15924726470], [22.662, 4.13732273379, 191.20769491020], [18.209, 0.90310796389, 429.77958461370], [17.667, 1.84954766042, 234.63973644040], [17.547, 2.44735118493, 423.41679713830], [15.428, 4.23790088205, 1162.47470440780], [14.608, 3.59713247857, 1045.15483618760], [14.111, 2.94262468353, 1685.05212250160], [16.328, 4.05665272725, 949.17560896980], [13.348, 6.24509592240, 38.13303563780], [15.918, 1.06434204938, 56.62235130260], [14.059, 1.43503954068, 408.43894361130], [13.093, 5.75815864257, 138.51749687070], [15.772, 5.59350835225, 6.15033915430], [14.962, 5.77192239389, 22.09140052780], [16.024, 1.93900586533, 1272.68102562720], [16.751, 5.96673627422, 628.85158605010], [12.843, 4.24658666814, 405.25754987360], [13.628, 4.09892958087, 1471.75302706360], [15.067, 0.74142807591, 200.76892246580], [10.961, 1.55022573283, 223.59403617650], [11.695, 1.81237511034, 124.43341522100], [10.346, 3.46814088412, 1375.77379984580], [12.056, 1.85655834555, 131.40394986990], [10.123, 2.38221133049, 107.02492748170], [9.855, 3.95166998848, 430.53034413910], [9.803, 2.55389483994, 99.91138048090], [10.614, 5.36692189034, 215.74677599280], [12.080, 4.84549317054, 831.85574074960], [10.210, 6.07692961370, 32.24332891440], [9.245, 3.65417467270, 142.44965013380], [8.984, 1.23808405498, 106.27416795630], [9.336, 5.81062768434, 7.16173111060], [9.717, 1.38703872827, 145.63104387150], [8.394, 4.42341211111, 703.63318461740], [8.370, 5.64015188458, 62.25142559510], [8.244, 2.42225929772, 1258.45393162560], [7.784, 0.52562994711, 654.12438031560], [7.626, 3.75258725596, 312.19908396260], [7.222, 0.28429555677, 0.75075952540], [8.236, 6.22250515902, 14.97785352700], [7.054, 0.53177810740, 388.46515523820], [6.567, 3.48657341701, 35.42472265210], [9.011, 4.94919626910, 208.63322899200], [8.980, 0.08138173719, 288.08069400530], [6.421, 3.32905264657, 1361.54670584420], [6.489, 2.89389587598, 114.13847448250], [6.244, 0.54973852782, 65.22037101170], [6.154, 2.67885860584, 2001.44399215820], [6.742, 0.23586769279, 8.07675484730], [7.297, 4.85321224483, 222.86032299360], [6.302, 3.80651124694, 1788.14489672020], [5.824, 4.39327457448, 81.75213321620], [6.102, 0.88585782895, 92.04707395470], [6.914, 2.04631426723, 99.16062095550], [5.363, 5.47995103139, 563.63121503840], [5.172, 2.11968421583, 214.26230328450], [5.117, 5.76987684107, 565.11568774670], [6.197, 1.62553688800, 1589.07289528380], [4.970, 0.41949366126, 76.26607127560], [6.640, 5.82582210639, 483.22054217860], [5.277, 4.57975789757, 134.58534360760], [4.974, 4.20243895902, 404.50679034820], [5.150, 4.67582673243, 212.33588759150], [4.764, 4.59303997414, 554.06998748280], [4.573, 3.24875415786, 231.45834270270], [4.811, 0.46206327592, 362.86229257260], [5.148, 3.33570646174, 1.48447270830], [4.654, 5.80233066659, 217.96496188400], [4.509, 5.37581684215, 497.44763618020], [4.443, 0.11349392292, 295.05122865420], [4.943, 3.78020789259, 1265.56747862640], [4.211, 4.88306021960, 98.89998852460], [4.252, 5.00120115113, 213.34727954780], [4.774, 4.53259894142, 1148.24761040620], [3.911, 0.58582192963, 750.10360753340], [5.069, 2.20305668335, 207.88246946660], [3.553, 0.35374030841, 333.65734504400], [3.771, 0.98542435766, 24.37902238820], [3.458, 1.84990273999, 225.82926841020], [3.401, 5.31342401626, 347.88443904560], [3.347, 0.21414641376, 635.96513305090], [3.637, 1.61315058382, 245.54242435240], [3.416, 2.19551489078, 1574.84580128220], [3.655, 0.80544245690, 343.21857259960], [4.260, 1.80258750109, 213.25091132820], [3.110, 3.03815175282, 1677.93857550080], [3.052, 1.33858964447, 543.91805909620], [3.694, 0.81606028298, 344.70304530790], [3.016, 3.36219319026, 7.86430652620], [2.937, 4.86927342776, 144.14657116320], [2.768, 2.42707131609, 2317.83586181480], [3.059, 4.30820099442, 6062.66320755260], [3.650, 5.12802531219, 218.92816973050], [2.963, 3.53480751374, 2104.53676637680], [3.230, 2.88057019783, 216.21985674480], [2.984, 2.52971310583, 1692.16566950240], [2.897, 5.73256482240, 9992.87290377220], [2.591, 3.79880285744, 17.26547538740], [3.495, 5.29902525443, 350.33211960040], [2.859, 3.72804950659, 6076.89030155420], [2.775, 0.23549396237, 357.44566660120], [2.976, 2.48769315964, 46.47042291600], [2.487, 4.37868078530, 217.49188113200], [2.711, 5.15376840150, 10007.09999777380], [3.127, 1.92343235583, 17.40848773930], [3.181, 1.72419900322, 1169.58825140860], [2.348, 0.77373103004, 414.06801790380], [2.606, 3.42836913440, 31.01948863700], [2.556, 0.91735028377, 479.28838891550], [2.399, 4.82440545738, 1279.79457262800], [2.245, 3.76323995584, 425.11371816770], [3.020, 0.25310250109, 120.35824960600], [2.503, 2.10679832121, 168.05251279940], [2.564, 1.63158205055, 182.27960680100], [2.221, 3.15472373256, 212.77783057620], [2.357, 2.33145013714, 218.71572140940], [2.510, 4.51903989011, 198.32124191100], [2.715, 5.76330259543, 618.55664531160], [2.204, 3.35952557362, 160.60889739850], [2.648, 0.71962005233, 85.82729883120], [2.029, 5.28642331696, 125.98732389850], [2.497, 1.36671447252, 1905.46476494040], [2.017, 1.11498225426, 447.93883187840], [2.052, 1.27587874735, 14.01464568050], [2.254, 3.22447674190, 273.10284047830], [2.014, 0.39787014152, 358.93013930950], [1.981, 2.33696859021, 28.45418800320], [2.197, 5.93386789705, 13.33332212430], [2.237, 3.64433751164, 213.82036029980], [1.930, 1.85671740340, 1.27202438720], [2.037, 5.05300562628, 424.15051032120], [1.994, 1.35690802366, 20.60692781950], [1.911, 3.44106886717, 69.15252427480], [1.925, 3.75243031545, 28.31117565130], [2.297, 4.24557050896, 1464.63948006280], [2.117, 2.25897766314, 116.42609634290], [1.847, 5.40631472802, 31.49256938900], [1.841, 1.56916484272, 650.94298657790], [1.884, 6.27233535258, 25.12978191360], [1.960, 4.89484014840, 275.55052103310], [2.016, 5.45791785675, 842.15068148810], [2.282, 4.96276947440, 258.87574647670], [1.709, 3.99098237135, 416.30325013750], [2.176, 0.00746756006, 0.89377187730], [1.634, 5.30978165487, 251.43213107580], [1.687, 0.41586020065, 54.17467074780], [1.910, 2.59825755790, 329.72519178090], [2.113, 2.56582292726, 59.80374504030], [1.921, 2.42279051938, 113.38771495710], [1.658, 5.47323651540, 1073.60902419080], [1.590, 2.77545297350, 1994.33044515740], [1.936, 3.47558926847, 1581.95934828300], [1.649, 1.82779010589, 128.95626931510], [1.598, 1.71806465300, 129.91947716160], [1.967, 1.25160413795, 621.73803904930], [1.702, 1.91076102800, 278.51946644970], [1.569, 0.16491194947, 643.07868005170], [1.989, 5.28799230992, 508.35032409220], [1.520, 0.56950979689, 320.32402291970], [1.501, 1.99815894193, 1891.23767093880], [1.532, 3.27362317849, 2420.92863603340], [1.701, 2.72041261115, 767.36908292080], [1.561, 6.09424459628, 280.96714700450], [1.331, 4.20944443790, 546.95644048200], [1.381, 2.06768100830, 192.69216761850], [1.368, 6.28049502257, 1795.25844372100], [1.519, 2.20299556153, 2008.55753915900], [1.356, 4.01521042413, 721.64941953020], [1.296, 4.84815978742, 45.57665103870], [1.267, 5.28146654999, 173.94221952280], [1.402, 6.12951551550, 39.35687591520], [1.252, 2.19169926554, 2634.22773147140], [1.466, 4.16354845643, 26.82670294300], [1.285, 3.76170874847, 2.28762186040], [1.500, 5.41022492529, 214.04985496340], [1.396, 4.78595583428, 219.44943459230], [1.430, 0.70934745161, 254.94359321360], [1.195, 3.71281085322, 264.50482076920], [1.181, 0.42635230882, 41.64449777560], [1.190, 2.02079286787, 1485.98012106520], [1.160, 5.23649231796, 181.05576652360], [1.535, 3.62746990294, 561.18353448360], [1.120, 1.09127922130, 6.59228213900], [1.100, 0.27844612141, 184.09414790940], [1.227, 1.39969681270, 209.10630974400], [1.353, 6.12903657666, 207.67002114550], [1.124, 6.05105541765, 291.26208774300], [1.194, 4.79565407023, 1478.86657406440], [1.082, 4.73602931755, 78.71375183040], [1.202, 3.47301104146, 51.20572533120], [1.298, 2.34761557822, 210.37833413120], [1.166, 4.20037524355, 417.03696332040], [1.228, 3.94985981275, 1781.03134971940], [1.401, 2.41318931513, 636.71589257630], [1.009, 6.17414889934, 2111.65031337760], [1.084, 3.68958647346, 274.06604832480], [1.068, 0.80258823981, 436.89313161450], [1.007, 3.42792508860, 629.60234557550], [0.998, 5.57130056835, 205.22234059070], [1.058, 1.05742945779, 237.67811782620], [1.020, 3.33667290300, 166.82867252200], [0.965, 6.08359503243, 601.76425067620], [1.005, 3.56310748091, 643.82943957710], [0.987, 0.97129012811, 305.34616939270], [0.927, 3.87717400791, 135.33610313300], [1.129, 5.94840103961, 196.62432088160], [1.118, 5.25415059584, 189.72322220190], [1.200, 1.16671933467, 2221.85663459700], [0.909, 2.14001565047, 617.80588578620], [0.899, 2.31811625712, 312.45971639350], [1.081, 0.91006048421, 313.21047591890], [0.891, 3.74923531791, 916.93228005540], [0.886, 4.76066858907, 776.93031047640], [0.912, 0.99592540858, 491.81856188770], [0.880, 3.67349449376, 25.27279426550], [1.203, 1.39749267410, 337.73251065900], [0.867, 0.11684071625, 267.47376618580], [0.879, 6.12222682852, 867.42347575360], [1.080, 0.15038819285, 175.16605980020], [0.988, 3.12456192471, 214.78356814630], [0.889, 4.70508769146, 148.07872442630], [0.827, 6.08977582217, 488.84961647110], [0.889, 5.05124166027, 220.46082654860], [0.828, 6.27262544155, 1382.88734684660], [1.040, 5.76735098196, 501.37978944330], [1.103, 0.48706477230, 692.58748435350], [0.810, 2.50362385080, 2310.72231481400], [0.850, 4.55410385197, 77.96299230500], [1.108, 5.31792012163, 235.39049596580], [0.790, 0.89213206336, 342.25536475310], [0.775, 2.85873930879, 211.81462272970], [0.842, 2.99884993009, 2737.32050569000], [0.784, 0.05748459240, 543.02428721890], [0.754, 5.18317747668, 244.31858407500], [0.969, 1.31760425414, 486.40193591630], [0.943, 5.48641674428, 339.28641933650], [0.759, 6.25347177163, 151.04766984290], [0.710, 2.41619968810, 247.23934538180], [0.794, 2.59522645936, 1.64453140270], [0.857, 1.99318788624, 248.72381809010], [0.717, 4.56798357445, 121.25202148330], [0.671, 2.50955477476, 444.75743814070], [0.683, 5.51033310275, 487.36514376280], [0.684, 0.01892628603, 228.27694896500], [0.665, 1.47172657769, 427.56139872250], [0.761, 4.61079808671, 23.57587323610], [0.807, 3.21513718120, 1898.35121793960], [0.645, 1.92436523628, 2950.61960112800], [0.624, 6.05830190539, 241.61027108930], [0.699, 4.02804515616, 425.63498302950], [0.624, 5.85966148394, 696.51963761660], [0.620, 1.86426453489, 2207.62954059540], [0.641, 5.69868017561, 319.57326339430], [0.646, 3.78920578728, 1038.04128918680], [0.672, 2.54160055954, 271.40591944890], [0.768, 1.80484245332, 2324.94940881560], [0.737, 1.50539891226, 268.43697403230], [0.836, 1.26583811010, 212.54833591260], [0.753, 5.27536166240, 204.70107572890], [0.633, 2.19920009577, 1802.37199072180], [0.720, 2.58587107868, 472.17484191470], [0.683, 3.83223866420, 43.28902917830], [0.740, 6.21601938401, 556.51766803760], [0.795, 1.14460330178, 381.35160823740], [0.678, 3.65930963429, 2097.42321937600], [0.568, 5.92158661090, 2428.04218303420], [0.570, 1.18024241664, 131.54696222180], [0.566, 4.74157739398, 380.12776796000], [0.586, 5.71168743146, 570.74476203920], [0.550, 4.92413290959, 188.92007304980], [0.712, 2.69456114358, 16.67477455640], [0.545, 5.38725529600, 206.23373254700], [0.572, 5.79167804981, 195.89060769870], [0.602, 5.81756794592, 963.40270297140], [0.588, 4.25026865253, 426.64637498580], [0.563, 3.28295055824, 193.65537546500], [0.583, 5.44099997963, 526.50957135690], [0.679, 4.45748326743, 105.54045477340], [0.516, 5.99843937287, 289.56516671360], [0.520, 2.19322568805, 180.16199464630], [0.543, 4.19333695628, 213.18722085340], [0.586, 3.03470168346, 6275.96230299060], [0.572, 3.96788877624, 140.00196957900], [0.611, 4.15392239870, 436.15941843160], [0.505, 2.95739392583, 135.54855145410], [0.587, 4.55320395537, 5863.59120611620], [0.492, 2.71595874382, 84.93352695390], [0.576, 5.98300938454, 9793.80090233580], [0.489, 5.68450383182, 533.62311835770], [0.519, 3.09688510923, 327.43756992050], [0.486, 5.24220804875, 5849.36411211460], [0.475, 4.51295931678, 411.62033734900], [0.540, 4.44843952768, 10206.17199921020], [0.479, 0.87707794164, 207.14875628370], [0.468, 0.46572028197, 306.09692891810], [0.586, 0.86387928244, 2538.24850425360], [0.475, 6.19152982788, 397.39324334740], [0.541, 1.47958133221, 42.53826965290], [0.496, 6.07879620658, 576.16138801060], [0.447, 2.59259132013, 7.22542158540], [0.445, 5.06827300470, 778.41478318470], [0.560, 0.00461017471, 221.37585028530], [0.456, 4.60143715337, 710.74673161820], [0.449, 5.79223649465, 685.47393735270], [0.501, 1.91370965325, 831.10498122420], [0.595, 4.90329839607, 824.74219374880], [0.447, 4.88662794571, 429.04587143080], [0.445, 1.74764943142, 525.75881183150], [0.457, 0.80892712530, 458.84151979040], [0.543, 2.60317945475, 213.41097002260], [0.493, 0.61947189193, 41.05379694460], [0.455, 2.69847252264, 3053.71237534660], [0.429, 3.89071982978, 92.79783348010], [0.411, 1.34981168865, 27.08733537390], [0.448, 1.84775051361, 980.66817835880], [0.445, 4.21745990439, 905.88657979150], [0.403, 2.33067250642, 2627.11418447060], [0.404, 5.00179215709, 431.26405732200], [0.384, 1.65634584042, 241.75328344120], [0.410, 0.76907037678, 395.57870223900], [0.456, 1.98353741244, 213.51154375910], [0.459, 2.04878772547, 285.63301345050], [0.396, 5.04141834913, 298.23262239190], [0.377, 5.68073822097, 2744.43405269080], [0.415, 4.41600504868, 179.35884549420], [0.396, 4.29872851950, 206.70681329900], [0.389, 5.69091953122, 849.26422848890], [0.369, 1.36192003466, 835.03713448730], [0.374, 0.41402282126, 9779.57380833420], [0.379, 1.72255764532, 184.98791978670], [0.365, 5.88205574821, 19.64371997300], [0.456, 4.81297899859, 213.08664711690], [0.359, 1.06819138836, 206.13736432740], [0.367, 1.14184327929, 569.04784100980], [0.352, 3.04388401587, 638.41281360570], [0.463, 1.55834877017, 421.18156490460], [0.459, 5.34648461645, 699.70103135430], [0.383, 4.05921035379, 739.80866679490], [0.354, 1.09760553168, 738.79727483860], [0.382, 0.05348541587, 252.65597135320], [0.344, 1.18536656224, 439.12836384820], [0.382, 2.10483762147, 532.61172640140], [0.361, 0.50215018154, 50.40257617910], [0.351, 3.49546336297, 1354.43315884340], [0.395, 4.26278871560, 432.22726516850], [0.345, 2.38455893509, 426.07692601420], [0.350, 1.51541607946, 259.76951835400], [0.426, 5.29998227949, 934.94851496820], [0.339, 5.59774645356, 519.39602435610], [0.388, 3.40083809779, 2413.81508903260], [0.324, 3.68352014131, 72.07328558160], [0.323, 1.79597508586, 405.99126305650], [0.366, 3.56764349139, 1119.18567522950], [0.358, 4.11241839677, 37.87240320690], [0.423, 1.45116702108, 2641.34127847220], [0.314, 0.68465789313, 757.21715453420], [0.320, 3.12697568936, 945.99421523210], [0.338, 4.89782013581, 898.77303279070], [0.319, 5.76881401291, 69.36497259590], [0.310, 5.35598720822, 815.06334611420], [0.369, 4.46143610142, 421.93232443000], [0.311, 2.19275640712, 5856.47765911540], [0.306, 2.99917010799, 1130.23137549340], [0.330, 0.64102961163, 558.00214074590], [0.305, 0.40963115602, 661.23792731640], [0.320, 3.29267319940, 760.25553592000], [0.298, 5.48693246086, 702.14871190910], [0.352, 2.18179692198, 2118.76386037840], [0.299, 5.94980651345, 572.22923474750], [0.343, 2.62900083650, 213.55972786890], [0.296, 4.12563821701, 73.29712585900], [0.360, 2.94387423457, 2214.74308759620], [0.293, 5.71837797264, 60.76695288680], [0.326, 1.93806509331, 480.77286162380], [0.335, 2.60120542851, 518.38463239980], [0.322, 2.89685459163, 427.11945573780], [0.367, 2.20489848330, 518.64526483070], [0.361, 3.31464351282, 630.33605875840], [0.288, 0.87760478150, 887.72733252680], [0.290, 0.24071300709, 705.11765732570], [0.332, 5.96464701829, 100.64509366380], [0.284, 1.58760551116, 681.54178408960], [0.281, 1.68339116394, 3267.01147078460], [0.287, 3.54730637851, 756.32338265690], [0.331, 2.74250642576, 22.89454967990], [0.281, 4.79802388453, 409.92341631960], [0.372, 1.08754087151, 426.55000676620], [0.340, 0.59629116557, 627.36711334180], [0.325, 4.07319450014, 511.53171782990], [0.273, 0.71334827688, 305.08553696180], [0.272, 1.76124839309, 945.24345570670], [0.295, 4.00327005783, 432.74853003030], [0.271, 5.28903262032, 1080.72257119160], [0.276, 3.89192411657, 610.69233878540], [0.294, 2.80121651058, 724.83081326790], [0.319, 5.24824059915, 229.97386999440], [0.264, 2.36406383589, 731.94436026870], [0.288, 4.67818844930, 170.76082578510], [0.326, 3.81328980623, 525.49817940060], [0.283, 3.52027709716, 319.31263096340], [0.264, 0.25871603855, 494.26624244250], [0.261, 4.08135671345, 25.86349509650], [0.296, 4.49129913731, 693.55069220000], [0.292, 0.65370180027, 25867.49049913539], [0.292, 0.12510953311, 25881.71759313700], [0.254, 4.03912322565, 990.22940591440], [0.288, 3.98604904657, 707.77778620160], [0.285, 1.92328297431, 3134.42687826260], [0.284, 2.45411523294, 3120.19978426100], [0.256, 3.63282757780, 430.79097657000], [0.283, 2.51091647682, 286.59622129700], [0.325, 4.33261281211, 732.69511979410], [0.264, 0.05450228136, 650.19222705250], [0.273, 4.90735780421, 409.18970313670], [0.304, 4.61759348542, 468.24268865160], [0.285, 5.72467903890, 33.94024994380], [0.242, 5.28336514054, 403.02231763990], [0.270, 0.51583145648, 263.70167161710], [0.263, 4.81670787366, 1055.44977692610], [0.237, 2.92617048443, 913.96333463880], [0.246, 2.19675150666, 2943.50605412720], [0.278, 4.58404840578, 398.14400287280], [0.234, 2.64374114605, 739.05790726950], [0.229, 3.80445074468, 58.10682401090], [0.300, 2.06111081979, 429.51895218280], [0.223, 3.39888651505, 188.02630117250], [0.301, 2.96411385108, 624.91943278700], [0.221, 1.79137414078, 2524.02141025200], [0.220, 0.95686592581, 1894.41906467650], [0.225, 4.30669421945, 637.44960575920], [0.214, 1.70442143644, 658.05653357870], [0.227, 3.22613053351, 638.93407846750], [0.220, 2.66798936385, 953.10776223290], [0.253, 3.09377787768, 29.20494752860], [0.244, 3.15828383212, 7.00167241620], [0.295, 4.95843934543, 714.67888488130], [0.209, 0.94525938634, 864.24208201590], [0.216, 0.12221236180, 28.57180808220], [0.214, 2.80190604605, 373.90799283650], [0.212, 2.07343849515, 1357.61455258110], [0.216, 1.25531205533, 477.80391620720], [0.206, 5.35971491902, 3060.82592234740], [0.204, 3.08579410460, 67.66805156650], [0.210, 1.91489853604, 938.12990870590], [0.209, 1.46554109301, 952.35700270750], [0.202, 3.57670882297, 334.55111692130], [0.228, 5.66209641464, 1699.27921650320], [0.197, 4.61055255182, 464.73122651380], [0.193, 4.24606721746, 141.69889060840], [0.266, 0.69665031373, 2854.64037391020], [0.227, 1.31845358943, 230.70758317730], [0.192, 5.26739976413, 504.56118318100], [0.187, 0.85537192230, 273.85360000370], [0.199, 3.91291687807, 418.52143602870], [0.192, 6.15674105214, 611.44309831080], [0.210, 1.47873602747, 205.43478891180], [0.194, 2.37167703302, 3370.10424500320], [0.228, 2.15266015145, 55.13787859430], [0.201, 2.71380671608, 586.31331639720], [0.194, 3.29560033731, 1670.82502850000], [0.201, 4.23447633663, 1493.09366806600], [0.181, 3.61567262848, 9786.68735533500], [0.181, 2.83211558346, 1262.38608488870], [0.242, 4.69869158516, 1141.13406340540], [0.184, 4.66807336402, 1251.34038462480], [0.221, 2.25887876254, 355.74874557180], [0.200, 1.17340443616, 4952.06359328620], [0.222, 2.23360866067, 2435.15573003500], [0.175, 0.04701598422, 107.75864066460], [0.171, 5.02500742690, 93.53154666300], [0.184, 5.19723697138, 835.78789401270], [0.221, 4.49141283681, 913.00012679230], [0.195, 0.92088046109, 551.03160609700], [0.166, 5.01778115937, 354.99798604640], [0.165, 2.26267552932, 406.95447090300], [0.189, 0.31221126958, 420.96911658350], [0.196, 2.70333585839, 774.48262992160], [0.176, 6.12029409039, 181.80652604900], [0.172, 1.94132177757, 3259.89792378380], [0.160, 0.55319954265, 5429.87946823940], [0.161, 2.88623631474, 184.84490743480], [0.192, 0.26639534884, 295.19424100610], [0.167, 3.71345214172, 1056.20053645150], [0.195, 4.83926717598, 1596.18644228460], [0.156, 2.81916058733, 428.08266358430], [0.215, 1.88276472005, 220.36445832900], [0.167, 2.68872854428, 423.67742956920], [0.154, 1.66553954375, 115.62294719080], [0.175, 0.20216461467, 384.05992122310], [0.201, 4.38095931887, 418.00017116690], [0.167, 1.86485857353, 393.46109008430], [0.155, 0.92480392431, 282.66406803390], [0.146, 1.97663966745, 9360.08916445900], [0.160, 2.62483919699, 353.30106501700], [0.186, 1.37307151419, 292.01284726840], [0.198, 1.15631374887, 2957.73314812880], [0.144, 4.82956915076, 453.42489381900], [0.149, 3.60682821788, 205.66428357540], [0.147, 4.48377791879, 81.89514556810], [0.147, 5.74795037748, 856.37777548970], [0.142, 3.53823120158, 212.02707105080], [0.140, 0.70476909062, 640.86049416050], [0.139, 1.39047667205, 1261.63532536330], [0.153, 3.29559426243, 391.17346822390], [0.158, 1.79872341304, 326.68681039510], [0.174, 3.98677435872, 1049.08698945070], [0.171, 4.16825100469, 213.03846300710], [0.133, 4.74095454922, 0.04818410980], [0.155, 5.32313618730, 2015.67108615980], [0.158, 2.67557086253, 2531.13495725280], [0.158, 4.64622526567, 427.34895040140], [0.123, 2.20103444636, 210.59078245230], [0.160, 1.85888551524, 201.51968199120], [0.119, 3.12572799769, 238.57188970350], [0.120, 4.62897224203, 203.26478713040], [0.129, 4.92592016162, 1286.90811962880], [0.132, 3.44682160054, 156.67674413540], [0.143, 0.67951827513, 425.84743135060], [0.114, 5.46519773276, 552.58551477450], [0.132, 1.76335093671, 432.01481684740], [0.113, 0.68933513038, 450.97721326420], [0.128, 2.13986068877, 2751.54759969160], [0.123, 4.59695145319, 216.00740842370], [0.119, 1.04688666457, 462.02291352810], [0.108, 5.36873170289, 3377.21779200400], [0.142, 6.24626256472, 299.12639426920], [0.118, 0.63448253510, 369.97583957340], [0.105, 2.31570619675, 200.55647414470], [0.124, 1.87110815140, 850.01498801430], [0.106, 0.55623662570, 114.39910691340], [0.102, 3.95315219638, 361.37781986430], [0.095, 4.10658529323, 10213.28554621100], [0.097, 1.13534710734, 387.24131496080], [0.096, 4.46689094543, 401.32539661050], [0.119, 2.33636675091, 318.83955021140], [0.115, 3.37508073115, 313.94418910180], [0.106, 3.73586211650, 220.93390730060], [0.090, 0.59788492023, 227.31374111850], [0.103, 5.09172929383, 213.45915413240], [0.097, 5.95268532215, 1044.40407666220], [0.103, 1.70625660572, 213.13903674360], [0.080, 0.86872596168, 233.90602325750], [0.089, 5.35990932230, 214.19286731530], [0.080, 2.69565238975, 540.73666535850], [0.095, 1.19504849611, 460.53844081980], [0.105, 0.58624363205, 481.73606947030], [0.099, 2.68841109007, 219.89137757700], [0.098, 1.59923557478, 484.70501488690], [0.081, 1.12279793521, 420.44785172170], [0.075, 4.58892231446, 394.35486196160], [0.099, 4.68895851750, 448.68959140380], [0.076, 1.66929798365, 196.03362005060], [0.087, 3.12477195090, 857.12853501510], [0.078, 5.59819387460, 364.34676528090], [0.079, 3.53267171729, 969.62247809490], ], # L2 [ [116441.181, 1.17987850633, 7.11354700080], [91920.844, 0.07425261094, 213.29909543800], [90592.251, 0.00000000000, 0.00000000000], [15276.909, 4.06492007503, 206.18554843720], [10631.396, 0.25778277414, 220.41264243880], [10604.979, 5.40963595885, 426.59819087600], [4265.368, 1.04595556630, 14.22709400160], [1215.527, 2.91860042123, 103.09277421860], [1164.684, 4.60942128971, 639.89728631400], [1081.967, 5.69130351670, 433.71173787680], [1020.079, 0.63369182642, 3.18139373770], [1044.754, 4.04206453611, 199.07200143640], [633.582, 4.38825410036, 419.48464387520], [549.329, 5.57303134242, 3.93215326310], [456.914, 1.26840971349, 110.20632121940], [425.100, 0.20935499279, 227.52618943960], [273.739, 4.28841011784, 95.97922721780], [161.571, 1.38139149420, 11.04570026390], [129.494, 1.56586884170, 309.27832265580], [117.008, 3.88120915956, 853.19638175200], [105.415, 4.90003203599, 647.01083331480], [100.967, 0.89270493100, 21.34064100240], [95.227, 5.62561150598, 412.37109687440], [81.948, 1.02477558315, 117.31986822020], [74.857, 4.76178468163, 210.11770170030], [82.727, 6.05030934786, 216.48048917570], [95.659, 2.91093561539, 316.39186965660], [63.696, 0.35179804917, 323.50541665740], [84.860, 5.73472777961, 209.36694217490], [60.647, 4.87517850190, 632.78373931320], [66.459, 0.48297940601, 10.29494073850], [67.184, 0.45648612616, 522.57741809380], [53.281, 2.74730541387, 529.69096509460], [45.827, 5.69296621745, 440.82528487760], [45.293, 1.66856699796, 202.25339517410], [42.330, 5.70768187703, 88.86568021700], [32.140, 0.07050050346, 63.73589830340], [31.573, 1.67190022213, 302.16477565500], [31.150, 4.16379537691, 191.95845443560], [24.631, 5.65564728570, 735.87651353180], [26.558, 0.83256214407, 224.34479570190], [20.108, 5.94364609981, 217.23124870110], [17.511, 4.90014736798, 625.67019231240], [17.130, 1.62593421274, 742.99006053260], [13.744, 3.76497167300, 195.13984817330], [12.236, 4.71789723976, 203.00415469950], [11.940, 0.12620714199, 234.63973644040], [16.040, 0.57886320845, 515.46387109300], [11.154, 5.92216844780, 536.80451209540], [14.068, 0.20675293700, 838.96928775040], [11.013, 5.60207982774, 728.76296653100], [11.718, 3.12098483554, 846.08283475120], [9.962, 4.15472049127, 860.30992875280], [10.601, 3.20327613035, 1066.49547719000], [10.072, 0.25709351996, 330.61896365820], [9.490, 0.46379969328, 956.28915597060], [10.240, 4.98736656070, 422.66603761290], [8.287, 2.13990364272, 269.92144674060], [7.238, 5.39724715258, 1052.26838318840], [7.730, 5.24602742309, 429.77958461370], [6.353, 4.46211130731, 284.14854074220], [5.935, 5.40967847103, 149.56319713460], [7.550, 4.03401153929, 9.56122755560], [5.779, 4.29380891110, 415.55249061210], [6.082, 5.93416924841, 405.25754987360], [5.711, 0.01824076994, 124.43341522100], [5.676, 6.02235682150, 223.59403617650], [4.757, 4.92804854717, 654.12438031560], [4.727, 2.27461984667, 18.15924726470], [4.509, 4.40688707557, 942.06206196900], [5.621, 0.29694719379, 127.47179660680], [5.453, 5.53868222772, 949.17560896980], [4.130, 4.68673560379, 74.78159856730], [4.098, 5.30851262200, 1045.15483618760], [4.223, 2.89014939299, 56.62235130260], [4.887, 3.20022991216, 277.03499374140], [3.905, 3.30270187305, 490.33408917940], [3.923, 6.09732996823, 81.75213321620], [3.755, 4.93065184796, 52.69019803950], [4.602, 6.13908576681, 1155.36115740700], [3.714, 0.40648076787, 137.03302416240], [3.407, 4.28514461015, 99.91138048090], [3.579, 0.20402442077, 1272.68102562720], [3.946, 0.36500928968, 12.53017297220], [3.246, 1.56761884227, 1059.38193018920], [4.063, 0.29084229143, 831.85574074960], [3.688, 0.15467406177, 437.64389113990], [2.895, 3.13473183482, 70.84944530420], [2.800, 0.32727938074, 191.20769491020], [2.672, 1.87612402267, 295.05122865420], [3.454, 4.77197610696, 423.41679713830], [2.623, 5.15237415384, 1368.66025284500], [2.457, 3.89612890177, 210.85141488320], [2.461, 1.58522876760, 32.24332891440], [2.595, 3.59007068361, 131.40394986990], [2.289, 4.76825865118, 351.81659230870], [2.357, 5.83099000562, 106.27416795630], [2.221, 5.98277491515, 6062.66320755260], [2.221, 2.05930402282, 6076.89030155420], [2.183, 5.94985336393, 145.63104387150], [2.718, 3.37801252354, 408.43894361130], [2.288, 3.14000619320, 22.09140052780], [2.090, 1.12304173562, 9992.87290377220], [2.089, 3.48276230686, 10007.09999777380], [2.570, 5.12167203704, 265.98929347750], [1.835, 4.15379879659, 1258.45393162560], [1.820, 5.05340615445, 1361.54670584420], [1.760, 4.13532689228, 107.02492748170], [1.921, 4.51790997496, 138.51749687070], [1.707, 1.35864593280, 231.45834270270], [1.956, 5.87006093798, 1471.75302706360], [2.133, 5.23409848720, 1265.56747862640], [1.595, 5.61962698786, 447.93883187840], [1.609, 3.74893709671, 628.85158605010], [1.490, 0.48352404940, 340.77089204480], [1.560, 5.97095003614, 430.53034413910], [1.352, 0.71405348653, 28.45418800320], [1.355, 2.91219493604, 215.74677599280], [1.298, 5.84254169775, 543.91805909620], [1.664, 6.23834873469, 1148.24761040620], [1.205, 2.83373725021, 200.76892246580], [1.192, 3.52219428945, 497.44763618020], [1.122, 2.60571030270, 1279.79457262800], [1.217, 6.23528359211, 1589.07289528380], [1.420, 0.85079202155, 6069.77675455340], [1.120, 4.95656566453, 1685.05212250160], [1.010, 3.39689646619, 1073.60902419080], [1.352, 2.27575429523, 9999.98645077300], [0.979, 1.58571463442, 1375.77379984580], [1.159, 0.71823181781, 508.35032409220], [1.014, 2.40759054741, 703.63318461740], [0.956, 2.66256831556, 134.58534360760], [1.110, 1.19713920197, 618.55664531160], [0.945, 4.68155456977, 362.86229257260], [0.953, 4.20749172571, 288.08069400530], [1.033, 1.08781255146, 184.84490743480], [0.942, 2.43465223460, 222.86032299360], [0.909, 4.51769385360, 38.13303563780], [1.002, 1.38543153271, 483.22054217860], [1.082, 4.52832816548, 635.96513305090], [1.008, 4.91325851448, 750.10360753340], [0.862, 4.79998518474, 1677.93857550080], [0.828, 2.21940849017, 333.65734504400], [0.745, 3.97279299984, 1574.84580128220], [0.903, 5.58963782799, 1788.14489672020], [0.735, 2.28191723259, 1162.47470440780], [0.773, 5.82270096882, 416.30325013750], [0.734, 2.35356586018, 120.35824960600], [0.745, 4.84266000843, 76.26607127560], [0.765, 2.50840146722, 343.21857259960], [0.908, 5.01046293458, 1581.95934828300], [0.707, 3.66631544506, 347.88443904560], [0.870, 0.77106152694, 113.38771495710], [0.686, 2.88543836068, 92.04707395470], [0.673, 3.75650667651, 203.73786788240], [0.656, 3.77718582702, 217.96496188400], [0.675, 5.62875135263, 17.26547538740], [0.691, 0.21330089609, 99.16062095550], [0.786, 4.49318079175, 643.07868005170], [0.641, 0.67588390141, 46.47042291600], [0.663, 5.74837848383, 721.64941953020], [0.809, 5.94893988352, 1464.63948006280], [0.638, 4.86195439622, 357.44566660120], [0.740, 6.00053422445, 337.73251065900], [0.555, 4.95858934298, 358.93013930950], [0.581, 3.87669679805, 565.11568774670], [0.541, 1.22296838713, 62.25142559510], [0.697, 0.00715950269, 1169.58825140860], [0.524, 1.53830423608, 195.89060769870], [0.518, 5.41992758537, 312.19908396260], [0.626, 5.26580317026, 436.89313161450], [0.537, 6.17031657600, 182.27960680100], [0.574, 5.98607898826, 1905.46476494040], [0.541, 0.30589337713, 98.89998852460], [0.603, 3.26888470585, 208.63322899200], [0.504, 3.80930996688, 168.05251279940], [0.477, 3.56642391994, 563.63121503840], [0.511, 4.70719837179, 2001.44399215820], [0.475, 1.06025557585, 5856.47765911540], [0.540, 0.87230551412, 1692.16566950240], [0.454, 2.48128029368, 9786.68735533500], [0.456, 3.18303484133, 218.92816973050], [0.462, 0.71358186864, 258.87574647670], [0.424, 4.89778948357, 636.71589257630], [0.537, 2.59376221736, 313.21047591890], [0.410, 4.22147787617, 867.42347575360], [0.408, 3.06057772788, 424.15051032120], [0.407, 3.79376013938, 24.37902238820], [0.569, 3.68547825941, 350.33211960040], [0.404, 0.91401255827, 114.13847448250], [0.395, 3.50478374207, 129.91947716160], [0.395, 2.86309689622, 212.33588759150], [0.386, 5.00762729432, 388.46515523820], [0.393, 6.26835522096, 241.75328344120], [0.401, 4.60258908692, 1994.33044515740], [0.385, 0.91582119643, 160.60889739850], [0.467, 0.54876489832, 404.50679034820], [0.368, 0.35674031808, 214.26230328450], [0.471, 0.67360047481, 207.88246946660], [0.379, 0.92901327825, 767.36908292080], [0.420, 5.69797398044, 225.82926841020], [0.356, 3.10092792842, 842.15068148810], [0.428, 5.35375368944, 2104.53676637680], [0.422, 2.67975581832, 77.96299230500], [0.370, 5.46144813372, 1038.04128918680], [0.379, 5.56429091578, 131.54696222180], [0.441, 5.68196668399, 1781.03134971940], [0.361, 5.20616019966, 629.60234557550], [0.341, 5.92928351979, 26.82670294300], [0.419, 5.26851686707, 85.82729883120], [0.322, 0.80223983857, 6283.07584999140], [0.323, 3.86700993914, 576.16138801060], [0.321, 2.17186032970, 10213.28554621100], [0.355, 2.80560859177, 344.70304530790], [0.311, 3.77477255556, 1891.23767093880], [0.318, 5.22020784209, 142.44965013380], [0.315, 0.52272202855, 5849.36411211460], [0.428, 4.63722058283, 1898.35121793960], [0.337, 0.68198429948, 45.57665103870], [0.316, 0.54074780109, 444.75743814070], [0.310, 1.41032075652, 273.10284047830], [0.311, 3.53744556230, 251.43213107580], [0.295, 1.93253015677, 436.15941843160], [0.296, 1.97705648834, 9779.57380833420], [0.326, 3.67854047003, 963.40270297140], [0.389, 5.76841276132, 39.35687591520], [0.277, 5.73995694175, 92.79783348010], [0.315, 4.96371610197, 757.21715453420], [0.295, 1.81638833900, 1493.09366806600], [0.287, 0.97698377929, 685.47393735270], [0.281, 2.66463042095, 1286.90811962880], [0.330, 5.79776922760, 650.94298657790], [0.292, 3.97858181479, 472.17484191470], [0.266, 4.13716111320, 601.76425067620], [0.262, 0.91887592474, 245.54242435240], [0.278, 3.08964256591, 778.41478318470], [0.277, 3.08750916880, 621.73803904930], [0.255, 3.93981592051, 181.05576652360], [0.333, 2.04835822938, 561.18353448360], [0.247, 2.92754257675, 219.44943459230], [0.306, 0.36127922606, 824.74219374880], [0.253, 1.80130756458, 5643.17856367740], [0.337, 4.97764462199, 175.16605980020], [0.273, 0.66599369335, 2008.55753915900], [0.227, 4.87285356383, 661.23792731640], [0.249, 3.14202895058, 144.14657116320], [0.220, 3.93526603081, 319.57326339430], [0.212, 5.85248164087, 546.95644048200], [0.234, 1.65314711167, 554.06998748280], [0.204, 0.88373842674, 31.49256938900], [0.205, 2.93169866171, 1596.18644228460], [0.201, 3.36504567824, 1080.72257119160], [0.224, 4.34612745705, 1382.88734684660], [0.192, 5.13697232918, 329.72519178090], [0.208, 3.08549771485, 41.64449777560], [0.236, 0.07998742860, 1141.13406340540], [0.203, 4.13011580915, 2627.11418447060], [0.203, 0.13969067385, 1485.98012106520], [0.204, 3.38137545713, 699.70103135430], [0.212, 4.52370676085, 2310.72231481400], [0.218, 5.79277335862, 2221.85663459700], [0.213, 0.50441377637, 934.94851496820], [0.210, 5.04017633795, 2420.92863603340], [0.214, 4.64286758581, 2317.83586181480], [0.178, 0.84588580004, 128.36556848410], [0.170, 2.75006619605, 710.74673161820], [0.171, 4.32615182967, 291.26208774300], [0.172, 3.46971306920, 501.37978944330], [0.170, 1.05408992106, 526.50957135690], [0.162, 1.15683042950, 519.39602435610], [0.180, 4.96266204107, 1670.82502850000], [0.172, 1.65385549578, 916.93228005540], [0.170, 2.30821101766, 429.04587143080], [0.170, 5.98716489326, 643.82943957710], [0.173, 5.19933564968, 1354.43315884340], [0.195, 4.50165508529, 2214.74308759620], [0.156, 4.16290662749, 572.22923474750], [0.153, 1.23776248578, 2413.81508903260], [0.150, 0.63076983213, 1478.86657406440], [0.169, 4.28090123029, 305.34616939270], [0.174, 6.23077892653, 3384.33133900480], [0.149, 3.13274908516, 9573.38825989700], [0.162, 6.25601818345, 213.25091132820], [0.149, 4.81749019484, 945.99421523210], [0.162, 0.88610129190, 216.21985674480], [0.133, 2.31915371262, 156.67674413540], [0.165, 6.06456216591, 732.69511979410], [0.141, 6.14293754333, 1795.25844372100], [0.133, 0.06530337135, 218.71572140940], [0.162, 3.17058130506, 213.34727954780], [0.125, 2.07143636845, 425.11371816770], [0.146, 1.88627500632, 211.81462272970], [0.113, 2.79541965778, 235.39049596580], [0.117, 0.76464798684, 479.28838891550], [0.108, 3.95650672786, 570.74476203920], [0.106, 0.12820734703, 188.02630117250], [0.134, 3.58244908862, 849.26422848890], [0.114, 0.25990388555, 398.14400287280], [0.112, 2.39181495831, 217.49188113200], [0.091, 2.50716605179, 121.25202148330], [0.091, 1.75367948574, 213.82036029980], [0.088, 5.26121947108, 395.57870223900], [0.096, 3.98832609364, 289.56516671360], [0.091, 0.35318362186, 312.45971639350], [0.112, 1.14387590923, 1802.37199072180], [0.082, 3.73605217214, 207.67002114550], [0.082, 6.06283262812, 210.37833413120], [0.084, 3.34470673492, 67.66805156650], [0.086, 2.73917300180, 5863.59120611620], [0.083, 2.81499116485, 776.93031047640], [0.091, 1.26160093170, 212.77783057620], [0.090, 2.08722491981, 2111.65031337760], [0.080, 2.13136842916, 421.93232443000], [0.082, 4.16358350281, 9793.80090233580], [0.077, 2.96973341607, 431.26405732200], [0.079, 3.42790361067, 417.03696332040], [0.079, 3.18693585419, 320.32402291970], [0.080, 0.78975763683, 204.70107572890], [0.077, 1.89354243952, 556.51766803760], [0.073, 4.85923277221, 2118.76386037840], [0.071, 3.64551577433, 198.32124191100], ], # L3 [ [16038.734, 5.73945377424, 7.11354700080], [4249.793, 4.58539675603, 213.29909543800], [1906.524, 4.76082050205, 220.41264243880], [1465.687, 5.91326678323, 206.18554843720], [1162.041, 5.61973132428, 14.22709400160], [1066.581, 3.60816533142, 426.59819087600], [239.377, 3.86088273439, 433.71173787680], [236.975, 5.76826451465, 199.07200143640], [165.641, 5.11641150216, 3.18139373770], [131.409, 4.74327544615, 227.52618943960], [151.352, 2.73594641861, 639.89728631400], [61.630, 4.74287052463, 103.09277421860], [63.365, 0.22850089497, 419.48464387520], [40.437, 5.47298059144, 21.34064100240], [40.205, 5.96420266720, 95.97922721780], [38.746, 5.83386199529, 110.20632121940], [28.025, 3.01235311514, 647.01083331480], [25.029, 0.98808170740, 3.93215326310], [18.101, 1.02506397063, 412.37109687440], [17.879, 3.31913418974, 309.27832265580], [16.208, 3.89825272754, 440.82528487760], [15.763, 5.61667809625, 117.31986822020], [19.014, 1.91614237463, 853.19638175200], [18.262, 4.96738415934, 10.29494073850], [12.947, 1.18068953942, 88.86568021700], [17.919, 4.20376505349, 216.48048917570], [11.453, 5.57520615096, 11.04570026390], [10.548, 5.92906266269, 191.95845443560], [10.389, 3.94838736947, 209.36694217490], [8.650, 3.39335369698, 302.16477565500], [7.580, 4.87736913157, 323.50541665740], [6.697, 0.38198725552, 632.78373931320], [5.864, 1.05621157685, 210.11770170030], [5.449, 4.64268475485, 234.63973644040], [6.327, 2.25492722762, 522.57741809380], [3.602, 2.30677010956, 515.46387109300], [3.229, 2.20309400066, 860.30992875280], [3.701, 3.14159265359, 0.00000000000], [2.583, 4.93447677059, 224.34479570190], [2.543, 0.42393884183, 625.67019231240], [2.213, 3.19814958289, 202.25339517410], [2.421, 4.76621391814, 330.61896365820], [2.850, 0.58604395010, 529.69096509460], [1.965, 4.39525359412, 124.43341522100], [2.154, 1.35488209144, 405.25754987360], [2.296, 3.34809165905, 429.77958461370], [2.018, 3.06693569701, 654.12438031560], [1.979, 1.02981005658, 728.76296653100], [1.868, 3.09383546177, 422.66603761290], [1.846, 4.15225985450, 536.80451209540], [2.194, 1.18918501013, 1066.49547719000], [2.090, 4.15631351317, 223.59403617650], [1.481, 0.37916705169, 316.39186965660], [1.720, 5.82865773356, 195.13984817330], [1.460, 1.57663426355, 81.75213321620], [1.623, 6.03706764648, 742.99006053260], [1.286, 1.66154726117, 63.73589830340], [1.304, 5.02409881054, 956.28915597060], [1.446, 2.10575519127, 838.96928775040], [1.245, 3.88109752770, 269.92144674060], [1.018, 3.72599601656, 295.05122865420], [1.323, 1.38492882986, 735.87651353180], [1.318, 2.33460998999, 217.23124870110], [0.943, 2.75813531246, 284.14854074220], [0.906, 0.71155526266, 846.08283475120], [0.886, 3.83754799777, 447.93883187840], [0.943, 3.31480217015, 18.15924726470], [0.800, 4.71386673963, 56.62235130260], [0.908, 2.02119147951, 831.85574074960], [0.787, 0.80410269937, 1045.15483618760], [0.709, 4.27064410504, 437.64389113990], [0.651, 6.17565900032, 942.06206196900], [0.785, 2.40767785311, 203.00415469950], [0.702, 1.64585301418, 423.41679713830], [0.543, 2.86326941725, 184.84490743480], [0.532, 6.25762144463, 1059.38193018920], [0.521, 3.43013038466, 149.56319713460], [0.484, 4.88366060720, 1272.68102562720], [0.437, 5.40220619672, 408.43894361130], [0.388, 2.57589594168, 508.35032409220], [0.421, 4.05836524024, 543.91805909620], [0.375, 1.22747948298, 2324.94940881560], [0.347, 0.59237194522, 22.09140052780], [0.433, 1.69090148012, 1155.36115740700], [0.389, 1.46170367972, 1073.60902419080], [0.307, 1.82185086955, 628.85158605010], [0.409, 1.21858750514, 1052.26838318840], [0.309, 0.33610530663, 6076.89030155420], [0.309, 1.42279282226, 6062.66320755260], [0.340, 1.83325770310, 1141.13406340540], [0.303, 2.41584747330, 127.47179660680], [0.305, 5.34154702988, 131.40394986990], [0.298, 2.28594631393, 635.96513305090], [0.372, 1.03723911390, 313.21047591890], [0.338, 0.69100012338, 1361.54670584420], [0.325, 1.78816356937, 1148.24761040620], [0.322, 1.18628805010, 721.64941953020], [0.271, 2.45663156460, 415.55249061210], [0.251, 3.12046701975, 1382.88734684660], [0.254, 3.00353256829, 618.55664531160], [0.295, 0.35280179538, 2730.20695868920], [0.242, 1.52154324392, 70.84944530420], [0.296, 0.89576757167, 2104.53676637680], [0.264, 3.00987438634, 661.23792731640], [0.267, 0.31623829657, 1677.93857550080], [0.270, 2.56774718753, 643.07868005170], [0.261, 1.55058302472, 1457.52593306200], [0.246, 2.29214585472, 867.42347575360], [0.269, 3.18157515051, 750.10360753340], [0.272, 1.12208982319, 1788.14489672020], [0.256, 0.37673546414, 1279.79457262800], [0.206, 1.81129778306, 497.44763618020], [0.251, 0.61933213502, 2413.81508903260], [0.237, 3.35941544147, 436.89313161450], [0.247, 0.10102936687, 99.91138048090], [0.247, 0.93125798111, 52.69019803950], [0.221, 2.07880035795, 824.74219374880], [0.197, 6.16682223437, 1258.45393162560], [0.229, 5.57917534840, 2943.50605412720], [0.227, 0.43324651601, 2737.32050569000], [0.203, 4.12623986247, 337.73251065900], [0.214, 3.57607524509, 934.94851496820], [0.212, 1.25688162158, 1773.91780271860], [0.215, 0.88867647880, 1038.04128918680], [0.244, 5.51572084570, 231.45834270270], [0.181, 2.13821830481, 416.30325013750], [0.210, 4.19139167658, 2221.85663459700], [0.178, 2.91685344537, 74.78159856730], [0.201, 0.46214583002, 2854.64037391020], [0.236, 4.64388694899, 1905.46476494040], [0.199, 1.54991619669, 1471.75302706360], [0.199, 0.70725247497, 2420.92863603340], [0.162, 2.51488345020, 430.53034413910], [0.160, 1.23508694599, 1596.18644228460], [0.175, 4.14605894816, 2090.30967237520], [0.152, 0.05796022559, 32.24332891440], [0.176, 1.29002070623, 490.33408917940], [0.154, 3.60622857548, 650.94298657790], [0.185, 4.74969742128, 319.57326339430], [0.154, 1.54587199996, 1464.63948006280], [0.108, 4.25125786500, 145.63104387150], [0.106, 1.04047809351, 1162.47470440780], [0.114, 2.64055737100, 362.86229257260], [0.093, 3.36746275886, 483.22054217860], [0.091, 2.05796248692, 210.85141488320], [0.091, 4.53336314765, 241.75328344120], [0.072, 3.74361312157, 1485.98012106520], [0.076, 3.33892447677, 195.89060769870], ], # L4 [ [1661.894, 3.99826248978, 7.11354700080], [257.107, 2.98436499013, 220.41264243880], [236.344, 3.90241428075, 14.22709400160], [149.418, 2.74110824208, 213.29909543800], [109.598, 1.51515739251, 206.18554843720], [113.953, 3.14159265359, 0.00000000000], [68.390, 1.72120953337, 426.59819087600], [37.699, 1.23795458356, 199.07200143640], [40.060, 2.04644897412, 433.71173787680], [31.219, 3.01094184090, 227.52618943960], [15.111, 0.82897064529, 639.89728631400], [9.444, 3.71485300868, 21.34064100240], [5.690, 2.41995290633, 419.48464387520], [4.470, 1.45120818748, 95.97922721780], [5.608, 1.15607095740, 647.01083331480], [4.463, 2.11783225176, 440.82528487760], [3.229, 4.09278077834, 110.20632121940], [2.871, 2.77203153866, 412.37109687440], [2.796, 3.00730249564, 88.86568021700], [2.638, 0.00255721254, 853.19638175200], [2.574, 0.39246854091, 103.09277421860], [1.862, 5.07955457727, 309.27832265580], [2.225, 3.77689198137, 117.31986822020], [1.769, 5.19176876406, 302.16477565500], [1.921, 2.82884328662, 234.63973644040], [1.805, 2.23816036743, 216.48048917570], [1.211, 1.54685246534, 191.95845443560], [0.765, 3.44501766503, 323.50541665740], [0.763, 4.83197222448, 210.11770170030], [0.613, 4.19052656353, 515.46387109300], [0.648, 2.28591710303, 209.36694217490], [0.616, 4.03194472161, 522.57741809380], [0.630, 2.37952532019, 632.78373931320], [0.639, 0.29772678242, 860.30992875280], [0.559, 2.17110060530, 124.43341522100], [0.442, 2.23500083592, 447.93883187840], [0.407, 5.44515970990, 1066.49547719000], [0.469, 1.26889429317, 654.12438031560], [0.488, 3.20329778617, 405.25754987360], [0.415, 3.12435410343, 330.61896365820], [0.442, 3.38933498625, 81.75213321620], [0.332, 4.12464206608, 838.96928775040], [0.320, 3.18332026736, 529.69096509460], [0.312, 1.40962796637, 429.77958461370], [0.291, 3.18885372262, 1464.63948006280], [0.333, 2.94355912397, 728.76296653100], [0.235, 3.67049647573, 1148.24761040620], [0.286, 2.57895004576, 1045.15483618760], [0.223, 3.57980034401, 1155.36115740700], [0.261, 2.04564143519, 1677.93857550080], [0.218, 2.61967125327, 536.80451209540], [0.262, 2.48322150677, 625.67019231240], [0.191, 4.39064160974, 1574.84580128220], [0.176, 1.26161895188, 422.66603761290], [0.190, 2.32693171200, 223.59403617650], [0.185, 1.08713469614, 742.99006053260], [0.168, 0.69946458053, 824.74219374880], [0.177, 5.02663339078, 203.00415469950], [0.218, 0.40426546037, 867.42347575360], [0.178, 3.67593243311, 831.85574074960], [0.175, 5.75326979098, 1073.60902419080], [0.156, 3.02120117572, 1781.03134971940], [0.148, 2.28313808274, 295.05122865420], [0.150, 3.48436135302, 956.28915597060], [0.152, 1.91404443241, 942.06206196900], [0.146, 6.16519696640, 316.39186965660], [0.096, 2.93247663741, 224.34479570190], [0.088, 4.48383632427, 423.41679713830], ], # L5 [ [123.615, 2.25923345732, 7.11354700080], [34.190, 2.16250652689, 14.22709400160], [27.546, 1.19868150215, 220.41264243880], [5.818, 1.21584270184, 227.52618943960], [5.318, 0.23550400093, 433.71173787680], [3.677, 6.22669694355, 426.59819087600], [3.057, 2.97372046322, 199.07200143640], [2.861, 4.28710932685, 206.18554843720], [1.617, 6.25265362286, 213.29909543800], [1.279, 5.27612561266, 639.89728631400], [0.932, 5.56741549127, 647.01083331480], [0.756, 6.17716234487, 191.95845443560], [0.760, 0.69475544472, 302.16477565500], [1.038, 0.23516951637, 440.82528487760], [1.007, 3.14159265359, 0.00000000000], [0.549, 4.87733288264, 88.86568021700], [0.504, 4.77955496203, 419.48464387520], [0.346, 4.31847547394, 853.19638175200], [0.392, 5.69922389094, 654.12438031560], [0.242, 2.05052677361, 323.50541665740], [0.266, 1.11384528244, 234.63973644040], [0.199, 0.88505901097, 309.27832265580], [0.258, 5.10074489186, 95.97922721780], [0.166, 2.40063312194, 515.46387109300], [0.155, 4.70433216164, 860.30992875280], [0.089, 1.36371070380, 412.37109687440], [0.102, 0.49450039082, 117.31986822020], ], ] """This table contains Saturn's periodic terms (all of them) from the planetary theory VSOP87 for the heliocentric longitude at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in pages 435-440.""" VSOP87_B = [ # B0 [ [4330678.040, 3.60284428399, 213.29909543800], [240348.303, 2.85238489390, 426.59819087600], [84745.939, 0.00000000000, 0.00000000000], [30863.357, 3.48441504465, 220.41264243880], [34116.063, 0.57297307844, 206.18554843720], [14734.070, 2.11846597870, 639.89728631400], [9916.668, 5.79003189405, 419.48464387520], [6993.564, 4.73604689179, 7.11354700080], [4807.587, 5.43305315602, 316.39186965660], [4788.392, 4.96512927420, 110.20632121940], [3432.125, 2.73255752123, 433.71173787680], [1506.129, 6.01304536144, 103.09277421860], [1060.298, 5.63099292414, 529.69096509460], [969.071, 5.20434966103, 632.78373931320], [942.050, 1.39646678088, 853.19638175200], [707.645, 3.80302329547, 323.50541665740], [552.313, 5.13149109045, 202.25339517410], [399.675, 3.35891413961, 227.52618943960], [316.063, 1.99716764199, 647.01083331480], [319.380, 3.62571550980, 209.36694217490], [284.494, 4.88648481625, 224.34479570190], [314.225, 0.46510272410, 217.23124870110], [236.442, 2.13887472281, 11.04570026390], [215.354, 5.94982610103, 846.08283475120], [208.522, 2.12003893769, 415.55249061210], [178.958, 2.95361514672, 63.73589830340], [207.213, 0.73021462851, 199.07200143640], [139.140, 1.99821990940, 735.87651353180], [134.884, 5.24500819605, 742.99006053260], [140.585, 0.64417620299, 490.33408917940], [121.669, 3.11537140876, 522.57741809380], [139.240, 4.59535168021, 14.22709400160], [115.524, 3.10891547171, 216.48048917570], [114.218, 0.96261442133, 210.11770170030], [96.376, 4.48164339766, 117.31986822020], [80.593, 1.31692750150, 277.03499374140], [72.952, 3.05988482370, 536.80451209540], [69.261, 4.92378633635, 309.27832265580], [74.302, 2.89376539620, 149.56319713460], [68.040, 2.18002263974, 351.81659230870], [61.734, 0.67728106562, 1066.49547719000], [56.598, 2.60963391288, 440.82528487760], [48.864, 5.78725874107, 95.97922721780], [48.243, 2.18211837430, 74.78159856730], [38.304, 5.29151303843, 1059.38193018920], [36.323, 1.63348365121, 628.85158605010], [35.055, 1.71279210041, 1052.26838318840], [34.270, 2.45740470599, 422.66603761290], [34.313, 5.97994514798, 412.37109687440], [33.787, 1.14073392951, 949.17560896980], [31.633, 4.14722153007, 437.64389113990], [36.833, 6.27769966148, 1162.47470440780], [26.980, 1.27154816810, 860.30992875280], [23.516, 2.74936525342, 838.96928775040], [23.460, 0.98962849901, 210.85141488320], [23.600, 4.11386961467, 3.93215326310], [23.631, 3.07427204313, 215.74677599280], [20.813, 3.51084686918, 330.61896365820], [19.509, 2.81857577372, 127.47179660680], [17.103, 3.89784279922, 214.26230328450], [17.635, 6.19715516746, 703.63318461740], [17.824, 2.28524493886, 388.46515523820], [20.935, 0.14356167048, 430.53034413910], [16.551, 1.66649120724, 38.13303563780], [19.100, 2.97699096081, 137.03302416240], [15.517, 4.54798410406, 956.28915597060], [17.065, 0.16611115812, 212.33588759150], [14.169, 0.48937283445, 213.34727954780], [19.027, 6.27326062836, 423.41679713830], [13.344, 2.37136126257, 429.77958461370], [12.565, 1.03178071173, 563.63121503840], [14.173, 3.57477564831, 213.25091132820], [11.374, 1.45300927024, 1368.66025284500], [10.585, 6.17633425930, 200.76892246580], [10.600, 3.84358958373, 138.51749687070], [10.263, 2.17423692422, 76.26607127560], [10.072, 1.33197220789, 565.11568774670], [12.058, 0.44149242700, 222.86032299360], [10.367, 1.85278552549, 350.33211960040], [8.706, 2.58144528603, 1155.36115740700], [8.470, 1.97890349826, 625.67019231240], [8.518, 4.51649648578, 3.18139373770], [7.439, 4.92597321442, 212.77783057620], [7.409, 2.03506679104, 288.08069400530], [8.137, 3.98500592467, 85.82729883120], [7.985, 2.20794292064, 362.86229257260], [6.610, 6.14944028835, 417.03696332040], [7.753, 6.23664549070, 1478.86657406440], [6.318, 1.87388481013, 654.12438031560], [6.319, 1.17328438271, 1265.56747862640], [5.841, 2.35829915285, 750.10360753340], [5.808, 5.01602242794, 479.28838891550], [8.079, 0.42574715104, 554.06998748280], [6.014, 5.58952234348, 425.11371816770], [7.444, 5.41859596459, 213.82036029980], [7.567, 2.68446523795, 191.20769491020], [7.421, 4.19354269508, 9.56122755560], [5.466, 3.21737829505, 234.63973644040], [5.661, 1.46982713550, 265.98929347750], [5.851, 4.81776629912, 1.48447270830], [5.341, 3.45755372717, 203.73786788240], [4.960, 1.04628615559, 12.53017297220], [4.920, 3.85622235967, 173.94221952280], [4.883, 1.94823282939, 195.13984817330], [5.621, 0.81869581274, 52.69019803950], [5.200, 3.32827437636, 515.46387109300], [4.927, 3.81806549732, 225.82926841020], [5.033, 0.10756875163, 252.65597135320], [4.416, 5.45506938037, 408.43894361130], [4.169, 1.21145214135, 1685.05212250160], [4.066, 6.24213578122, 1279.79457262800], [3.972, 6.13850317719, 217.49188113200], [5.398, 5.67212179194, 1375.77379984580], [3.916, 5.96105725915, 210.37833413120], [4.017, 0.99840226682, 842.15068148810], [3.899, 4.58983662507, 1272.68102562720], [3.764, 3.30663337976, 212.54833591260], [4.345, 3.18562241830, 414.06801790380], [3.565, 4.75262007127, 207.88246946660], [3.542, 2.30814954338, 1471.75302706360], [3.732, 1.61040235688, 635.96513305090], [3.709, 2.97082943086, 223.59403617650], [3.576, 3.83436862558, 483.22054217860], [4.053, 3.72105017218, 942.06206196900], [3.756, 0.74987556308, 214.04985496340], [3.162, 3.64550741000, 207.67002114550], [3.149, 2.27647454229, 728.76296653100], [3.971, 4.37874143597, 216.21985674480], [3.541, 5.62281936827, 218.71572140940], [2.965, 3.40117024932, 650.94298657790], [3.949, 4.19728912450, 209.10630974400], [2.853, 4.81077453523, 231.45834270270], [2.826, 0.86682282341, 217.96496188400], [2.970, 5.75162134301, 160.60889739850], [2.724, 0.47941267764, 497.44763618020], [2.787, 4.03144791896, 62.25142559510], [2.605, 5.04152791794, 65.22037101170], [2.652, 0.30602610654, 424.15051032120], [2.543, 2.76499056123, 543.91805909620], [2.485, 5.78396049817, 99.16062095550], [3.209, 0.42853440759, 218.92816973050], [2.509, 2.94704589100, 70.84944530420], [2.308, 0.63861650866, 251.43213107580], [2.869, 4.31959346745, 767.36908292080], [2.232, 0.56929937568, 1073.60902419080], [2.245, 1.69945964547, 488.84961647110], [2.283, 1.55589787463, 601.76425067620], [2.384, 4.44583493310, 21.34064100240], [2.096, 5.77425542767, 88.86568021700], [2.363, 3.35786310868, 124.43341522100], [2.162, 6.24029269257, 1795.25844372100], [2.452, 3.19804814047, 208.63322899200], [2.033, 4.87029603776, 327.43756992050], [1.950, 5.56004000293, 18.15924726470], [2.283, 4.22375355881, 22.09140052780], [2.217, 4.61433094630, 302.16477565500], [1.888, 5.45600788064, 142.44965013380], [2.075, 3.55622165076, 1169.58825140860], [2.069, 2.75786819366, 491.81856188770], [1.810, 5.96568495526, 213.18722085340], [1.813, 1.39785500313, 211.81462272970], [1.843, 1.15001484281, 203.00415469950], [1.854, 1.41350087782, 1581.95934828300], [1.697, 3.23613719814, 427.56139872250], [1.736, 5.45933992115, 916.93228005540], [1.714, 6.14729146384, 643.82943957710], [1.948, 5.70817363392, 425.63498302950], [1.770, 3.36194411768, 248.72381809010], [1.611, 0.97888081762, 2001.44399215820], [1.971, 2.59654430358, 429.04587143080], [1.628, 0.74011617198, 177.87437278590], [1.564, 2.04342011485, 1788.14489672020], [1.574, 6.01995224314, 426.64637498580], [1.939, 5.48134669380, 636.71589257630], [1.651, 4.61629429952, 621.73803904930], [1.552, 2.55542734908, 692.58748435350], [1.484, 6.17173980637, 56.62235130260], [1.782, 3.26122906302, 175.16605980020], [1.503, 2.59953333916, 228.27694896500], [1.559, 0.36281050773, 776.93031047640], [1.799, 3.46395976970, 1258.45393162560], [1.521, 3.75588462293, 213.51154375910], [1.810, 4.37552745264, 213.41097002260], [1.521, 0.30214462385, 213.08664711690], [1.608, 4.66724132818, 269.92144674060], [1.525, 1.47939329423, 198.32124191100], [1.408, 1.38491846750, 501.37978944330], [1.327, 0.23760037979, 148.07872442630], [1.305, 2.41201772023, 275.55052103310], [1.578, 2.82443242444, 426.55000676620], [1.203, 1.36928065935, 235.39049596580], [1.296, 5.75203277385, 1692.16566950240], [1.295, 3.04090959062, 831.85574074960], [1.283, 1.62400181159, 643.07868005170], [1.617, 1.31181209458, 214.78356814630], [1.346, 4.01262069353, 278.51946644970], [1.166, 0.09590019561, 340.77089204480], [1.115, 2.20460481017, 221.37585028530], [1.176, 1.07528227869, 312.19908396260], [1.107, 1.50329021421, 289.56516671360], [1.143, 4.40125874383, 213.55972786890], [1.253, 0.21632769953, 404.50679034820], [1.074, 3.17412275025, 98.89998852460], [1.103, 0.23626839162, 617.80588578620], [1.077, 3.51670933532, 312.45971639350], [1.039, 0.53953974796, 778.41478318470], [1.195, 2.11232088496, 205.22234059070], [1.093, 5.16243153571, 630.33605875840], [1.143, 5.93977485365, 213.03846300710], [1.040, 4.79631324365, 106.27416795630], [1.100, 0.02509241739, 219.44943459230], [1.311, 5.93900415785, 436.15941843160], [1.260, 0.72481995446, 355.74874557180], [0.950, 2.00801292252, 1045.15483618760], [1.186, 1.84906064486, 151.04766984290], [0.974, 3.01092368346, 696.51963761660], [0.924, 4.88158186437, 39.35687591520], [0.961, 2.80113869315, 738.79727483860], [1.011, 6.27004359435, 121.25202148330], [0.904, 4.15218356485, 426.07692601420], [0.904, 4.24232505252, 10.29494073850], [0.895, 2.47587956888, 447.93883187840], [1.186, 0.85270715988, 525.49817940060], [0.824, 3.97540449663, 210.59078245230], [0.831, 4.05299295705, 207.14875628370], [0.937, 5.44353432307, 344.70304530790], [0.823, 2.08766677969, 358.93013930950], [0.971, 5.09512804595, 1589.07289528380], [1.037, 1.04152859909, 2.44768055480], [0.816, 0.62175655307, 188.92007304980], [0.798, 3.36396062989, 237.67811782620], [0.755, 5.90983584858, 284.14854074220], [0.870, 1.62765846893, 114.13847448250], [0.734, 6.23523714922, 2111.65031337760], [0.767, 2.73651219269, 627.36711334180], [0.701, 0.72526525525, 10213.28554621100], [0.801, 5.84130533519, 905.88657979150], [0.710, 1.78740818763, 2104.53676637680], [0.670, 0.75839374890, 2317.83586181480], [0.720, 4.95645178898, 638.41281360570], [0.796, 4.87623914638, 342.25536475310], [0.703, 0.35096991676, 220.46082654860], [0.835, 3.19492825640, 1574.84580128220], [0.824, 0.08813665925, 216.00740842370], [0.653, 4.19599635390, 247.23934538180], [0.826, 4.66845240923, 427.11945573780], [0.690, 0.41873449575, 5856.47765911540], [0.690, 1.34023204821, 6283.07584999140], [0.690, 0.58291546593, 213.45915413240], [0.639, 1.20304559619, 867.42347575360], [0.830, 1.57233214789, 1898.35121793960], [0.753, 1.51187970880, 576.16138801060], [0.629, 2.83598833891, 420.96911658350], [0.690, 3.48062808501, 213.13903674360], [0.600, 5.22938546212, 212.02707105080], [0.565, 5.28099337758, 423.67742956920], [0.552, 5.83265103738, 84.34282612290], [0.546, 3.56588711151, 1485.98012106520], [0.642, 6.15007145598, 179.35884549420], [0.697, 1.91977327925, 134.58534360760], [0.648, 5.15917450752, 8.07675484730], [0.551, 3.33109164145, 980.66817835880], [0.511, 3.87073988213, 125.98732389850], [0.506, 0.80261216855, 181.05576652360], [0.564, 4.05871107615, 831.10498122420], [0.681, 3.45804290093, 220.36445832900], [0.541, 2.39252901431, 421.93232443000], [0.498, 3.11515053568, 439.12836384820], [0.517, 2.75430004800, 1148.24761040620], [0.491, 4.47199498503, 558.00214074590], [0.467, 4.18144797677, 444.75743814070], [0.458, 0.60848440253, 206.23373254700], [0.542, 3.28613020157, 245.54242435240], [0.477, 5.48556902348, 35.42472265210], [0.474, 2.42545073874, 436.89313161450], [0.481, 3.72498040536, 206.13736432740], [0.435, 1.61732308614, 191.95845443560], [0.488, 0.26059969650, 416.30325013750], [0.493, 4.13699180247, 518.64526483070], [0.595, 5.11706007934, 214.57111982520], [0.486, 5.17710069856, 67.66805156650], [0.463, 5.53192185211, 418.52143602870], [0.421, 5.57377685121, 430.79097657000], [0.446, 6.20735049659, 73.29712585900], [0.421, 4.65837340438, 543.02428721890], [0.435, 2.95256554350, 5.41662597140], [0.416, 4.36391909218, 113.38771495710], [0.495, 5.38121485133, 391.17346822390], [0.520, 3.99939347071, 618.55664531160], [0.429, 3.26903461513, 144.14657116320], [0.435, 1.60816661416, 2214.74308759620], [0.398, 2.38329818919, 299.12639426920], [0.399, 0.06301179341, 206.70681329900], [0.394, 2.75496219113, 425.84743135060], [0.508, 2.86873328929, 337.73251065900], [0.475, 5.68530292289, 320.32402291970], [0.432, 0.68132398291, 116.42609634290], [0.404, 1.84249441289, 9786.68735533500], [0.371, 5.83382962844, 2008.55753915900], [0.382, 4.24995364794, 387.24131496080], [0.416, 3.81986946256, 429.51895218280], [0.491, 4.18623117082, 219.89137757700], [0.352, 1.65610545221, 963.40270297140], [0.353, 5.50209003460, 305.34616939270], [0.431, 4.39380503963, 353.30106501700], [0.375, 2.67828133567, 319.57326339430], [0.359, 3.54801032661, 421.18156490460], [0.339, 5.19074405462, 69.15252427480], [0.358, 1.11857595997, 1044.40407666220], [0.334, 1.84260994740, 1361.54670584420], [0.328, 6.07106596408, 710.74673161820], [0.328, 1.48618893585, 2420.92863603340], [0.359, 5.62797136991, 78.71375183040], [0.405, 2.91366762549, 1891.23767093880], [0.398, 2.08900381937, 4.66586644600], [0.326, 1.62373774313, 5.62907429250], [0.405, 1.87470341223, 114.39910691340], [0.393, 0.56487847337, 128.95626931510], [0.312, 5.29291124448, 347.88443904560], [0.310, 0.31232452686, 427.34895040140], [0.308, 2.84912656825, 487.36514376280], [0.291, 3.25977762780, 494.26624244250], [0.303, 4.93962873690, 373.90799283650], [0.289, 2.83591185309, 212.07525516060], [0.289, 2.05371431350, 214.52293571540], [0.398, 6.03822674845, 432.22726516850], [0.288, 6.16001418475, 969.62247809490], [0.296, 0.30332524090, 1055.44977692610], [0.280, 1.29728455136, 241.61027108930], [0.280, 5.41630221077, 1493.09366806600], [0.315, 6.24003908326, 465.95506679120], [0.274, 5.03981944861, 458.84151979040], [0.296, 3.04457317761, 211.60217440860], [0.274, 2.72607352851, 145.63104387150], [0.293, 1.32452002382, 159.12442469020], [0.263, 6.11559198968, 2428.04218303420], [0.323, 1.17502395659, 815.06334611420], [0.345, 5.37083374878, 428.08266358430], [0.258, 0.43205106363, 2634.22773147140], [0.275, 0.91628212149, 849.26422848890], [0.340, 1.29378813067, 329.72519178090], [0.294, 4.29399534634, 4.19278569400], [0.339, 1.03883773894, 32.24332891440], [0.244, 3.52504227332, 184.98791978670], [0.243, 3.13047989401, 525.75881183150], [0.260, 5.99216785208, 20.60692781950], [0.303, 3.96772261614, 934.94851496820], [0.285, 5.69474711283, 220.93390730060], [0.239, 2.09516779457, 292.01284726840], [0.242, 0.98744748894, 282.45161971280], [0.278, 2.81667003542, 87.31177153950], [0.285, 4.76303256917, 54.17467074780], [0.236, 5.79560286324, 280.96714700450], [0.246, 1.83689902078, 214.99601646740], [0.221, 0.48302467341, 153.49535039770], [0.238, 3.52738705554, 267.47376618580], [0.293, 5.91401607974, 14.97785352700], [0.235, 0.29884419224, 14.01464568050], [0.229, 3.91975580405, 182.27960680100], [0.217, 3.96328561940, 894.84087952760], [0.218, 1.46057992688, 2531.13495725280], [0.210, 2.01138855049, 211.86280683950], [0.210, 2.87823761610, 214.73538403650], [0.223, 2.49651288358, 1464.63948006280], [0.217, 4.03234048538, 835.03713448730], [0.209, 2.97542058241, 273.10284047830], [0.210, 2.56849303008, 593.42686339800], [0.218, 1.71859101510, 0.96320784650], [0.232, 1.86083014117, 221.16340196420], [0.199, 3.53454927143, 219.66188291340], [0.197, 2.65338829617, 864.24208201590], [0.219, 3.46267185338, 1182.92157353290], [0.199, 2.56046317223, 264.50482076920], [0.199, 2.03508708900, 757.21715453420], [0.237, 5.05443109284, 254.94359321360], [0.191, 2.07106909876, 756.32338265690], [0.192, 1.67985944172, 1677.93857550080], [0.191, 1.05067348453, 702.14871190910], [0.181, 1.89151852263, 6.15033915430], [0.205, 1.98151360584, 199.28444975750], [0.181, 1.25381796494, 2737.32050569000], [0.186, 2.81416016738, 569.04784100980], [0.215, 4.52373060846, 3060.82592234740], [0.222, 2.90133577623, 205.43478891180], [0.246, 3.55891849574, 1251.34038462480], [0.191, 4.20221553993, 556.51766803760], [0.217, 2.64509967170, 2207.62954059540], [0.225, 0.14271906959, 131.40394986990], [0.189, 1.27260556263, 192.69216761850], [0.179, 6.15189171649, 2.92076130680], [0.178, 2.01622328964, 705.11765732570], [0.181, 3.62483757675, 233.90602325750], [0.188, 2.92836809840, 227.31374111850], [0.164, 3.50682537694, 1382.88734684660], [0.166, 5.85452227121, 637.44960575920], [0.160, 0.13309484488, 431.26405732200], [0.158, 5.92242110049, 96.87299909510], [0.178, 4.55557913565, 46.47042291600], [0.157, 1.35908014451, 51.20572533120], [0.155, 6.24092514222, 464.73122651380], [0.155, 6.02684189458, 1286.90811962880], [0.155, 1.36669731999, 206.93630796260], [0.175, 4.95121713507, 1905.46476494040], [0.153, 6.06094547271, 561.18353448360], [0.208, 4.50537355579, 24.37902238820], [0.185, 5.49802440713, 205.66428357540], [0.160, 4.18196878816, 3340.61242669980], [0.160, 2.85370771355, 209.15449385380], [0.161, 4.98020340619, 2648.45482547300], [0.152, 0.85558875667, 570.74476203920], [0.156, 2.03601440129, 217.44369702220], [0.192, 3.98017256784, 212.40532356070], [0.192, 0.90945359875, 214.19286731530], [0.198, 3.54289000289, 533.62311835770], [0.160, 2.51522796187, 3127.31333126180], [0.145, 0.93414637377, 1994.33044515740], [0.141, 5.66801998888, 120.35824960600], [0.141, 3.88995778619, 454.90936652730], [0.152, 1.01453902153, 2840.41327990860], [0.172, 4.15145223592, 2.96894541660], [0.146, 5.26789260159, 7.06536289100], [0.177, 0.43196690516, 140.00196957900], [0.144, 3.95680110579, 300.61086697750], [0.152, 4.29475572258, 555.55446019110], [0.143, 4.15264164139, 31.01948863700], [0.138, 4.20096561019, 731.94436026870], [0.139, 0.79924371385, 166.82867252200], [0.135, 1.27192121638, 92.94084583200], [0.165, 1.94881873062, 107.02492748170], [0.153, 3.07590434707, 3480.31056622260], [0.125, 3.41796878361, 1802.37199072180], [0.128, 5.83700968658, 2324.94940881560], [0.129, 2.75851443754, 480.77286162380], [0.122, 4.75728514255, 2854.64037391020], [0.129, 4.67730374872, 913.96333463880], [0.121, 1.19957548726, 572.22923474750], [0.146, 3.71232877850, 546.95644048200], [0.120, 4.59083886034, 339.28641933650], [0.127, 6.19372294369, 59.80374504030], [0.123, 5.98484393970, 477.80391620720], [0.122, 5.82973501131, 990.22940591440], [0.151, 2.39413061881, 2524.02141025200], [0.147, 4.98199291770, 850.01498801430], [0.127, 0.47350572907, 6.59228213900], [0.116, 4.71488890981, 1130.23137549340], [0.129, 5.42665311725, 2538.24850425360], [0.111, 4.51520219898, 1699.27921650320], [0.114, 2.06120434865, 952.09637027660], [0.112, 4.14736642579, 422.40540518200], [0.111, 5.53230411085, 857.12853501510], [0.109, 3.00005651288, 420.44785172170], [0.112, 2.20667724213, 395.57870223900], [0.147, 1.52324472511, 552.58551477450], [0.118, 5.47495367121, 2957.73314812880], [0.113, 2.57036693965, 462.02291352810], [0.122, 4.96246567897, 638.93407846750], [0.104, 1.91139383428, 472.17484191470], [0.116, 2.82742160564, 450.97721326420], [0.115, 2.26043201622, 1781.03134971940], [0.110, 4.86686492403, 2914.01423582380], [0.109, 4.43848727280, 405.99126305650], [0.102, 5.90112611078, 99.91138048090], [0.101, 2.53392410330, 640.86049416050], [0.112, 5.53802838779, 381.35160823740], [0.099, 5.92199927896, 411.62033734900], [0.100, 5.21941099517, 426.48631629140], [0.137, 2.20269111622, 7.16173111060], [0.097, 1.27914551364, 2847.52682690940], [0.115, 5.22953781515, 1119.18567522950], [0.095, 4.26135357007, 540.73666535850], [0.098, 5.27107833435, 639.94547042380], [0.107, 4.38879925113, 412.58354519550], [0.093, 5.35954173624, 334.55111692130], [0.094, 1.16749092536, 5643.17856367740], [0.106, 4.19443004843, 486.40193591630], [0.096, 0.59816870672, 714.67888488130], [0.094, 0.54205024076, 423.62924545940], [0.109, 2.82817225044, 468.24268865160], [0.083, 6.12100285205, 380.12776796000], [0.084, 2.20217125255, 909.81873305460], [0.085, 5.20920130934, 562.14674233010], [0.105, 2.66415710279, 460.53844081980], [0.084, 0.14646013561, 681.54178408960], [0.080, 3.03551986945, 409.92341631960], [0.097, 5.09373549436, 92.04707395470], [0.110, 2.03622569317, 642.34496686880], [0.080, 5.71035549752, 361.37781986430], [0.084, 3.00961145133, 426.81063919710], [0.085, 4.28770375688, 135.54855145410], [0.093, 5.32943472274, 432.01481684740], [0.086, 1.51247258028, 760.25553592000], [0.084, 5.83905303748, 426.38574255490], [0.100, 3.62925349363, 426.71006546060], [0.094, 4.30151510535, 3377.21779200400], [0.098, 2.07334671974, 639.84910220420], [0.080, 4.11576173565, 774.48262992160], [0.075, 2.89122656610, 806.72595883600], [0.080, 0.88468467902, 856.37777548970], [0.072, 4.85259171933, 392.65794093220], [0.083, 0.11133738383, 402.21916848780], ], # B1 [ [397554.998, 5.33289992556, 213.29909543800], [49478.641, 3.14159265359, 0.00000000000], [18571.607, 6.09919206378, 426.59819087600], [14800.587, 2.30586060520, 206.18554843720], [9643.981, 1.69674660120, 220.41264243880], [3757.161, 1.25429514018, 419.48464387520], [2716.647, 5.91166664787, 639.89728631400], [1455.309, 0.85161616532, 433.71173787680], [1290.595, 2.91770857090, 7.11354700080], [852.630, 0.43572078997, 316.39186965660], [284.386, 1.61881754773, 227.52618943960], [292.185, 5.31574251270, 853.19638175200], [275.090, 3.88864137336, 103.09277421860], [297.726, 0.91909206723, 632.78373931320], [172.359, 0.05215146556, 647.01083331480], [127.731, 1.20711452525, 529.69096509460], [166.237, 2.44351613165, 199.07200143640], [158.220, 5.20850125766, 110.20632121940], [109.839, 2.45695551627, 217.23124870110], [81.759, 2.75839171353, 210.11770170030], [81.010, 2.86038377187, 14.22709400160], [68.658, 1.65537623146, 202.25339517410], [59.281, 1.82410768234, 323.50541665740], [65.161, 1.25527521313, 216.48048917570], [61.024, 1.25273412095, 209.36694217490], [46.386, 0.81534705304, 440.82528487760], [36.163, 1.81851057689, 224.34479570190], [34.041, 2.83971297997, 117.31986822020], [32.164, 1.18676132343, 846.08283475120], [33.114, 1.30557080010, 412.37109687440], [27.282, 4.64744847591, 1066.49547719000], [22.805, 4.12923703368, 415.55249061210], [27.128, 4.44228739187, 11.04570026390], [18.100, 5.56392353608, 860.30992875280], [20.851, 1.40999273740, 309.27832265580], [14.947, 1.34302610607, 95.97922721780], [15.316, 1.22393617996, 63.73589830340], [14.601, 1.00753704970, 536.80451209540], [12.842, 2.27059911053, 742.99006053260], [12.832, 4.88898877901, 522.57741809380], [13.137, 2.45991904379, 490.33408917940], [11.883, 1.87308666696, 423.41679713830], [13.027, 3.21731634178, 277.03499374140], [9.946, 3.11650057543, 625.67019231240], [12.710, 0.29501589197, 422.66603761290], [9.644, 1.74586356703, 330.61896365820], [8.079, 2.41931187953, 430.53034413910], [8.245, 4.68121931659, 215.74677599280], [8.958, 0.46482448501, 429.77958461370], [6.547, 3.01351967549, 949.17560896980], [7.251, 5.97098186912, 149.56319713460], [6.056, 1.49115011100, 234.63973644040], [5.791, 5.36720639912, 735.87651353180], [5.994, 0.02442871989, 654.12438031560], [6.647, 3.90879134581, 351.81659230870], [6.824, 1.52456408861, 437.64389113990], [5.134, 3.81149834833, 74.78159856730], [3.959, 5.63505813057, 210.85141488320], [3.811, 2.63992803111, 3.18139373770], [3.643, 1.73267151007, 1059.38193018920], [3.554, 4.98621474362, 3.93215326310], [4.568, 4.33599514584, 628.85158605010], [3.145, 2.51404811765, 1162.47470440780], [3.522, 1.16093567319, 223.59403617650], [2.933, 2.06057834252, 956.28915597060], [2.644, 5.62559379305, 203.73786788240], [2.992, 5.06312015437, 515.46387109300], [2.304, 2.73123930535, 21.34064100240], [2.168, 2.91805928238, 203.00415469950], [2.398, 3.99421633537, 1279.79457262800], [2.146, 0.87500689888, 408.43894361130], [2.074, 1.65731069687, 137.03302416240], [1.797, 1.56879308343, 124.43341522100], [2.088, 1.85721384366, 138.51749687070], [1.769, 4.82294294946, 1073.60902419080], [1.635, 1.20387813348, 88.86568021700], [2.202, 5.93027042684, 1052.26838318840], [1.843, 0.22126910774, 750.10360753340], [1.851, 2.45470409290, 340.77089204480], [1.890, 0.41025631859, 127.47179660680], [1.582, 5.63360832372, 214.26230328450], [1.920, 3.77935901504, 350.33211960040], [1.786, 5.78644477326, 635.96513305090], [1.497, 3.13026893210, 703.63318461740], [1.583, 3.46882532865, 38.13303563780], [1.577, 4.02973226017, 388.46515523820], [1.645, 5.59115773632, 483.22054217860], [1.405, 4.07880624509, 728.76296653100], [1.498, 5.87094430469, 362.86229257260], [1.317, 2.22386203585, 213.34727954780], [1.321, 2.91534782718, 1265.56747862640], [1.307, 5.41748323885, 217.96496188400], [1.483, 0.91111666841, 543.91805909620], [1.291, 2.62333801070, 554.06998748280], [1.406, 0.34582712649, 85.82729883120], [1.287, 2.82247279651, 231.45834270270], [1.563, 4.88438049382, 208.63322899200], [1.316, 5.30963570131, 213.25091132820], [1.164, 1.39531381032, 210.37833413120], [1.295, 2.46089213219, 200.76892246580], [1.236, 3.03659580871, 838.96928775040], [1.449, 4.00934078371, 195.13984817330], [1.251, 1.46674521697, 218.71572140940], [1.568, 1.89939852487, 212.33588759150], [1.067, 5.34734443894, 207.67002114550], [1.111, 0.70962013461, 447.93883187840], [1.012, 1.37217220640, 636.71589257630], [1.163, 6.00108996618, 191.20769491020], [0.887, 2.84483069917, 191.95845443560], [1.005, 2.72373040634, 1478.86657406440], [0.879, 1.19585734916, 417.03696332040], [0.829, 4.94182950387, 497.44763618020], [0.878, 6.24981924813, 265.98929347750], [0.781, 4.61973017912, 424.15051032120], [0.924, 3.64210508536, 222.86032299360], [0.971, 2.89404568581, 563.63121503840], [0.946, 5.72987725592, 1368.66025284500], [0.834, 6.12384852532, 209.10630974400], [0.911, 1.06795057723, 650.94298657790], [0.731, 0.81660632103, 142.44965013380], [0.795, 5.54574074566, 76.26607127560], [1.012, 5.97140626297, 643.07868005170], [0.703, 2.41479303782, 10.29494073850], [0.726, 4.52598413209, 565.11568774670], [0.691, 2.31682364985, 160.60889739850], [0.695, 0.37889317398, 212.77783057620], [0.676, 4.43606270900, 842.15068148810], [0.769, 4.47368582271, 52.69019803950], [0.658, 0.32331118921, 621.73803904930], [0.838, 4.68035046143, 288.08069400530], [0.674, 5.63961963995, 867.42347575360], [0.695, 1.32062509205, 1169.58825140860], [0.841, 2.46995220838, 1375.77379984580], [0.633, 3.46145143241, 18.15924726470], [0.722, 0.04119071457, 269.92144674060], [0.757, 2.15030650611, 207.88246946660], [0.692, 0.87072324976, 213.82036029980], [0.602, 0.85288769518, 225.82926841020], [0.635, 4.76109030475, 831.85574074960], [0.701, 1.20410854661, 479.28838891550], [0.624, 2.30585779534, 643.82943957710], [0.582, 0.18811617696, 1.48447270830], [0.513, 2.56525967840, 404.50679034820], [0.502, 4.97423814367, 212.54833591260], [0.644, 2.10955154583, 1272.68102562720], [0.467, 4.47217820662, 235.39049596580], [0.566, 4.44740324446, 429.04587143080], [0.448, 0.57491120802, 22.09140052780], [0.520, 1.15131866397, 337.73251065900], [0.476, 4.78513362967, 218.92816973050], [0.519, 0.61616177345, 436.89313161450], [0.442, 2.10204008144, 416.30325013750], [0.536, 1.08779067908, 344.70304530790], [0.477, 2.42483193385, 216.21985674480], [0.469, 5.22622034028, 942.06206196900], [0.392, 0.41137926465, 302.16477565500], [0.400, 5.17216478470, 414.06801790380], [0.383, 3.58419227076, 1045.15483618760], [0.443, 1.11051326413, 425.11371816770], [0.517, 3.44547026103, 12.53017297220], [0.369, 1.60095273908, 56.62235130260], [0.354, 2.79123486392, 1581.95934828300], [0.405, 5.93402105921, 173.94221952280], [0.319, 4.31850876624, 219.44943459230], [0.330, 0.62529198264, 358.93013930950], [0.305, 0.82404423420, 1485.98012106520], [0.391, 2.59385552893, 1795.25844372100], [0.291, 3.12019266878, 217.49188113200], [0.294, 2.18552193901, 444.75743814070], [0.281, 0.77791302266, 757.21715453420], [0.355, 5.44570491928, 1685.05212250160], [0.305, 2.65927043884, 355.74874557180], [0.269, 6.00323720265, 934.94851496820], [0.287, 2.60486363576, 113.38771495710], [0.348, 0.98872551635, 70.84944530420], [0.331, 5.62133883922, 9.56122755560], [0.255, 4.14086605030, 284.14854074220], [0.311, 6.27145060602, 207.14875628370], [0.267, 4.72606312146, 696.51963761660], [0.319, 4.68828119248, 1155.36115740700], [0.227, 3.10352674343, 1361.54670584420], [0.228, 1.19253095837, 1589.07289528380], [0.244, 5.36327976010, 245.54242435240], [0.218, 2.16069250901, 177.87437278590], [0.254, 4.51652534648, 1148.24761040620], [0.211, 2.82699627326, 106.27416795630], [0.230, 4.63171743406, 107.02492748170], [0.201, 4.52152562223, 508.35032409220], [0.230, 5.93560798508, 618.55664531160], [0.253, 2.08074949572, 252.65597135320], [0.234, 2.43423283339, 1692.16566950240], [0.196, 1.01284131123, 114.39910691340], [0.196, 2.73629728926, 214.04985496340], [0.191, 1.51642829677, 6069.77675455340], [0.252, 5.10097595426, 1258.45393162560], [0.240, 2.93712394928, 916.93228005540], [0.224, 4.42406538277, 251.43213107580], [0.223, 2.34400676548, 1677.93857550080], [0.228, 5.00073557208, 1574.84580128220], [0.183, 5.09056895026, 220.46082654860], [0.178, 6.05669760153, 206.13736432740], [0.185, 3.73859309582, 114.13847448250], [0.200, 1.89409546254, 2420.92863603340], [0.158, 2.78517362162, 2008.55753915900], [0.191, 2.28724146195, 2435.15573003500], [0.188, 4.29343910228, 1471.75302706360], [0.155, 5.35194123420, 576.16138801060], [0.174, 2.80423114755, 1781.03134971940], [0.166, 5.32531835813, 2001.44399215820], [0.165, 2.62993712087, 525.49817940060], [0.141, 4.73916921092, 501.37978944330], [0.161, 5.83368523750, 181.05576652360], [0.137, 1.45135867137, 131.54696222180], [0.157, 3.22870773657, 1493.09366806600], [0.136, 4.20279658293, 710.74673161820], [0.144, 4.61003572124, 121.25202148330], [0.131, 5.85409245557, 175.16605980020], [0.144, 0.96056164245, 214.78356814630], [0.146, 3.95687956474, 421.93232443000], [0.138, 1.03080573610, 4.66586644600], [0.167, 1.97508934614, 62.25142559510], [0.123, 2.28640485589, 1898.35121793960], [0.168, 4.63122081226, 1891.23767093880], [0.129, 0.05327999225, 211.81462272970], [0.134, 3.49720535944, 488.84961647110], [0.117, 3.43819501459, 436.15941843160], [0.125, 5.87007326241, 963.40270297140], [0.120, 0.70795300239, 81.75213321620], [0.125, 4.50999471095, 2317.83586181480], [0.116, 6.11600926571, 558.00214074590], [0.117, 4.78666549046, 601.76425067620], [0.108, 0.45464469172, 1802.37199072180], [0.111, 1.44669239244, 2531.13495725280], [0.109, 6.14289264597, 151.04766984290], [0.113, 4.05600865495, 1286.90811962880], [0.129, 5.13936946160, 849.26422848890], [0.127, 3.88189432056, 98.89998852460], [0.133, 2.38290634070, 2111.65031337760], [0.122, 4.40757611742, 778.41478318470], [0.095, 0.07909774752, 213.41097002260], [0.095, 1.66925524906, 213.18722085340], [0.103, 1.88058957173, 99.16062095550], [0.119, 3.62785705509, 248.72381809010], [0.090, 4.63029999228, 228.27694896500], [0.092, 5.48700119144, 767.36908292080], [0.089, 4.61331934339, 431.26405732200], [0.099, 3.60670326134, 776.93031047640], [0.085, 4.93878023673, 2.44768055480], [0.089, 6.24541644164, 661.23792731640], [0.085, 0.45896349060, 1382.88734684660], [0.088, 3.81144552178, 1788.14489672020], [0.103, 3.20558404998, 312.19908396260], [0.080, 2.28889729136, 213.08664711690], [0.080, 5.74264101239, 213.51154375910], [0.082, 3.23546757052, 198.32124191100], [0.078, 6.03841191050, 835.03713448730], [0.080, 0.22601918692, 427.56139872250], [0.072, 2.05164614795, 2634.22773147140], [0.091, 5.97938003596, 556.51766803760], [0.087, 2.71469794199, 617.80588578620], ], # B2 [ [20629.977, 0.50482422817, 213.29909543800], [3719.555, 3.99833475829, 206.18554843720], [1627.158, 6.18189939500, 220.41264243880], [1346.067, 0.00000000000, 0.00000000000], [705.842, 3.03914308836, 419.48464387520], [365.042, 5.09928680706, 426.59819087600], [329.632, 5.27899210039, 433.71173787680], [219.335, 3.82841533795, 639.89728631400], [139.393, 1.04272623499, 7.11354700080], [103.980, 6.15730992966, 227.52618943960], [92.961, 1.97994412845, 316.39186965660], [71.242, 4.14754353431, 199.07200143640], [51.927, 2.88364833898, 632.78373931320], [48.961, 4.43390206741, 647.01083331480], [41.373, 3.15927770079, 853.19638175200], [28.602, 4.52978327558, 210.11770170030], [23.969, 1.11595912146, 14.22709400160], [20.511, 4.35095844197, 217.23124870110], [19.532, 5.30779711223, 440.82528487760], [18.263, 0.85391476786, 110.20632121940], [15.742, 4.25767226302, 103.09277421860], [16.840, 5.68112084135, 216.48048917570], [13.613, 2.99904334066, 412.37109687440], [11.567, 2.52679928410, 529.69096509460], [7.963, 3.31512423920, 202.25339517410], [6.599, 0.28766025146, 323.50541665740], [6.312, 1.16121321336, 117.31986822020], [5.891, 3.58260177246, 309.27832265580], [6.648, 5.55714129949, 209.36694217490], [5.590, 2.47783944511, 1066.49547719000], [6.192, 3.61231886519, 860.30992875280], [4.231, 3.02212363572, 846.08283475120], [3.612, 4.79935735435, 625.67019231240], [3.398, 3.76732731354, 423.41679713830], [3.387, 6.04222745633, 234.63973644040], [2.578, 5.63610668746, 735.87651353180], [2.831, 4.81642822334, 429.77958461370], [2.817, 4.47516563908, 654.12438031560], [2.573, 0.22467245054, 522.57741809380], [2.610, 3.29126967191, 95.97922721780], [2.419, 0.02986335489, 415.55249061210], [2.112, 4.55964179603, 422.66603761290], [2.304, 6.25081073546, 330.61896365820], [1.758, 5.53430456858, 536.80451209540], [1.814, 5.05675881426, 277.03499374140], [1.550, 5.60375604692, 223.59403617650], [1.457, 4.47767649852, 430.53034413910], [1.607, 5.53599550100, 224.34479570190], [1.172, 4.71017775994, 203.00415469950], [1.231, 0.25115931880, 3.93215326310], [1.105, 1.01595427676, 21.34064100240], [0.868, 4.84623483952, 949.17560896980], [0.939, 1.35429452093, 742.99006053260], [0.693, 6.03599130692, 124.43341522100], [0.712, 4.45550701473, 191.95845443560], [0.690, 5.44243765037, 437.64389113990], [0.810, 0.46198177342, 515.46387109300], [0.694, 5.23748122403, 447.93883187840], [0.604, 2.95749705544, 88.86568021700], [0.669, 0.08457977809, 215.74677599280], [0.579, 0.65329445948, 3.18139373770], [0.712, 6.05964117622, 11.04570026390], [0.698, 2.91371419321, 1073.60902419080], [0.526, 2.24947851818, 1059.38193018920], [0.511, 2.86838724347, 408.43894361130], [0.589, 5.79268515755, 63.73589830340], [0.519, 1.76641574095, 1279.79457262800], [0.503, 5.73762297081, 728.76296653100], [0.482, 4.68234512154, 838.96928775040], [0.494, 4.04363805503, 490.33408917940], [0.458, 1.17998315936, 210.85141488320], [0.380, 5.28045750432, 1052.26838318840], [0.404, 4.58953258519, 302.16477565500], [0.377, 5.20131800999, 74.78159856730], [0.328, 0.11893501088, 956.28915597060], [0.290, 3.99300398632, 1162.47470440780], [0.262, 2.04320741578, 1471.75302706360], [0.259, 3.76206113036, 635.96513305090], [0.254, 0.16694559092, 195.13984817330], [0.309, 5.44921175960, 543.91805909620], [0.237, 1.27761853769, 231.45834270270], [0.288, 1.32449995239, 203.73786788240], [0.229, 4.19748765966, 1265.56747862640], [0.238, 4.02925601887, 643.07868005170], [0.238, 0.49997895983, 10.29494073850], [0.257, 3.69107889837, 867.42347575360], [0.191, 0.17807919948, 628.85158605010], [0.246, 5.62469599682, 351.81659230870], [0.183, 3.38184740572, 636.71589257630], [0.172, 3.83173494030, 1581.95934828300], [0.220, 1.03443668151, 483.22054217860], [0.217, 4.65210162713, 750.10360753340], [0.143, 2.31969979791, 18.15924726470], [0.137, 5.50046852846, 1169.58825140860], [0.120, 3.70151294359, 416.30325013750], [0.136, 3.38453909352, 1155.36115740700], [0.149, 0.85459831932, 1375.77379984580], [0.150, 5.71949902293, 618.55664531160], [0.125, 4.82446274394, 436.89313161450], [0.120, 3.26968058035, 1478.86657406440], [0.131, 0.11496484259, 1898.35121793960], [0.099, 4.57241894541, 643.82943957710], [0.095, 4.92115458463, 650.94298657790], [0.090, 2.09300085806, 621.73803904930], [0.111, 0.11975665259, 831.85574074960], [0.089, 2.54351587616, 85.82729883120], [0.080, 5.09103451442, 340.77089204480], [0.078, 3.17395501851, 497.44763618020], [0.085, 0.18997660997, 1258.45393162560], [0.081, 1.16732337173, 217.96496188400], [0.072, 5.47328223678, 337.73251065900], ], # B3 [ [666.252, 1.99006340181, 213.29909543800], [632.350, 5.69778316807, 206.18554843720], [398.051, 0.00000000000, 0.00000000000], [187.838, 4.33779804809, 220.41264243880], [91.884, 4.84104208217, 419.48464387520], [42.369, 2.38073239056, 426.59819087600], [51.548, 3.42149490328, 433.71173787680], [25.661, 4.40167213109, 227.52618943960], [20.551, 5.85313509872, 199.07200143640], [18.081, 1.99321433229, 639.89728631400], [10.874, 5.37344546547, 7.11354700080], [9.590, 2.54901825866, 647.01083331480], [7.085, 3.45518372721, 316.39186965660], [6.002, 4.80055225135, 632.78373931320], [5.778, 0.01680378777, 210.11770170030], [4.881, 5.63719730884, 14.22709400160], [4.501, 1.22424419010, 853.19638175200], [5.542, 3.51756747774, 440.82528487760], [3.548, 4.71299370890, 412.37109687440], [2.851, 0.62679207578, 103.09277421860], [2.173, 3.71982274459, 216.48048917570], [1.991, 6.10867071657, 217.23124870110], [1.435, 1.69177141453, 860.30992875280], [1.217, 4.30778838827, 234.63973644040], [1.157, 5.75027789902, 309.27832265580], [0.795, 5.69026441157, 117.31986822020], [0.733, 0.59842720676, 1066.49547719000], [0.713, 0.21700311697, 625.67019231240], [0.773, 5.48361981990, 202.25339517410], [0.897, 2.65577866867, 654.12438031560], [0.509, 2.86079833766, 429.77958461370], [0.462, 4.17742567173, 529.69096509460], [0.390, 6.11288036049, 191.95845443560], [0.505, 4.51905764563, 323.50541665740], [0.379, 3.74436004151, 223.59403617650], [0.332, 5.49370890570, 21.34064100240], [0.377, 5.25624813434, 95.97922721780], [0.384, 4.48187414769, 330.61896365820], [0.367, 5.03190929680, 846.08283475120], [0.281, 1.14133888637, 735.87651353180], [0.245, 5.81618253250, 423.41679713830], [0.241, 1.70335120180, 522.57741809380], [0.258, 3.69110118716, 447.93883187840], [0.231, 4.15697626494, 110.20632121940], [0.305, 5.97746884029, 302.16477565500], [0.284, 0.66224572127, 203.00415469950], [0.204, 1.54683820621, 209.36694217490], [0.194, 4.21193801453, 124.43341522100], [0.145, 4.79689259614, 88.86568021700], [0.151, 3.82010884134, 536.80451209540], [0.100, 0.03596545368, 949.17560896980], [0.097, 0.91303450276, 1073.60902419080], [0.110, 2.21197473966, 515.46387109300], [0.084, 2.53842533109, 422.66603761290], [0.085, 5.11102520704, 3.93215326310], [0.077, 6.04074586787, 838.96928775040], [0.085, 1.18898817378, 728.76296653100], [0.084, 4.10158366806, 224.34479570190], ], # B4 [ [80.384, 1.11918414679, 206.18554843720], [31.660, 3.12218745098, 213.29909543800], [17.143, 2.48073200414, 220.41264243880], [11.844, 3.14159265359, 0.00000000000], [9.005, 0.38441424927, 419.48464387520], [6.164, 1.56186379537, 433.71173787680], [4.660, 1.28235639570, 199.07200143640], [4.775, 2.63498295487, 227.52618943960], [1.487, 1.43096671616, 426.59819087600], [1.424, 0.66988083613, 647.01083331480], [1.075, 6.18092274059, 639.89728631400], [1.145, 1.72041928134, 440.82528487760], [0.682, 3.84841098180, 14.22709400160], [0.655, 3.49486258327, 7.11354700080], [0.456, 0.47338193402, 632.78373931320], [0.509, 0.31432285584, 412.37109687440], [0.343, 5.86413875355, 853.19638175200], [0.270, 2.50125594913, 234.63973644040], [0.197, 5.39156324804, 316.39186965660], [0.236, 2.11084590211, 210.11770170030], [0.172, 6.09682874401, 860.30992875280], [0.159, 5.95049154821, 216.48048917570], [0.100, 1.98534903594, 625.67019231240], [0.112, 0.85526419268, 654.12438031560], [0.115, 5.03884718594, 117.31986822020], [0.115, 0.44589613974, 110.20632121940], ], # B5 [ [7.895, 2.81927558645, 206.18554843720], [1.014, 0.51187210270, 220.41264243880], [0.772, 2.99484124049, 199.07200143640], [0.967, 3.14159265359, 0.00000000000], [0.583, 5.96456944075, 433.71173787680], [0.588, 0.78008666397, 227.52618943960], [0.445, 2.38630799074, 419.48464387520], [0.098, 5.10622131539, 647.01083331480], [0.091, 5.81659714144, 7.11354700080], [0.088, 6.17828532308, 440.82528487760], [0.089, 0.58396864530, 213.29909543800], ], ] """This table contains Saturn's periodic terms (all of them) from the planetary theory VSOP87 for the heliocentric latitude at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in pages 440-442.""" VSOP87_R = [ # R0 [ [955758135.801, 0.00000000000, 0.00000000000], [52921382.465, 2.39226219733, 213.29909543800], [1873679.934, 5.23549605091, 206.18554843720], [1464663.959, 1.64763045468, 426.59819087600], [821891.059, 5.93520025371, 316.39186965660], [547506.899, 5.01532628454, 103.09277421860], [371684.449, 2.27114833428, 220.41264243880], [361778.433, 3.13904303264, 7.11354700080], [140617.548, 5.70406652991, 632.78373931320], [108974.737, 3.29313595577, 110.20632121940], [69007.015, 5.94099622447, 419.48464387520], [61053.350, 0.94037761156, 639.89728631400], [48913.044, 1.55733388472, 202.25339517410], [34143.794, 0.19518550682, 277.03499374140], [32401.718, 5.47084606947, 949.17560896980], [20936.573, 0.46349163993, 735.87651353180], [20839.118, 1.52102590640, 433.71173787680], [20746.678, 5.33255667599, 199.07200143640], [15298.457, 3.05943652881, 529.69096509460], [14296.479, 2.60433537909, 323.50541665740], [11993.314, 5.98051421881, 846.08283475120], [11380.261, 1.73105746566, 522.57741809380], [12884.128, 1.64892310393, 138.51749687070], [7752.769, 5.85191318903, 95.97922721780], [9796.061, 5.20475863996, 1265.56747862640], [6465.967, 0.17733160145, 1052.26838318840], [6770.621, 3.00433479284, 14.22709400160], [5850.443, 1.45519636076, 415.55249061210], [5307.481, 0.59737534050, 63.73589830340], [4695.746, 2.14919036956, 227.52618943960], [4043.988, 1.64010323863, 209.36694217490], [3688.132, 0.78016133170, 412.37109687440], [3376.457, 3.69528478828, 224.34479570190], [2885.348, 1.38764077631, 838.96928775040], [2976.033, 5.68467931117, 210.11770170030], [3419.551, 4.94549148887, 1581.95934828300], [3460.943, 1.85088802878, 175.16605980020], [3400.616, 0.55386747515, 350.33211960040], [2507.630, 3.53851863255, 742.99006053260], [2448.325, 6.18412386316, 1368.66025284500], [2406.138, 2.96559220267, 117.31986822020], [2881.181, 0.17960757891, 853.19638175200], [2173.959, 0.01508587396, 340.77089204480], [2024.483, 5.05411271271, 11.04570026390], [1740.254, 2.34657043464, 309.27832265580], [1861.397, 5.93361638244, 625.67019231240], [1888.436, 0.02968443389, 3.93215326310], [1610.859, 1.17302463549, 74.78159856730], [1462.631, 1.92588134017, 216.48048917570], [1474.547, 5.67670461130, 203.73786788240], [1395.109, 5.93669404929, 127.47179660680], [1781.165, 0.76314388077, 217.23124870110], [1817.186, 5.77713225779, 490.33408917940], [1472.392, 1.40064915651, 137.03302416240], [1304.089, 0.77235613966, 647.01083331480], [1149.773, 5.74021249703, 1162.47470440780], [1126.667, 4.46707803791, 265.98929347750], [1277.489, 2.98412586423, 1059.38193018920], [1207.053, 0.75285933160, 351.81659230870], [1071.399, 1.13567265104, 1155.36115740700], [1020.922, 5.91233512844, 1685.05212250160], [1315.042, 5.11202572637, 211.81462272970], [1295.553, 4.69184139933, 1898.35121793960], [1099.037, 1.81765118601, 149.56319713460], [998.462, 2.63131596867, 200.76892246580], [985.869, 2.25992849742, 956.28915597060], [932.434, 3.66980793184, 554.06998748280], [664.481, 0.60297724821, 728.76296653100], [659.850, 4.66635439533, 195.13984817330], [617.740, 5.62092000007, 942.06206196900], [626.382, 5.94208232590, 1478.86657406440], [482.230, 1.84070179496, 479.28838891550], [487.689, 2.79373616806, 3.18139373770], [470.086, 0.83847755040, 1471.75302706360], [451.817, 5.64468459871, 2001.44399215820], [553.128, 3.41088600844, 269.92144674060], [534.397, 1.26443331367, 275.55052103310], [472.572, 1.88198584660, 515.46387109300], [405.434, 1.64001413521, 536.80451209540], [517.196, 4.44310450526, 2214.74308759620], [452.848, 3.00349117198, 302.16477565500], [494.340, 2.28626675074, 278.51946644970], [489.825, 5.80631420383, 191.20769491020], [427.459, 0.05741344372, 284.14854074220], [339.763, 1.40198657693, 440.82528487760], [340.627, 0.89091104306, 628.85158605010], [385.974, 1.99700402508, 1272.68102562720], [288.298, 1.12160250272, 422.66603761290], [294.444, 0.42577061903, 312.19908396260], [262.490, 0.31753439818, 1045.15483618760], [295.331, 0.67144493789, 88.86568021700], [342.968, 5.85600322299, 1795.25844372100], [341.117, 2.37585247250, 525.49817940060], [234.018, 4.22756813216, 114.13847448250], [223.729, 2.28129446763, 330.61896365820], [275.814, 0.47832439352, 38.13303563780], [224.592, 0.54754005675, 1788.14489672020], [303.300, 0.87946670205, 6069.77675455340], [292.103, 6.21420611920, 210.85141488320], [226.121, 0.37495223398, 142.44965013380], [277.257, 5.31917702012, 692.58748435350], [242.911, 5.37187983246, 1258.45393162560], [205.571, 0.95755250527, 288.08069400530], [207.567, 5.38126259725, 2317.83586181480], [186.835, 6.03591766061, 404.50679034820], [218.536, 5.25607043545, 212.33588759150], [222.155, 5.94588016768, 39.35687591520], [179.673, 4.41045924362, 408.43894361130], [241.440, 1.12525868110, 388.46515523820], [197.093, 3.90141942850, 52.69019803950], [236.639, 0.90802744873, 1375.77379984580], [171.915, 5.56318632797, 213.34727954780], [169.865, 2.85667554010, 99.16062095550], [214.398, 4.20253525974, 2531.13495725280], [172.010, 2.36537801012, 213.25091132820], [165.707, 2.63679789706, 215.74677599280], [230.892, 5.49463421262, 191.95845443560], [177.585, 0.38155817719, 430.53034413910], [191.514, 2.95906900704, 437.64389113990], [163.250, 3.45832517280, 617.80588578620], [162.305, 5.73050678664, 203.00415469950], [175.108, 5.71404465044, 1066.49547719000], [183.041, 5.66851947172, 2111.65031337760], [150.077, 4.40663921925, 417.03696332040], [187.935, 6.07916265661, 563.63121503840], [145.127, 5.08176368814, 423.41679713830], [137.491, 5.43912787991, 222.86032299360], [172.824, 1.84920994090, 1589.07289528380], [165.478, 2.89132196119, 214.26230328450], [145.727, 1.56565192483, 831.85574074960], [176.864, 2.30323752987, 9999.98645077300], [128.877, 2.55338644107, 414.06801790380], [120.093, 0.04329750542, 1361.54670584420], [143.441, 0.99817357720, 76.26607127560], [108.747, 2.09282278191, 207.67002114550], [132.106, 2.85902597898, 312.45971639350], [112.238, 0.26221759151, 2104.53676637680], [125.186, 4.78354048063, 205.22234059070], [104.427, 3.63671899047, 65.22037101170], [107.447, 3.67064138701, 212.77783057620], [108.642, 2.85492389024, 21.34064100240], [97.743, 5.12231845599, 2634.22773147140], [109.097, 1.63231061493, 208.63322899200], [96.852, 4.19928280035, 305.34616939270], [96.507, 2.56002066845, 1692.16566950240], [85.829, 4.54545085982, 210.37833413120], [99.249, 5.13816222131, 1574.84580128220], [112.532, 5.03109281265, 703.63318461740], [84.023, 1.18337717265, 429.77958461370], [89.021, 5.38791571457, 107.02492748170], [110.191, 2.43656081234, 355.74874557180], [90.659, 4.20908809746, 213.82036029980], [95.885, 5.44594259071, 2428.04218303420], [94.109, 2.39786381418, 483.22054217860], [85.609, 0.03354346966, 860.30992875280], [88.796, 4.05766306750, 128.95626931510], [81.951, 1.66499731549, 62.25142559510], [91.240, 3.96942332591, 2847.52682690940], [83.961, 4.60845858022, 177.87437278590], [88.376, 3.86800515885, 140.00196957900], [93.308, 0.73846639887, 831.10498122420], [91.872, 2.94977605320, 35.42472265210], [87.077, 1.33390590052, 1905.46476494040], [96.584, 4.84438390997, 131.40394986990], [71.010, 0.99334817658, 405.25754987360], [95.266, 2.51506908152, 2.44768055480], [72.514, 4.63213873657, 245.54242435240], [82.580, 1.52823217919, 145.63104387150], [76.693, 3.15240783008, 767.36908292080], [70.317, 4.04253707270, 173.94221952280], [86.015, 2.30103727270, 85.82729883120], [66.529, 4.75053522835, 70.84944530420], [65.835, 2.46869725001, 280.96714700450], [64.824, 0.09343869325, 9.56122755560], [71.557, 0.01212415296, 565.11568774670], [66.533, 1.08034871114, 339.28641933650], [63.488, 2.01740971153, 234.63973644040], [60.786, 5.12026947473, 756.32338265690], [58.123, 6.05732868566, 1677.93857550080], [64.236, 1.28586474622, 1148.24761040620], [73.124, 4.37810889148, 425.11371816770], [55.012, 3.85865703217, 342.25536475310], [57.101, 6.26689214029, 2420.92863603340], [64.090, 4.09854757476, 327.43756992050], [55.306, 1.60456896521, 543.02428721890], [57.987, 5.47269124340, 347.88443904560], [73.581, 3.72292337326, 92.04707395470], [73.760, 3.57045342615, 1.48447270830], [64.940, 2.44739629174, 267.47376618580], [54.414, 3.71479080197, 344.70304530790], [49.783, 3.93453970179, 192.69216761850], [49.537, 3.22831070579, 333.65734504400], [47.539, 3.92925402178, 199.28444975750], [49.368, 4.90341763553, 217.49188113200], [62.711, 4.40120079629, 214.78356814630], [46.359, 2.09430260266, 212.54833591260], [46.289, 2.64038453480, 10.29494073850], [54.335, 1.07179534996, 362.86229257260], [58.742, 2.62270940799, 225.82926841020], [48.457, 3.15166418511, 216.21985674480], [46.316, 4.86226642770, 2950.61960112800], [45.970, 4.97297391881, 198.32124191100], [46.678, 2.44960215701, 207.14875628370], [44.905, 1.77616995803, 223.59403617650], [44.521, 5.55987055442, 264.50482076920], [55.914, 4.29520232351, 329.72519178090], [49.643, 5.20789299388, 2744.43405269080], [58.829, 4.23073947869, 700.66423920080], [52.629, 3.79230629070, 343.21857259960], [41.532, 0.74488808688, 125.98732389850], [47.767, 2.39260015876, 207.88246946660], [56.157, 2.07214273531, 124.43341522100], [43.345, 1.83707598036, 106.27416795630], [39.793, 4.00870764324, 12.53017297220], [53.882, 4.97905460628, 134.58534360760], [50.135, 5.75914508514, 320.32402291970], [44.960, 5.35721924134, 218.92816973050], [41.089, 4.92252591399, 1891.23767093880], [46.509, 2.06623129884, 2008.55753915900], [42.949, 0.39856812529, 357.44566660120], [37.992, 2.06495914285, 247.23934538180], [48.733, 5.32762223699, 3127.31333126180], [34.583, 5.62555932761, 99.91138048090], [41.092, 2.47264897370, 237.67811782620], [40.763, 4.08408559215, 621.73803904930], [34.213, 0.73077393007, 750.10360753340], [33.967, 5.31264617621, 206.23373254700], [36.509, 1.68826775750, 22.09140052780], [39.361, 3.45730719990, 241.61027108930], [34.796, 2.24780137629, 487.36514376280], [33.049, 4.86593901955, 209.10630974400], [32.584, 2.22713131846, 319.57326339430], [39.035, 3.73870591196, 3163.91869656600], [32.722, 1.06640549236, 252.65597135320], [38.671, 4.39617126814, 18.15924726470], [34.514, 1.82607500690, 380.12776796000], [41.539, 0.08136234251, 210.33015002140], [33.527, 5.80475568528, 251.43213107580], [31.221, 1.96489151107, 244.31858407500], [30.521, 2.26854188579, 1169.58825140860], [34.828, 5.96324553131, 217.96496188400], [38.481, 4.43707551964, 160.60889739850], [35.998, 3.83262381556, 56.62235130260], [31.041, 4.89914223233, 144.14657116320], [32.342, 3.58191018804, 231.45834270270], [28.838, 5.80081031514, 1994.33044515740], [32.175, 2.13166877923, 206.13736432740], [32.643, 1.93131580544, 98.89998852460], [34.917, 5.65276617691, 497.44763618020], [28.928, 2.21653288920, 14.97785352700], [31.569, 3.81846560564, 73.29712585900], [32.199, 0.99811846290, 1464.63948006280], [29.153, 5.98414099408, 2737.32050569000], [36.706, 4.75493516597, 348.84764689210], [28.665, 1.68732054583, 78.71375183040], [27.501, 6.12086395418, 214.04985496340], [28.795, 0.04448605904, 5.62907429250], [27.205, 0.24587543816, 313.21047591890], [32.441, 3.77921585847, 33.94024994380], [27.088, 5.20310098020, 148.07872442630], [34.956, 3.43886187587, 273.10284047830], [33.076, 2.44662095168, 969.62247809490], [27.745, 1.44598606685, 258.87574647670], [27.178, 4.25918596220, 179.35884549420], [27.872, 0.78772093522, 546.95644048200], [29.106, 4.83947711462, 905.88657979150], [27.417, 2.44930366818, 254.94359321360], [34.296, 6.00920969644, 166.82867252200], [28.859, 6.02917249910, 188.92007304980], [26.001, 0.65046992484, 654.12438031560], [33.560, 1.23732329127, 2221.85663459700], [24.356, 0.52248751330, 894.84087952760], [27.767, 5.17820678484, 5.41662597140], [25.568, 3.35897159622, 0.96320784650], [22.879, 3.51293480690, 458.84151979040], [24.496, 0.00976884124, 69.15252427480], [28.794, 0.75545700854, 488.84961647110], [31.228, 2.05299907796, 282.45161971280], [25.438, 5.29037729250, 636.71589257630], [25.332, 4.97007969450, 3060.82592234740], [23.596, 2.54766434769, 196.62432088160], [29.602, 3.92688207792, 206.70681329900], [28.255, 2.72125009693, 32.24332891440], [22.115, 4.75775237642, 213.18722085340], [22.130, 3.25436709191, 681.54178408960], [21.675, 4.61403328597, 3267.01147078460], [22.115, 3.16759500067, 213.41097002260], [26.912, 2.86269769133, 24.37902238820], [20.737, 1.66895754198, 274.06604832480], [28.309, 4.73122154345, 552.58551477450], [25.252, 5.11986371899, 168.05251279940], [26.364, 1.59272536419, 491.81856188770], [21.995, 0.88079009280, 635.96513305090], [27.076, 5.53694832022, 555.55446019110], [19.683, 2.14388519695, 54.17467074780], [27.266, 3.57891326986, 561.18353448360], [25.162, 1.78070903718, 182.27960680100], [21.386, 3.86030772476, 116.42609634290], [25.572, 1.62093861709, 2324.94940881560], [20.025, 2.90618582553, 120.35824960600], [19.882, 5.59203696008, 4.19278569400], [19.454, 0.10623632006, 218.71572140940], [25.617, 2.09931460158, 248.72381809010], [19.804, 2.52180124343, 1485.98012106520], [18.516, 2.54810951896, 213.51154375910], [19.831, 0.07955320843, 842.15068148810], [18.516, 5.37755110510, 213.08664711690], [23.655, 1.59974907716, 738.79727483860], [20.375, 2.94653107321, 59.80374504030], [24.247, 3.15387696867, 240.38643081190], [18.294, 3.18715992969, 295.05122865420], [17.464, 2.90471803626, 477.80391620720], [20.698, 1.07232100334, 494.26624244250], [20.400, 1.83665590916, 533.62311835770], [21.285, 0.63341794388, 189.72322220190], [16.116, 0.60069688498, 746.92221379570], [16.297, 3.98317294128, 2.92076130680], [16.922, 4.74266972033, 2207.62954059540], [20.479, 6.05098286202, 173.68158709190], [15.447, 1.49120311247, 543.91805909620], [19.944, 4.94086632750, 121.25202148330], [17.127, 0.71458025372, 1781.03134971940], [17.240, 0.67749766724, 151.04766984290], [15.574, 5.70296527381, 3053.71237534660], [15.036, 5.52770334605, 2310.72231481400], [15.928, 4.45642717299, 643.82943957710], [16.165, 0.63286131026, 358.93013930950], [14.589, 5.26158292613, 472.17484191470], [16.545, 3.52813228069, 3480.31056622260], [18.912, 0.55218675639, 4.66586644600], [17.595, 2.26495491189, 672.14061522840], [18.104, 2.71285673689, 181.80652604900], [15.918, 5.23446779429, 135.54855145410], [13.931, 3.19357128657, 213.55972786890], [14.058, 0.82375896652, 221.37585028530], [13.931, 4.73208739639, 213.03846300710], [14.690, 2.65882838685, 292.01284726840], [14.454, 0.21819892811, 235.39049596580], [16.168, 0.91025406068, 280.00393915800], [13.327, 3.54947442109, 205.66428357540], [16.104, 0.82547975762, 176.65053250850], [16.441, 5.39398801335, 424.15051032120], [12.747, 0.75780958758, 721.64941953020], [12.754, 3.55466871752, 153.49535039770], [14.448, 0.12049617049, 313.68355667090], [16.499, 3.26383140489, 6283.07584999140], [16.564, 1.62649604519, 5856.47765911540], [14.950, 1.23923264394, 2641.34127847220], [15.724, 1.18874754834, 486.40193591630], [11.893, 0.91693668558, 416.30325013750], [11.684, 1.11385455828, 81.75213321620], [12.985, 4.74373293725, 3377.21779200400], [11.864, 0.64411806416, 28.31117565130], [13.216, 4.95904024430, 1279.79457262800], [16.121, 0.98185208328, 2538.24850425360], [14.900, 1.76649832526, 569.04784100980], [11.337, 4.36555105334, 3583.40334044120], [11.253, 5.98638731448, 193.65537546500], [14.753, 2.92291248767, 167.08930495290], [13.774, 2.50808183571, 1802.37199072180], [11.068, 0.00471764868, 629.60234557550], [12.781, 3.62178749219, 67.66805156650], [12.238, 0.27163151602, 1044.40407666220], [11.021, 0.15223056578, 501.37978944330], [14.206, 2.63254885854, 618.55664531160], [14.365, 0.37819794671, 601.76425067620], [15.034, 2.67095006272, 46.47042291600], [12.248, 2.19751851112, 650.94298657790], [10.783, 2.86375137884, 113.38771495710], [11.418, 1.20874560246, 172.24529849340], [14.613, 6.05645353059, 468.24268865160], [10.580, 2.05903854864, 429.04587143080], [13.721, 2.20936291526, 228.27694896500], [12.180, 1.82585577726, 241.87090352020], [10.787, 5.06924118186, 162.89651925890], [12.056, 3.20018724042, 72.07328558160], [12.233, 4.50741930970, 425.63498302950], [12.101, 4.14977794161, 1108.13997496560], [9.843, 1.49451039604, 226.63241756230], [10.287, 2.10680007784, 1033.35837639830], [9.975, 2.81640446254, 518.64526483070], [9.597, 4.80028087522, 426.64637498580], [10.746, 4.66838299108, 129.91947716160], [12.961, 5.11568581806, 219.44943459230], [12.302, 5.33568547700, 776.93031047640], [9.484, 4.85702954575, 820.05928096030], [11.441, 3.85769732764, 405.99126305650], [9.625, 1.60280478656, 426.55000676620], [9.164, 0.70204567980, 403.02231763990], [10.112, 2.76486875630, 210.59078245230], [10.816, 1.36864298163, 170.76082578510], [10.187, 2.36063948382, 685.47393735270], [12.397, 6.06349943525, 875.83029900100], [12.146, 2.04060386262, 508.35032409220], [9.574, 3.19555214859, 286.59622129700], [10.193, 4.01123146905, 381.35160823740], [8.900, 3.63260235880, 319.31263096340], [10.052, 5.16107251040, 216.00740842370], [8.528, 3.88076551354, 630.33605875840], [8.875, 5.46623776078, 3370.10424500320], [8.401, 5.65557131026, 213.45915413240], [10.033, 5.97497644283, 6.15033915430], [8.401, 2.27009862215, 213.13903674360], [11.661, 0.95163302252, 694.07195706180], [8.696, 2.33868966556, 220.36445832900], [8.141, 5.54059747150, 220.46082654860], [9.615, 2.75755414306, 556.51766803760], [9.120, 0.44322374149, 2097.42321937600], [8.109, 5.53989498262, 181.05576652360], [10.763, 0.05616402982, 691.10301164520], [9.579, 2.84979792871, 184.09414790940], [9.958, 2.38581008546, 945.24345570670], [8.526, 0.17821781104, 289.56516671360], [7.700, 0.00481375410, 7.16173111060], [8.613, 0.82900327241, 2957.73314812880], [9.517, 2.27516458273, 8.07675484730], [9.049, 3.37335025790, 731.94436026870], [7.888, 5.78452089815, 230.82520325630], [7.684, 3.10462250617, 7.06536289100], [7.391, 5.29648701813, 2627.11418447060], [9.875, 4.69411059509, 10213.28554621100], [7.328, 0.09051133382, 100.64509366380], [7.999, 1.60928374337, 696.51963761660], [7.600, 4.90078510977, 51.20572533120], [9.928, 5.25713005643, 699.70103135430], [7.333, 5.61982406824, 31.49256938900], [7.376, 4.52737009022, 616.32141307790], [9.422, 2.44475274779, 2118.76386037840], [7.300, 4.01885475010, 212.02707105080], [7.502, 4.71301501745, 436.15941843160], [9.071, 2.75662160229, 130.44074202340], [8.913, 2.19608557019, 427.56139872250], [8.801, 4.26655882704, 141.22580985640], [6.853, 5.69082635009, 480.77286162380], [7.765, 3.27218537808, 3796.70243587920], [9.159, 3.04713671650, 9786.68735533500], [9.034, 2.04165937353, 204.70107572890], [6.902, 4.61962635489, 2524.02141025200], [6.728, 0.58794595002, 739.80866679490], [6.741, 0.52362906624, 135.33610313300], [8.201, 5.03994203224, 411.62033734900], [7.240, 3.90653111215, 214.57111982520], [6.887, 4.11954799957, 662.53120356300], [6.566, 2.67659365854, 194.17664032680], [6.539, 6.25585361704, 31.01948863700], [7.484, 5.56871021201, 271.40591944890], [8.078, 3.09955817560, 353.30106501700], [7.072, 1.10066698352, 282.66406803390], [6.089, 0.79684364835, 593.42686339800], [6.140, 3.79672343724, 180.16199464630], [6.703, 3.82854248620, 412.58354519550], [6.024, 5.46288776207, 724.83081326790], [8.102, 4.51051495778, 268.43697403230], [6.033, 1.24326252021, 447.93883187840], [7.425, 2.29394888999, 532.61172640140], [6.007, 2.87215425398, 426.07692601420], [7.568, 0.79147591036, 2854.64037391020], [5.816, 1.70824982811, 50.40257617910], [7.534, 5.38598292680, 953.10776223290], [5.863, 2.04201456623, 454.90936652730], [7.291, 0.88044346877, 457.61767951300], [6.235, 4.51960341418, 3693.60966166060], [6.359, 6.27053660532, 313.94418910180], [5.722, 0.47241118592, 610.69233878540], [5.704, 0.45599464136, 643.07868005170], [6.176, 3.98739420856, 835.03713448730], [5.730, 0.50814242490, 1038.04128918680], [6.812, 4.20463385690, 938.12990870590], [5.620, 4.08049141112, 3899.79521009780], [6.770, 4.22172125738, 916.93228005540], [6.069, 3.46762401122, 278.25883401880], [5.875, 5.51773010551, 1073.60902419080], [5.558, 3.29478679376, 20.60692781950], [6.274, 4.88767368263, 0.52126486180], [5.794, 4.09991767938, 391.17346822390], [5.442, 2.79802608247, 397.39324334740], [5.754, 4.42718264879, 165.60483224460], [5.879, 6.17871525366, 291.26208774300], [6.716, 2.18663847730, 627.36711334180], [5.761, 0.62536160332, 114.39910691340], [5.359, 2.29390692216, 331.20966448920], [6.210, 4.92273259045, 450.97721326420], [6.686, 2.13438181268, 285.63301345050], [5.173, 4.10128119721, 6.59228213900], [5.707, 3.48716972669, 230.56457082540], [6.363, 5.64626069194, 518.38463239980], [5.241, 3.78081098206, 418.52143602870], [5.191, 4.39595146262, 84.34282612290], [6.710, 2.96748528229, 624.91943278700], [4.931, 2.71959451867, 558.00214074590], [5.225, 4.65463431385, 310.71461125430], [4.857, 2.61373582429, 66.70484372000], [4.847, 3.76991373317, 423.67742956920], [5.284, 1.96024672163, 1182.92157353290], [5.933, 2.74003948393, 219.89137757700], [6.373, 1.41296346460, 606.76018552230], [4.728, 0.23421038001, 1063.31408345230], [6.408, 1.16687419680, 268.95823889410], [4.782, 1.56813683227, 420.96911658350], [5.399, 4.57611449409, 238.90195810360], [5.161, 0.14436456585, 2413.81508903260], [4.858, 5.21378840436, 3686.49611465980], [5.086, 1.73392381835, 337.73251065900], [4.650, 3.71029121290, 305.08553696180], [4.896, 3.67786531840, 240.12579838100], [5.949, 0.29956165181, 524.01370669230], [4.968, 2.53258931342, 980.66817835880], [4.944, 2.16189522746, 104.05598206510], [5.366, 3.54867806985, 107.28555991260], [4.917, 0.48641512683, 3274.12501778540], [5.617, 6.27593478237, 112.65400177420], [4.524, 5.09539085552, 103.14095832840], [5.643, 1.52724336480, 105.54045477340], [4.504, 1.68251875362, 196.03362005060], [4.897, 4.90011892854, 102.12956637210], [4.525, 1.88735156553, 103.04459010880], [4.327, 1.45407229380, 409.92341631960], [5.095, 3.40640608336, 427.11945573780], [5.782, 3.55197606731, 25874.60404613620], [4.192, 0.16603430914, 958.57677783100], [4.976, 0.50639895683, 511.53171782990], [4.167, 5.94725762070, 316.44005376640], [4.353, 3.78587101731, 1171.87587326900], [5.387, 2.03693287651, 2435.15573003500], [4.067, 4.66592603130, 106.01353552540], [4.817, 3.53529781673, 960.22130923370], [4.048, 3.20024146722, 775.23338944700], [4.016, 6.00569143107, 945.99421523210], [3.989, 3.15130319196, 115.62294719080], [4.559, 5.59555355771, 778.41478318470], [4.153, 2.75042736587, 316.34368554680], [3.983, 2.00842137744, 597.35901666110], [4.212, 4.16852690218, 823.99143422340], [5.193, 0.71717111984, 810.65811209910], [3.927, 5.04361736754, 2943.50605412720], [4.225, 0.02571003853, 0.75075952540], [4.926, 1.12994881124, 526.98265210890], [4.170, 3.94116290117, 422.40540518200], [4.432, 3.99599046800, 393.46109008430], [3.840, 1.21234108241, 212.07525516060], [3.866, 4.20930793423, 97.67614824720], [4.440, 1.35536679738, 211.60217440860], [3.840, 0.43014354282, 214.52293571540], [4.724, 3.62039208608, 638.41281360570], [4.870, 5.75874599620, 1246.65747183630], [4.449, 1.43384065964, 184.98791978670], [3.931, 2.36660272585, 909.81873305460], [3.787, 5.98932416906, 325.95309721220], [3.665, 0.72917314141, 20.44686912510], [4.243, 2.29103096797, 453.42489381900], [3.730, 6.24831601183, 159.12442469020], [3.900, 1.31013240315, 850.01498801430], [5.134, 1.97348901289, 526.50957135690], [3.621, 2.77435773661, 123.53964334370], [3.607, 5.32058842710, 406.95447090300], [3.802, 1.94444523548, 421.18156490460], [3.906, 3.02475451573, 317.35507750310], [4.473, 0.80804073855, 838.21852822500], [4.081, 2.08732468180, 988.53248488500], [3.843, 4.99347148246, 7.63481186260], [4.467, 6.09037793116, 760.25553592000], [3.514, 3.97285766412, 426.48631629140], [3.504, 0.85064201666, 299.12639426920], [4.397, 1.68577228317, 824.74219374880], [3.581, 2.35235960566, 337.80194662820], [4.606, 3.48411642192, 913.96333463880], [3.790, 3.64538213705, 216.26804085460], [3.496, 0.95035381131, 436.89313161450], [4.422, 0.82822191292, 43.28902917830], [3.688, 2.83785443800, 739.05790726950], [4.439, 1.19409419107, 421.93232443000], [3.572, 2.77298538478, 444.75743814070], [4.420, 5.44308967028, 963.40270297140], [4.443, 3.73070830296, 37.87240320690], [4.322, 4.75680702521, 40.84134862350], [3.724, 0.59005210557, 256.42806592190], [4.471, 2.22367643527, 318.83955021140], [4.184, 1.52719196640, 298.23262239190], [3.534, 5.01937599570, 386.98068252990], [3.400, 3.22663067085, 4113.09430553580], [4.556, 1.35715974815, 495.75071515080], [4.453, 1.80417064247, 829.62050851590], [3.617, 1.51036385224, 41.64449777560], [3.789, 4.80357656146, 238.42887735160], [3.514, 2.38272766645, 426.71006546060], [3.208, 1.74465274123, 952.35700270750], [4.398, 2.65839000906, 832.58945393250], [4.092, 3.07954777295, 60.76695288680], [3.813, 5.63047104819, 315.42866181010], [3.219, 6.22278803635, 754.83890994860], [3.102, 2.69222024257, 343.73983746140], [4.045, 4.02463772100, 376.19561469690], [3.576, 0.38532787280, 214.99601646740], [3.291, 5.49542015261, 143.93412284210], [3.981, 5.75449411958, 239.16259053450], [3.249, 0.58789568678, 619.29035849450], [3.114, 0.02831060137, 221.16340196420], [3.555, 3.12207684735, 1048.33622992530], [3.010, 1.91180343491, 93.53154666300], [3.384, 1.81702854004, 443.86366626340], [3.222, 2.37342117781, 429.51895218280], [3.431, 5.92099840679, 570.74476203920], [3.271, 2.04947945059, 806.72595883600], [3.207, 5.44018976766, 402.21916848780], [3.091, 0.10717557454, 3590.51688744200], [2.951, 1.76365810296, 426.81063919710], [2.958, 0.23653889192, 1354.43315884340], [2.948, 4.59289832104, 426.38574255490], [3.506, 5.43222584214, 84.93352695390], [2.894, 5.69678330542, 1262.38608488870], [3.682, 1.07122313007, 395.57870223900], [2.983, 5.25093816048, 313.47110834980], [3.117, 4.18767239237, 366.79444583570], [2.873, 4.45472312727, 361.37781986430], [3.521, 2.05528981993, 1261.63532536330], [3.496, 1.87950759078, 439.12836384820], [3.012, 0.64439385874, 263.02034806090], [2.849, 1.12491777974, 262.05714021440], [2.910, 2.76192171681, 541.53981451060], [3.322, 6.08893948791, 108.72184851110], [3.181, 1.01419299056, 418.00017116690], [2.793, 0.38781777981, 211.86280683950], [3.091, 2.18216748751, 306.83064210100], [3.748, 3.89145855821, 220.93390730060], [2.982, 1.99831689446, 117.91056905120], [2.793, 1.25466684542, 214.73538403650], [3.512, 1.50965040301, 885.43971066640], [2.716, 0.80710391613, 757.21715453420], [3.137, 2.09889265033, 2751.54759969160], [2.738, 4.89270330923, 464.73122651380], [2.875, 4.28436709414, 4010.00153131720], [3.313, 3.01452486457, 336.83873878170], [2.746, 2.69963506928, 380.38840039090], [3.132, 2.19562786872, 2.96894541660], [3.233, 0.60809684558, 3171.03224356680], [3.034, 0.93246285284, 205.43478891180], [3.006, 5.91067479448, 2.70831298570], [3.643, 5.58302397259, 423.62924545940], [2.625, 1.07042050691, 23.57587323610], [3.495, 0.19887562030, 576.16138801060], [2.590, 0.21252773750, 110.25450532920], [2.704, 6.12908233599, 572.22923474750], [2.568, 0.17571588314, 1056.20053645150], [2.583, 2.96927378731, 384.05992122310], [2.555, 3.96441052072, 430.79097657000], [2.786, 2.54945911818, 195.89060769870], [2.869, 4.82964665921, 710.74673161820], [2.534, 5.31005598763, 427.34895040140], [2.618, 1.22081401503, 36.64856292950], [3.464, 2.32811328200, 285.37238101960], [3.374, 3.34109586766, 162.09337010680], [2.694, 4.64149271687, 140.96517742550], [2.603, 0.99527295832, 92.30770638560], [3.140, 5.40790277580, 328.24071907260], [2.603, 4.31532790880, 561.93429400900], [2.987, 0.82758128867, 45.57665103870], [2.959, 3.35623851523, 273.85360000370], [2.561, 0.54160683162, 107.75864066460], [2.900, 1.20691455948, 462.02291352810], [2.648, 1.90547819027, 88.11492069160], [2.461, 4.68211868869, 2840.41327990860], [2.534, 5.00311256556, 431.26405732200], [2.521, 3.32160472310, 136.06981631590], [2.945, 1.06452531856, 732.69511979410], [2.654, 1.36744710395, 460.53844081980], [3.297, 1.33975572602, 305.60680182360], [2.634, 2.29995533800, 519.39602435610], [2.805, 5.62255444533, 1699.27921650320], [2.439, 5.14733660159, 303.86169668440], [2.434, 3.71460437051, 4216.18707975440], [2.416, 3.76296045457, 77.75054398390], [2.803, 2.55280894914, 505.31194270640], [2.592, 3.32836551071, 110.15813710960], [3.074, 1.71462387764, 256.58812461630], [3.295, 0.81766682522, 705.11765732570], [3.183, 6.15742006608, 109.24311337290], [2.908, 5.38534195293, 315.16802937920], [2.326, 1.42604031905, 131.54696222180], [2.427, 2.04627850740, 124.50285119020], [2.632, 1.41253794767, 211.65456403530], [2.297, 1.38016674676, 425.84743135060], [2.318, 6.27716072818, 317.14262918200], [2.310, 4.86442292404, 3259.89792378380], [2.873, 1.10206537875, 7.86430652620], [2.616, 0.11849676899, 133.10087089930], [3.213, 4.49320461690, 432.22726516850], [2.276, 6.04688191978, 214.10224459010], [2.276, 1.96882478275, 212.49594628590], [2.917, 0.96774661857, 100.38446123290], [2.890, 5.72610904534, 322.02094394910], [2.829, 2.66887892162, 141.48644228730], [2.695, 1.47488571070, 42.53826965290], [2.697, 5.34002228297, 432.01481684740], [2.229, 4.40717937246, 540.73666535850], [2.214, 2.43714413196, 426.85882330690], [2.512, 4.68291916658, 1596.18644228460], [2.202, 5.91122030007, 867.42347575360], [2.856, 0.94736445171, 41.05379694460], [2.396, 0.10516628717, 206.93630796260], [2.345, 1.16685267780, 640.86049416050], [2.263, 4.62327588198, 188.02630117250], [2.214, 3.97566024178, 426.33755844510], [2.274, 4.94055830720, 4002.88798431640], [2.541, 0.83705615200, 12352.85260454480], [2.145, 3.40120044084, 111.16952906590], [2.895, 6.07389082608, 2914.01423582380], [2.520, 1.05396310009, 184.72728735580], [2.448, 3.49820841117, 481.73606947030], [2.343, 2.86472924644, 207.07932031450], [2.964, 5.96264929181, 465.95506679120], [2.122, 4.04560058177, 118.07062774560], [2.452, 4.35251210402, 1382.88734684660], [2.131, 0.61211416273, 335.14181775230], [2.116, 4.76181734842, 765.88461021250], [2.245, 5.67078632283, 6467.92575796160], [2.425, 0.84789834075, 550.13783421970], [2.227, 1.15684015463, 227.31374111850], [2.314, 6.13104971819, 2730.20695868920], [2.344, 0.35844885568, 217.44369702220], [2.529, 3.07975959821, 774.48262992160], [2.523, 1.75026771081, 1578.02719501990], [2.111, 4.24637589094, 96.87299909510], [2.826, 1.01974994073, 87.31177153950], [2.906, 3.75374302356, 428.08266358430], [2.113, 2.19787343926, 449.23210812500], [2.142, 1.19671359858, 209.15449385380], [2.882, 2.59371585952, 39.61750834610], [2.078, 2.87503604503, 14.01464568050], [2.090, 1.99032225653, 441.57604440300], [2.519, 2.99001165551, 745.27768239300], [2.035, 5.37147785849, 1041.22268292450], [2.054, 1.11817372961, 842.90144101350], [2.023, 2.94559148702, 668.20846196530], [2.529, 4.34280159004, 221.89711514710], [2.554, 5.56906955622, 214.19286731530], [2.712, 1.60469055827, 1050.99635880120], [2.350, 3.36541706919, 220.20019411770], [2.015, 2.60446576036, 315.64111013120], [2.158, 1.64945261993, 219.66188291340], [2.120, 2.93968038721, 304.12232911530], [2.357, 1.94433441808, 233.90602325750], [2.579, 4.54124062411, 484.70501488690], [2.046, 5.45531068264, 200.55647414470], [2.040, 2.04492641594, 1097.09427470170], [2.675, 1.20234167733, 28.57180808220], [2.528, 4.69268465973, 637.44960575920], [2.314, 2.81193072994, 25.12978191360], [2.689, 5.03868493349, 1269.49963188950], [2.115, 3.10772296248, 1276.61317889030], [2.712, 1.49710379127, 3340.61242669980], [2.138, 4.52114042624, 378.90392768260], [2.708, 0.01014338204, 389.94962794650], [2.560, 5.75783882561, 544.50875992720], [2.028, 0.24331359951, 146.59425171800], [2.096, 1.44475430956, 864.24208201590], [1.897, 4.63194412388, 220.30076785420], [1.901, 1.78319572727, 192.85222631290], [2.011, 4.11578325523, 315.87060479480], [2.014, 2.26726355818, 198.10879358990], [1.905, 2.15527255015, 326.68681039510], [1.949, 3.95440811214, 103.61403908040], [2.098, 5.24613314798, 175.42669223110], [1.884, 5.66018186202, 1310.39337013970], [1.911, 2.60665446600, 301.41401612960], [2.160, 3.42888079793, 420.00590873700], [2.325, 5.89632178100, 815.06334611420], [1.914, 0.22451332248, 171.65459766240], [1.854, 0.04278915026, 233.74596456310], [1.973, 2.68640259480, 769.81676347560], [1.941, 0.61369890353, 3487.42411322340], [1.836, 3.41496980986, 195.77298761970], [2.554, 2.35660179716, 212.40532356070], [1.822, 4.05510232882, 639.94547042380], [1.883, 6.27079329518, 16.67477455640], [1.865, 0.17460226411, 244.79166482700], [2.097, 4.58369520569, 316.91313451840], [1.879, 2.76480572708, 28.45418800320], [2.111, 2.92457831824, 328.92204262880], [2.077, 0.35943033580, 589.49471013490], [1.825, 4.04945265223, 190.40454575810], [1.895, 3.89414880651, 334.55111692130], [2.425, 3.76754213762, 25558.21217647960], [2.218, 1.85341154236, 635.23141986800], [1.782, 0.86927461254, 92.79783348010], [2.432, 3.78026263567, 1254.52177836250], [2.106, 0.17285594964, 354.26427286350], [1.791, 6.23892012939, 1670.82502850000], [1.996, 1.40940081042, 230.70758317730], [1.753, 1.86660297451, 241.75328344120], [2.093, 2.39366777880, 187.43560034150], [2.007, 3.54083120293, 226.79247625670], [1.949, 1.36533052698, 1385.17496870700], [1.737, 2.67583588366, 6.36278747540], [1.868, 4.24454204649, 1119.18567522950], [1.896, 3.81474515719, 310.97524368520], [1.860, 3.67887919389, 1321.43907040360], [2.305, 3.53252557028, 1570.91364801910], [2.008, 3.88504783546, 638.93407846750], [1.928, 2.64393870433, 525.75881183150], [1.807, 0.76057354967, 66.18357885820], [1.824, 0.85822155861, 639.84910220420], [2.221, 4.82210413830, 1585.89150154610], [2.227, 4.58488941022, 271.61836777000], [1.897, 0.64334758250, 55.65914345610], [1.792, 0.00514800434, 827.92358748650], [1.831, 3.69768852728, 172.45774681450], [1.790, 4.80062977720, 3576.28979344040], [1.698, 0.72475212282, 295.19424100610], [1.744, 3.45256183290, 238.57188970350], [2.334, 1.51845210531, 170.01006625970], [1.669, 4.44620549295, 4319.27985397300], [1.939, 3.43927826945, 102.57150935680], [1.733, 5.96815907422, 837.69726336320], [1.686, 2.12870436615, 491.55792945680], [1.651, 3.20586624475, 281.17959532560], [1.884, 4.24447812450, 13.49338081870], [1.880, 0.33845094634, 214.94362684070], [1.817, 3.07678560214, 220.52451702340], [1.872, 3.79328892492, 392.65794093220], [2.195, 1.93786776664, 259.76951835400], [1.881, 4.49314034712, 199.80571461930], [1.662, 0.29659841675, 314.90739694830], [1.626, 2.29697402942, 3067.93946934820], [1.927, 1.00706624515, 26.82670294300], [1.621, 0.01495920679, 1379.70595310890], [1.655, 4.15494230496, 4326.39340097380], [1.719, 5.97443860990, 152.53214255120], [1.653, 5.65633302949, 448.68959140380], [1.790, 3.73709604091, 10.03430830760], [1.600, 2.28430251221, 749.20983565610], [1.770, 0.03256515992, 364.34676528090], [1.939, 5.93191442558, 249.94765836750], [1.988, 4.78810872536, 101.86893394120], [1.667, 5.52149899431, 229.97386999440], [2.215, 3.55121116323, 594.65070367540], [1.950, 0.80878923373, 1049.08698945070], [1.773, 2.55608046714, 9985.75935677140], [2.088, 2.33165208016, 420.44785172170], [2.107, 2.43624356568, 453.68552624990], [1.907, 4.72569972805, 857.12853501510], [1.609, 4.96540433043, 285.11174858870], [2.152, 4.87024306306, 186.21176006410], [1.685, 5.68609178354, 200.03520928290], [1.752, 5.21532265401, 25448.00585526019], [1.870, 6.14683645342, 347.36317418380], [1.731, 1.95944272122, 934.94851496820], [1.680, 5.56246697700, 170.97327410620], [1.652, 1.24521351050, 398.14400287280], [1.548, 0.38524522125, 17.26547538740], [1.577, 0.23430114545, 434.67494572330], [1.652, 2.84480428863, 385.54439393140], [1.770, 1.15057996280, 199.96577331370], [1.528, 4.02240583348, 236.19364511790], [2.118, 5.47803429266, 369.08206769610], [1.543, 2.54353574089, 632.73555520340], [1.504, 5.94300855424, 280.21638747910], [1.495, 2.19380669867, 407.47573576480], [1.894, 1.88797605501, 598.84348936940], [1.515, 4.70072295492, 211.29335786790], [1.767, 3.11910667879, 2921.12778282460], [1.515, 3.31498374761, 215.30483300810], [1.728, 5.28095966912, 219.51887056150], [1.906, 5.24236020775, 248.46318565920], [1.607, 0.80041605735, 642.34496686880], [1.640, 2.93387205029, 1364.72809958190], [1.585, 0.77219822539, 661.23792731640], [1.458, 5.67666822477, 632.83192342300], [1.866, 4.40562835971, 971.10695080320], [1.838, 0.48492190760, 1127.04998175570], [1.903, 5.18692835916, 2015.67108615980], [1.590, 2.80043208070, 633.74694715970], [1.489, 4.10155671855, 77837.11123384659], [1.573, 4.23741356107, 203.89792657680], [1.690, 0.65475720351, 2700.71514038580], [1.872, 3.54376036064, 354.52490529440], [1.419, 4.53129346734, 224.60542813280], [1.575, 3.52476647615, 373.90799283650], [1.817, 3.95203885550, 6076.89030155420], [1.446, 5.41423319377, 317.87634236490], [1.552, 1.89030720529, 1304.92435454160], [1.394, 1.86243646383, 913.75088631770], [1.940, 4.36562864826, 432.74853003030], [1.655, 1.31748248488, 25668.41849769900], [1.438, 5.12958189872, 71.81265315070], [1.929, 4.90721606846, 206.39799675830], [1.533, 2.10965059985, 378.64329525170], [1.421, 6.22897936063, 904.40210708320], [1.450, 1.98065714692, 205.97310011610], [1.584, 5.94110940455, 1226.21060271120], [1.510, 3.77771207288, 222.70026429920], [1.670, 2.51954641624, 976.73602509570], [1.823, 1.60093991502, 1141.13406340540], [1.564, 3.94804398924, 9566.27471289620], [1.406, 3.65940442223, 316.50374424120], [1.653, 3.62394476466, 968.13800538660], [1.495, 0.77832279170, 5959.57043333400], [1.408, 5.24970924980, 316.27999507200], [1.724, 0.25483952164, 125.18417474640], [1.426, 2.26871672572, 17.40848773930], [1.881, 4.12588105003, 562.14674233010], [1.370, 4.74474866880, 1357.61455258110], [1.485, 2.18712736768, 9889.78012955360], [1.369, 1.31846306523, 1160.83017300510], [1.394, 5.66924517860, 1736.99156101570], [1.375, 0.16983286236, 346.39996633730], [1.525, 2.40244831911, 419.43645976540], [1.359, 2.68668516027, 310.76279536410], [1.396, 3.67055397940, 253.45912050530], [1.454, 5.49356262440, 504.56118318100], [1.813, 0.21882066860, 263.70167161710], [1.330, 3.01736059716, 254.14044406150], [1.498, 0.17578085903, 155.78297225810], [1.509, 5.13129901759, 768.85355562910], [1.550, 1.44225397189, 1894.41906467650], [1.447, 1.44933809994, 893.35640681930], [1.306, 5.76425101758, 714.67888488130], [1.660, 1.34160526151, 322.61164478010], [1.347, 3.00388920953, 843.63515419640], [1.432, 3.43786149731, 251.17149864490], [1.510, 4.39762427873, 25.27279426550], [1.587, 5.17106904014, 141.69889060840], [1.477, 5.47518377610, 226.04171673130], [1.356, 4.24406292182, 332.17287233570], [1.644, 1.74367211793, 67.88049988760], [1.407, 5.79229630947, 188.16931352440], [1.575, 0.09808372057, 702.14871190910], [1.765, 4.93410889383, 201.51968199120], [1.318, 4.91605557404, 17.52610781830], [1.701, 4.47360878108, 384.27236954420], [1.304, 6.04155032791, 25.86349509650], [1.269, 4.91035989349, 354.99798604640], [1.620, 5.54960841244, 260.36021918500], [1.263, 1.16521999431, 255.83736509090], [1.744, 3.70453251764, 147.11551657980], [1.579, 4.31561365365, 2228.97018159780], [1.557, 0.57740217353, 3178.14579056760], [1.302, 0.32055726013, 119.76754877500], [1.405, 3.20407486040, 395.10562148700], [1.234, 2.34766954239, 318.67949151700], [1.519, 4.74629629688, 100.17201291180], [1.573, 4.00132484524, 1264.29545423920], [1.222, 0.10709243166, 1372.59240610810], [1.205, 0.24105241435, 466.75821594330], [1.188, 1.27112537278, 1184.40604624120], [1.280, 4.85454052139, 535.91074021810], [1.482, 4.47166692910, 763.43692965770], [1.233, 1.64803509193, 433.66355376700], [1.476, 3.76634399110, 272.58157561650], [1.199, 1.78020373551, 102.34201469320], [1.186, 4.72162748523, 795.68025857210], [1.291, 4.42697938285, 10220.39909321180], [1.576, 2.40263038916, 348.63519857100], [1.497, 3.44614317326, 3024.22055704320], [1.175, 4.85145058205, 433.75992198660], [1.262, 5.79416346069, 531.97858695500], [1.486, 4.39599352105, 1055.44977692610], [1.351, 0.46461977407, 707.56533788050], [1.230, 5.18147817992, 752.39122939380], [1.175, 4.35535063059, 3892.68166309700], [1.581, 5.49361132323, 419.53282798500], [1.247, 4.22328749428, 113.12708252620], [1.145, 2.26067253357, 199.12018554620], [1.385, 0.89711064123, 6073.70890781650], [1.228, 4.55057016747, 680.05731138130], [1.470, 1.58708185256, 409.18970313670], [1.366, 3.99684537321, 6065.84460129030], [1.131, 1.56474593118, 196.83676920270], [1.163, 5.75528918663, 2303.60876781320], [1.142, 4.35845106342, 1834.61531963620], [1.244, 1.93187654929, 623.22251175760], [1.136, 3.13253323524, 611.44309831080], [1.425, 2.65840274172, 1253.77101883710], [1.114, 3.43048279234, 771.30123618390], [1.314, 0.15326588489, 493.30303459600], [1.109, 2.95808402860, 1091.62525910360], [1.177, 3.88159541809, 128.36556848410], [1.150, 4.69140569690, 1.27202438720], [1.527, 1.09983755253, 683.02625679790], [1.304, 5.24544813643, 5650.29211067820], [1.347, 4.11616699496, 97.46369992610], [1.085, 0.70231952018, 1166.40685767090], [1.224, 4.22994822530, 827.17282796110], [1.142, 5.36157631813, 199.02381732660], [1.373, 0.89371361814, 799.61241183520], [1.085, 1.15969472512, 398.28701522470], [1.098, 3.75659421786, 318.39760722670], [1.136, 1.35127769399, 205.92491600630], [1.108, 6.03201954623, 206.44618086810], [1.146, 0.18236094571, 6386.16862421000], [1.216, 0.49809632153, 1178.98942026980], [1.295, 2.32056477953, 10003.91860403610], [1.082, 1.96611069200, 3700.72320866140], [1.094, 5.12244388591, 314.38613208650], [1.464, 4.54056066665, 1248.14194454460], [1.277, 5.42029902662, 9996.05429750990], [1.248, 0.21625135029, 101.60830151030], [1.055, 5.53725373260, 1578.77795454530], [1.265, 5.85587479852, 82.85835341460], [1.058, 0.73824266822, 670.91677495100], [1.127, 3.63458498010, 582.38116313410], [1.188, 2.10062104535, 423.88987789030], [1.217, 2.49656109071, 311.72600321060], [1.080, 3.96349373526, 118.87377689770], [1.175, 0.91096377814, 740.06929922580], [1.087, 5.46774426742, 494.47869076360], [1.080, 3.49168860514, 847.04604259770], [1.095, 0.97418295319, 1159.29331067010], [1.078, 1.75579678521, 1457.52593306200], [1.087, 4.81206824168, 109.68505635760], [1.293, 0.02397468965, 2723.09341168840], [1.190, 4.49552956868, 429.30650386170], [1.127, 0.84707518843, 48.75804477640], [1.047, 4.58416926615, 89.75945209430], [1.251, 1.16783030789, 455.16999895820], [1.122, 5.72161306640, 78263.70942472259], [1.027, 0.16330222064, 229.76142167330], [1.069, 2.37188773221, 848.53051530600], [1.252, 5.28238896229, 6080.82245481730], [1.181, 5.22299379363, 1459.95656727430], [1.382, 0.51603096285, 774.00954916960], [1.064, 5.95222326171, 1144.31545714310], [1.083, 5.04862249728, 629.86297800640], [1.061, 3.38604454777, 27.08733537390], [1.415, 4.85796248007, 2332.06295581640], [1.082, 4.07686503205, 1245.17299912800], [1.112, 6.07617329506, 870.46185713940], [1.072, 0.73647405514, 1482.79872732750], [1.322, 2.81015928946, 223.33340374560], [1.398, 1.55232715558, 25771.51127191760], [1.065, 3.98884050015, 683.18631549230], [1.008, 5.19594380826, 316.13123722570], [1.197, 0.79148395839, 9580.50180689780], [1.402, 4.82957073563, 883.79517926370], [1.064, 4.65334775068, 201.99276274320], [1.108, 5.88857586823, 657.16276170140], [0.996, 4.99081076034, 426.75824957040], [0.996, 1.60533807224, 426.43813218160], [1.028, 5.92128319450, 108.50940019000], [1.004, 3.54259597860, 754.03576079650], [1.214, 0.81213286478, 1773.91780271860], [1.318, 0.60269176130, 1123.11782849260], [1.327, 4.75885008900, 321.80849562800], [1.014, 5.79119811472, 6460.81221096080], [1.178, 0.47169015111, 495.96316347190], [0.999, 5.95030119388, 3906.90875709860], [1.033, 3.75433174131, 414.81877742920], [1.002, 1.39171012432, 1251.34038462480], [0.990, 1.32621236288, 1268.74887236410], [1.275, 1.95417923977, 757.80785536520], [1.174, 6.04352585298, 225.07850888480], [1.174, 5.43253033568, 849.26422848890], [1.004, 5.33434806968, 46.20979048510], [1.108, 1.28177889943, 294.30046912880], [0.976, 1.83523959034, 5.88970672340], [0.971, 3.38563950019, 306.09692891810], [1.050, 3.88449467091, 632.26247445140], [1.050, 3.26096036982, 159.71512552120], [1.041, 2.36429894351, 821.54375366860], [1.218, 4.61739999906, 990.22940591440], [1.342, 1.55614528399, 498.93210888850], [0.967, 3.84645372731, 604.47256366190], [1.171, 0.42265751679, 10011.03215103690], [0.965, 0.05396772193, 962.50893109410], [1.096, 3.04685199735, 608.40471692500], [1.166, 6.14999706886, 737.31280213030], [0.986, 3.71830385737, 1235.61177157240], [0.953, 0.79704964354, 16.46232623530], [0.976, 1.05304205075, 8.33738727820], [1.142, 1.06057209808, 369.97583957340], [1.060, 4.36236322604, 633.30500417500], [1.138, 4.31859245106, 98.42690777260], [1.006, 5.89037944896, 10007.09999777380], [0.967, 1.56852913547, 157.63995198190], [1.082, 0.99548769517, 4.14460158420], [1.009, 6.15037679495, 401.32539661050], [0.981, 2.37620383333, 35.21227433100], [1.011, 5.42685471402, 110.72758608120], [0.989, 4.11575312649, 413.85556958270], [1.024, 1.90798238649, 1175.80802653210], [1.079, 4.95981991427, 631.82053146670], [0.982, 3.02842195594, 347.41135829360], [0.979, 3.74615289445, 700.45179087970], [0.928, 5.22236951137, 1173.52040467170], [0.912, 4.14451390992, 469.72716135990], [0.938, 1.18273838991, 254.35289238260], [0.977, 1.26684849112, 104.57724692690], [1.134, 5.87478488618, 6058.73105428950], [1.092, 4.51789158271, 532.13864564940], [1.132, 4.55420027150, 1912.57831194120], [0.915, 4.87266214195, 18.91000679010], [0.915, 5.96624579967, 1987.21689815660], [1.039, 2.40020830681, 6475.03930496240], [0.965, 4.98927479154, 394.35486196160], [0.964, 3.60903715900, 3281.23856478620], [0.897, 2.81660605059, 316.23181096220], [1.008, 5.78024010734, 502.86426215160], [1.005, 6.12431717236, 6275.96230299060], [0.895, 6.09245508513, 316.55192835100], [1.224, 1.73535287415, 5120.60114558360], [1.138, 2.92901543353, 1037.29052966140], [0.924, 5.70601816488, 614.83694036960], [0.893, 5.25155704274, 475.35623565240], [1.042, 1.10027795842, 1518.22344997960], [0.890, 4.03192782386, 1314.32552340280], [0.926, 3.35110915055, 635.70450062000], [1.130, 5.49282680494, 92.94084583200], [0.890, 2.12933822393, 3384.33133900480], [0.967, 5.86215202069, 13.33332212430], [1.004, 1.73116475997, 10316.37832042960], [1.226, 3.52834223937, 80.41067285980], [1.029, 4.90620832171, 19.12245511120], [0.996, 0.76740358631, 733.42883297700], [0.910, 4.08904906301, 3333.49887969900], [1.235, 1.23871819142, 357.23321828010], [1.218, 0.18349810348, 1090.40141882620], [0.864, 4.71917415767, 620.25356634100], [0.935, 1.45887009044, 1042.91960395390], [0.866, 4.04792682992, 522.52923398400], [1.158, 5.43322209110, 1089.12939443900], [0.860, 0.49220052417, 64.95973858080], [1.190, 5.58965369650, 2810.92146160520], [0.957, 3.12914047010, 628.59095361920], [0.861, 5.69790389801, 103.84353374400], [1.037, 5.91424823262, 11.30633269480], [0.918, 0.21424702155, 373.01422095920], [0.836, 3.02501867546, 387.24131496080], [1.158, 3.33343863758, 6290.18939699220], [0.856, 0.81593288669, 907.37105249980], [1.036, 3.11936047271, 5429.87946823940], [0.853, 6.23618175592, 938.88066823130], [0.982, 3.39082880963, 521.61421024730], [0.851, 5.14029961564, 802.79380557290], [0.828, 0.28399876908, 338.48327018440], [0.868, 1.89151676387, 627.15466502070], [0.878, 2.67671626912, 688.65533109040], [0.921, 0.18441593712, 3803.81598288000], [0.821, 0.74694467095, 1152.17976366930], [0.841, 2.42616504698, 625.88264063350], [0.862, 3.35273419872, 425.32616648880], [0.887, 3.46938383985, 1748.78802080500], [0.815, 5.95428642326, 321.05773610260], [0.958, 1.35525670354, 1201.83158032300], [0.905, 5.43093361027, 236.87496867410], [0.862, 3.24167644516, 427.87021526320], [0.793, 5.01131700831, 109.99387289830], [0.791, 2.21809404489, 110.41876954050], [0.842, 5.04957483651, 444.12429869430], [0.887, 4.23752031714, 3553.91152213780], [0.851, 4.64229745145, 4105.98075853500], [1.067, 4.69271921916, 559.69906177530], [0.966, 4.55013458162, 9360.08916445900], [0.977, 1.50925667031, 186.47239249500], [1.092, 0.58153747940, 203.26478713040], [0.997, 0.24589891452, 439.93151300030], [0.786, 3.84829878956, 194.38908864790], [0.774, 3.76050639310, 219.14061805160], [0.845, 4.21602090805, 2648.45482547300], [0.962, 0.30590569897, 229.34073054800], [0.763, 0.05577842075, 846.13101886100], [0.839, 5.68124142701, 2620.00063746980], [0.818, 2.52609626540, 26301.20223701220], [0.929, 0.71906225883, 740.28174754690], [0.895, 5.83218231202, 4539.69249641180], [0.939, 3.68460642343, 817.77165909990], [0.755, 4.90024080821, 532.87235883230], [0.784, 1.14096100609, 551.03160609700], [0.899, 1.85252071775, 835.78789401270], [0.753, 0.04254534997, 1534.73816584160], [1.033, 1.00137993270, 134.11226285560], [0.851, 6.12272864540, 1475.68518032670], [0.797, 5.14322789256, 473.65931462300], [0.729, 4.94931618796, 476.10699517780], [0.852, 3.11058720799, 232.42155054920], [0.783, 4.50805467439, 1151.42900414390], [0.751, 0.92289775523, 1884.12412393800], [0.832, 4.19686348297, 29.20494752860], [0.720, 0.40961041030, 522.62560220360], [0.722, 3.96121088528, 1474.93442080130], [0.788, 0.99170388242, 121.84272231430], [0.722, 4.16734185316, 232.20910222810], [0.970, 2.32204039048, 566.60016045500], [0.814, 5.19337022083, 948.21240112330], [0.724, 2.30837674225, 949.12742486000], [0.770, 5.89605163084, 156.67674413540], [0.705, 5.40102118863, 1193.96727379680], [0.809, 3.56474059969, 845.33207522580], [0.755, 3.94580797273, 451.72797278960], [0.731, 6.11847213487, 1239.54392483550], [0.747, 1.40599730465, 782.34693644780], [0.861, 1.84312374221, 984.60033162190], [0.695, 4.78088165969, 10419.47109464820], [0.804, 1.07998437400, 89.00869256890], [0.828, 5.86080569334, 845.11962690470], [0.692, 3.38736418117, 6489.26139842860], [0.694, 3.07863807714, 316.60431797770], [0.690, 5.86681311380, 316.17942133550], [0.714, 5.38707933404, 567.82400073240], [0.767, 0.12081849650, 485.88067105450], [0.820, 1.87877245664, 499.89531673500], [0.705, 0.57839934869, 1053.75285589670], [0.684, 4.88442270630, 2545.36205125440], [0.689, 6.14296395253, 622.48879857470], [0.823, 3.50224755884, 877.57540414020], [0.827, 2.59300433753, 232.94281541100], [0.735, 3.05650026582, 66.91729204110], ], # R1 [ [6182981.282, 0.25843515034, 213.29909543800], [506577.574, 0.71114650941, 206.18554843720], [341394.136, 5.79635773960, 426.59819087600], [188491.375, 0.47215719444, 220.41264243880], [186261.540, 3.14159265359, 0.00000000000], [143891.176, 1.40744864239, 7.11354700080], [49621.111, 6.01744469580, 103.09277421860], [20928.189, 5.09245654470, 639.89728631400], [19952.612, 1.17560125007, 419.48464387520], [18839.639, 1.60819563173, 110.20632121940], [12892.827, 5.94330258435, 433.71173787680], [13876.565, 0.75886204364, 199.07200143640], [5396.699, 1.28852405908, 14.22709400160], [4869.308, 0.86793894213, 323.50541665740], [4247.455, 0.39299384543, 227.52618943960], [3252.084, 1.25853470491, 95.97922721780], [2856.006, 2.16731405366, 735.87651353180], [2909.411, 4.60679154788, 202.25339517410], [3081.408, 3.43662557418, 522.57741809380], [1987.689, 2.45054204795, 412.37109687440], [1941.309, 6.02393385142, 209.36694217490], [1581.446, 1.29191789712, 210.11770170030], [1339.511, 4.30801821806, 853.19638175200], [1315.590, 1.25296446023, 117.31986822020], [1203.085, 1.86654673794, 316.39186965660], [1091.088, 0.07527246854, 216.48048917570], [954.403, 5.15173410519, 647.01083331480], [966.012, 0.47991379141, 632.78373931320], [881.827, 1.88471724478, 1052.26838318840], [874.215, 1.40224683864, 224.34479570190], [897.512, 0.98343776092, 529.69096509460], [784.866, 3.06377517461, 838.96928775040], [739.892, 1.38225356694, 625.67019231240], [612.961, 3.03307306767, 63.73589830340], [658.210, 4.14362930980, 309.27832265580], [649.600, 1.72489486160, 742.99006053260], [599.236, 2.54924174765, 217.23124870110], [502.886, 2.12958819475, 3.93215326310], [413.017, 4.59334402271, 415.55249061210], [356.117, 2.30312127651, 728.76296653100], [344.777, 5.88787577835, 440.82528487760], [395.004, 0.53349091102, 956.28915597060], [335.526, 1.61614647174, 1368.66025284500], [362.772, 4.70691652867, 302.16477565500], [321.611, 0.97931764923, 3.18139373770], [277.783, 0.26007031431, 195.13984817330], [291.173, 2.83129427918, 1155.36115740700], [264.971, 2.42670902733, 88.86568021700], [264.864, 5.82860588985, 149.56319713460], [316.777, 3.58395655749, 515.46387109300], [294.324, 2.81632778983, 11.04570026390], [244.864, 1.04493438899, 942.06206196900], [215.368, 3.56535574833, 490.33408917940], [264.047, 1.28547685567, 1059.38193018920], [246.245, 0.90730313861, 191.95845443560], [222.077, 5.13193212050, 269.92144674060], [194.973, 4.56665009915, 846.08283475120], [182.802, 2.67913220473, 127.47179660680], [181.645, 4.93431600689, 74.78159856730], [174.651, 3.44560172182, 137.03302416240], [165.515, 5.99775895715, 536.80451209540], [154.809, 1.19720845085, 265.98929347750], [169.743, 4.63464467495, 284.14854074220], [151.526, 0.52928231044, 330.61896365820], [152.461, 5.43886711695, 422.66603761290], [157.687, 2.99559914619, 340.77089204480], [140.630, 2.02069760726, 1045.15483618760], [139.834, 1.35282959390, 1685.05212250160], [140.977, 1.27099900689, 203.00415469950], [136.013, 5.01678984678, 351.81659230870], [153.391, 0.26968607873, 1272.68102562720], [129.476, 1.14344730612, 21.34064100240], [127.831, 2.53876158952, 1471.75302706360], [126.538, 3.00310970076, 277.03499374140], [100.277, 3.61360169153, 1066.49547719000], [103.169, 0.38175114761, 203.73786788240], [107.527, 4.31870663477, 210.85141488320], [95.934, 0.79463744168, 1258.45393162560], [82.663, 0.28181414606, 234.63973644040], [97.986, 2.56085956186, 191.20769491020], [97.389, 3.26245865063, 831.85574074960], [72.227, 4.37984630380, 860.30992875280], [70.639, 0.73191513920, 437.64389113990], [70.447, 0.87698401733, 423.41679713830], [72.057, 5.58013290518, 429.77958461370], [73.332, 0.62505906432, 1375.77379984580], [66.433, 2.68414462465, 405.25754987360], [63.812, 1.75051498180, 1361.54670584420], [61.601, 1.09332288242, 2001.44399215820], [67.006, 0.06872766216, 408.43894361130], [68.945, 2.47127505057, 949.17560896980], [60.456, 2.25094790113, 1788.14489672020], [67.074, 5.45365870159, 200.76892246580], [65.579, 0.05539079332, 1589.07289528380], [49.320, 4.17243429807, 138.51749687070], [50.648, 6.26867505289, 223.59403617650], [55.166, 4.59491533823, 628.85158605010], [47.916, 0.83929741626, 10.29494073850], [46.691, 2.17322569098, 312.19908396260], [54.179, 0.28360076018, 124.43341522100], [49.511, 3.79960349195, 215.74677599280], [40.136, 5.18161452756, 1478.86657406440], [39.302, 0.56257369109, 1574.84580128220], [34.962, 4.68487505703, 38.13303563780], [42.770, 2.98582069454, 1148.24761040620], [36.521, 0.63453270366, 52.69019803950], [39.752, 0.28412706854, 131.40394986990], [31.777, 5.19036499973, 76.26607127560], [33.041, 1.97964846430, 142.44965013380], [42.053, 4.83017951800, 288.08069400530], [30.757, 1.47903923433, 1677.93857550080], [42.829, 3.38225543528, 208.63322899200], [29.245, 5.09869866956, 654.12438031560], [29.165, 4.95664881649, 1795.25844372100], [29.136, 2.74747553685, 404.50679034820], [32.689, 6.12099521344, 145.63104387150], [28.008, 0.83185907283, 2317.83586181480], [27.725, 2.24364073545, 430.53034413910], [29.939, 1.96415498448, 2104.53676637680], [32.982, 3.28236160491, 222.86032299360], [31.772, 6.02453027348, 1905.46476494040], [26.959, 5.24308283338, 388.46515523820], [26.514, 0.99638302878, 107.02492748170], [25.421, 2.87336642463, 703.63318461740], [24.908, 1.07713811775, 99.91138048090], [24.955, 6.23974037842, 106.27416795630], [24.894, 0.81040976807, 312.45971639350], [24.340, 0.54867402916, 214.26230328450], [28.441, 0.82630052794, 1692.16566950240], [23.219, 5.07995629354, 479.28838891550], [24.362, 3.10643455533, 212.33588759150], [21.951, 6.06688237952, 85.82729883120], [22.046, 3.89863665506, 563.63121503840], [22.596, 4.86725457223, 295.05122865420], [21.256, 5.10797617452, 333.65734504400], [25.985, 2.20813879137, 1265.56747862640], [20.904, 3.28855303434, 70.84944530420], [21.505, 3.79541155976, 347.88443904560], [22.067, 4.22716352578, 217.96496188400], [20.629, 1.68732248608, 231.45834270270], [21.429, 3.08914428467, 554.06998748280], [21.310, 0.38868340861, 319.57326339430], [20.521, 2.45651851283, 18.15924726470], [26.055, 4.27554951169, 483.22054217860], [20.703, 5.12057936320, 362.86229257260], [22.047, 5.51249354809, 343.21857259960], [19.443, 2.02441679295, 313.21047591890], [20.163, 5.08481373110, 750.10360753340], [20.125, 3.42997916125, 213.34727954780], [24.196, 0.64787472796, 207.88246946660], [21.977, 0.72894956852, 99.16062095550], [21.120, 2.69286728009, 1464.63948006280], [17.192, 4.71525117969, 2111.65031337760], [18.540, 0.04817255506, 245.54242435240], [17.521, 3.83662880684, 497.44763618020], [16.107, 4.22374822303, 565.11568774670], [21.607, 4.16647257628, 2.44768055480], [15.979, 0.27376396113, 225.82926841020], [16.831, 1.41134653939, 114.13847448250], [15.626, 2.82768623405, 81.75213321620], [15.499, 1.20606390539, 1994.33044515740], [15.168, 3.84591816174, 1162.47470440780], [16.436, 3.04752365976, 134.58534360760], [15.870, 0.33026420429, 1891.23767093880], [20.370, 0.23170286692, 213.25091132820], [16.291, 1.70643197929, 2420.92863603340], [16.280, 4.94159427320, 357.44566660120], [18.076, 5.69515344123, 56.62235130260], [13.724, 0.57240190030, 2634.22773147140], [17.355, 3.55311137444, 218.92816973050], [13.740, 5.70545527289, 92.04707395470], [15.328, 1.31338692850, 216.21985674480], [12.538, 5.19222019427, 635.96513305090], [12.815, 1.60151130870, 320.32402291970], [13.043, 0.45068441373, 1169.58825140860], [11.984, 5.94916123570, 543.91805909620], [11.753, 2.80279347133, 217.49188113200], [14.746, 5.56520105813, 344.70304530790], [12.762, 1.63557330778, 273.10284047830], [11.855, 2.46234840263, 721.64941953020], [13.309, 5.75641013916, 2221.85663459700], [14.471, 0.45316163629, 2008.55753915900], [11.840, 1.75720772380, 160.60889739850], [12.374, 1.01456317602, 329.72519178090], [10.747, 1.58065203003, 212.77783057620], [12.758, 1.91952373240, 1581.95934828300], [11.944, 4.44720922423, 32.24332891440], [11.865, 5.10696147162, 4.66586644600], [11.861, 4.30847607078, 618.55664531160], [10.036, 0.48709852137, 305.34616939270], [12.777, 3.74412991331, 508.35032409220], [10.677, 0.76645916273, 218.71572140940], [11.351, 3.00009819697, 198.32124191100], [10.249, 2.40923650192, 546.95644048200], [9.984, 2.63882014753, 416.30325013750], [9.345, 5.45917317860, 414.06801790380], [9.317, 4.46380159546, 2428.04218303420], [9.928, 4.04821559448, 62.25142559510], [12.767, 3.43273835457, 258.87574647670], [9.733, 1.61066324680, 327.43756992050], [11.163, 2.40665325234, 1781.03134971940], [10.608, 2.07480020830, 213.82036029980], [9.125, 2.92369523159, 1279.79457262800], [9.525, 1.10338403136, 113.38771495710], [9.805, 3.28427768485, 275.55052103310], [11.263, 1.89402915826, 561.18353448360], [8.572, 2.17858055966, 425.11371816770], [8.577, 1.95484887975, 35.42472265210], [10.157, 0.09037368733, 182.27960680100], [11.807, 3.71278037583, 350.33211960040], [8.595, 1.83382454431, 629.60234557550], [8.396, 3.76782674303, 251.43213107580], [8.460, 0.35676476459, 617.80588578620], [8.250, 5.31140994372, 65.22037101170], [8.342, 1.38307663880, 1.48447270830], [7.987, 5.13622898170, 22.09140052780], [8.377, 0.91817077859, 1485.98012106520], [7.980, 0.94199750915, 2310.72231481400], [8.898, 0.54037636841, 168.05251279940], [8.233, 3.45785310349, 424.15051032120], [8.034, 3.38451795597, 144.14657116320], [7.871, 5.14041888473, 358.93013930950], [8.868, 6.13541788772, 621.73803904930], [7.523, 5.75475671698, 447.93883187840], [7.515, 2.18967849979, 264.50482076920], [8.083, 1.42661116937, 2737.32050569000], [8.199, 0.96419579079, 767.36908292080], [8.232, 0.35471613534, 278.51946644970], [8.226, 5.44467204721, 254.94359321360], [6.779, 1.19567671732, 5.41662597140], [8.928, 4.88240256153, 120.35824960600], [7.845, 4.56376829397, 280.96714700450], [6.566, 3.50152072308, 9.56122755560], [6.398, 0.33471834269, 2950.61960112800], [6.881, 3.39438820076, 98.89998852460], [7.418, 4.52451404934, 5.62907429250], [8.021, 0.94470052446, 636.71589257630], [6.134, 0.18013315689, 2207.62954059540], [7.153, 3.85218295688, 214.04985496340], [6.046, 4.66733263196, 543.02428721890], [6.365, 2.12000811873, 274.06604832480], [6.481, 5.31032923608, 6076.89030155420], [5.935, 6.16808119163, 650.94298657790], [5.752, 3.55773840903, 1073.60902419080], [6.438, 0.44934410249, 10007.09999777380], [6.283, 3.20942251433, 219.44943459230], [5.542, 3.61193204407, 125.98732389850], [5.522, 3.84217355164, 181.05576652360], [5.777, 3.00590926498, 121.25202148330], [6.670, 1.65236689367, 1898.35121793960], [7.591, 0.10483002359, 2324.94940881560], [5.881, 1.04006410206, 9992.87290377220], [5.609, 4.83142709229, 643.07868005170], [5.569, 2.23863483508, 1038.04128918680], [5.755, 5.91598458372, 6062.66320755260], [5.845, 6.10234689502, 209.10630974400], [5.577, 0.81426649853, 472.17484191470], [5.247, 0.56496127013, 192.69216761850], [5.493, 5.81071309534, 237.67811782620], [5.148, 4.85160826999, 267.47376618580], [6.122, 2.11480301005, 2097.42321937600], [6.188, 4.59441762166, 207.67002114550], [6.303, 0.75806431119, 210.37833413120], [5.102, 4.01017179605, 205.22234059070], [6.583, 1.79054357427, 12.53017297220], [4.902, 0.85099521860, 247.23934538180], [4.918, 4.03512681632, 487.36514376280], [5.818, 5.48495503489, 2538.24850425360], [4.855, 4.18197778083, 2744.43405269080], [4.885, 0.25103933716, 129.91947716160], [5.748, 0.55968589618, 116.42609634290], [4.901, 4.48628916012, 291.26208774300], [4.720, 5.57686152365, 342.25536475310], [5.962, 5.12885837444, 692.58748435350], [5.629, 4.39847572369, 196.62432088160], [5.596, 0.94874135403, 1802.37199072180], [6.197, 3.80364010966, 339.28641933650], [4.668, 3.16816375033, 148.07872442630], [4.891, 2.67234862638, 417.03696332040], [4.959, 1.63453587065, 166.82867252200], [4.408, 4.95179678525, 184.09414790940], [4.449, 5.69134789394, 252.65597135320], [4.943, 0.85358212806, 46.47042291600], [5.153, 3.82176885491, 842.15068148810], [5.930, 5.95484153666, 486.40193591630], [4.206, 2.97664198894, 380.12776796000], [4.467, 0.24914978400, 128.95626931510], [5.419, 6.19106890918, 337.73251065900], [4.499, 4.71434958315, 151.04766984290], [4.233, 4.18702525973, 685.47393735270], [4.695, 1.54881559549, 214.78356814630], [4.084, 4.87173226400, 14.97785352700], [4.321, 5.42615168860, 436.89313161450], [5.145, 0.49931857511, 248.72381809010], [3.897, 0.74661138504, 2627.11418447060], [3.995, 3.07750371135, 710.74673161820], [4.089, 5.81996977038, 491.81856188770], [4.532, 3.67494714028, 189.72322220190], [3.690, 1.26565281569, 211.81462272970], [4.036, 1.15473702593, 3053.71237534660], [3.672, 4.52661018437, 488.84961647110], [3.662, 2.87243745783, 411.62033734900], [3.653, 3.06205147988, 409.92341631960], [3.908, 3.45947158106, 220.46082654860], [4.989, 3.36376245705, 824.74219374880], [3.677, 3.55713278092, 244.31858407500], [3.580, 1.57825591891, 643.82943957710], [3.546, 2.19846245030, 135.33610313300], [3.560, 4.51362022045, 601.76425067620], [3.843, 0.98567531677, 271.40591944890], [3.559, 1.11005765159, 6283.07584999140], [4.266, 6.19696005871, 268.43697403230], [3.442, 4.27628882392, 867.42347575360], [4.844, 3.73706907228, 235.39049596580], [3.659, 2.21859531609, 2.92076130680], [3.958, 5.17084570945, 114.39910691340], [3.609, 5.54387488088, 458.84151979040], [4.470, 3.74256930900, 699.70103135430], [3.293, 4.48068043469, 289.56516671360], [3.240, 5.94728881707, 131.54696222180], [3.477, 3.54553285172, 963.40270297140], [3.838, 4.77967877681, 175.16605980020], [3.223, 1.95410765469, 212.02707105080], [4.053, 4.19011281964, 501.37978944330], [3.100, 2.11956558345, 916.93228005540], [3.183, 1.93201605379, 1354.43315884340], [3.301, 1.80825506815, 756.32338265690], [4.187, 5.96622666047, 212.54833591260], [3.716, 3.70660462807, 204.70107572890], [3.000, 6.15443664698, 3267.01147078460], [2.993, 4.20888489881, 533.62311835770], [4.125, 6.09715151219, 2641.34127847220], [3.145, 2.55483540896, 905.88657979150], [2.982, 1.52760656472, 945.99421523210], [3.015, 1.76012152992, 28.31117565130], [3.453, 1.42473508236, 2214.74308759620], [2.926, 5.50138147476, 24.37902238820], [2.978, 4.27440059910, 195.89060769870], [3.526, 3.63935401565, 229.97386999440], [2.860, 4.52551886503, 241.61027108930], [3.059, 5.68165832697, 282.66406803390], [3.415, 5.26311934884, 67.66805156650], [2.819, 5.42053027567, 305.08553696180], [3.503, 1.31670335802, 69.15252427480], [2.746, 0.82597971627, 444.75743814070], [2.796, 0.07021047160, 681.54178408960], [3.366, 4.03843228994, 6.15033915430], [3.242, 2.63461047831, 739.80866679490], [2.718, 3.40899287465, 188.92007304980], [2.741, 3.22092213412, 776.93031047640], [2.793, 3.39766347322, 431.26405732200], [2.966, 3.91429372950, 526.50957135690], [2.693, 3.38996413068, 778.41478318470], [2.680, 3.82192393959, 3060.82592234740], [2.954, 2.69669880207, 426.64637498580], [2.681, 1.04615621583, 28.45418800320], [3.182, 2.72333374876, 432.22726516850], [2.633, 2.55029306465, 10213.28554621100], [2.923, 0.85695094024, 2435.15573003500], [2.596, 5.42890752137, 207.14875628370], [3.225, 0.96538615730, 2118.76386037840], [2.774, 0.33260844270, 326.68681039510], [2.550, 5.88893697427, 439.12836384820], [2.716, 3.15505406487, 170.76082578510], [2.942, 4.88555233562, 397.39324334740], [3.121, 1.87815629157, 2413.81508903260], [3.263, 2.59868619716, 213.03846300710], [2.518, 0.15471130491, 945.24345570670], [3.169, 5.70993651497, 381.35160823740], [2.515, 0.06248441393, 427.56139872250], [3.279, 4.95751323467, 313.94418910180], [2.595, 5.13169797457, 299.12639426920], [2.572, 3.42558391509, 4.19278569400], [2.580, 2.03280916494, 319.31263096340], [3.294, 6.24566168486, 421.18156490460], [2.580, 2.62721090534, 213.18722085340], [2.879, 0.45679876898, 285.63301345050], [2.406, 4.57473098758, 228.27694896500], [2.518, 2.55500085830, 140.00196957900], [2.422, 2.36310658303, 84.34282612290], [2.374, 2.25544718932, 17.26547538740], [2.627, 1.26370339212, 724.83081326790], [2.346, 3.77641630157, 206.23373254700], [2.463, 5.42094278240, 395.57870223900], [2.352, 0.63041319237, 210.59078245230], [3.166, 0.26273580642, 201.51968199120], [2.405, 0.78919759458, 426.07692601420], [2.390, 5.89523812458, 738.79727483860], [2.515, 0.70044371265, 2943.50605412720], [2.332, 4.06963624306, 519.39602435610], [3.132, 2.79331632190, 732.69511979410], [2.658, 3.34020209714, 1141.13406340540], [2.258, 0.12403309730, 2524.02141025200], [2.697, 2.58404587754, 425.63498302950], [2.416, 3.85003724506, 696.51963761660], [2.597, 2.54164936697, 436.15941843160], [2.192, 3.07202313269, 203.26478713040], [2.424, 2.60715310452, 511.53171782990], [2.126, 0.14811901148, 405.99126305650], [2.306, 1.25068142377, 427.11945573780], [2.121, 0.43505808954, 184.98791978670], [2.755, 3.02380019321, 468.24268865160], [2.333, 3.02634928771, 216.00740842370], [2.182, 4.27912012069, 7.16173111060], [2.101, 4.31781498012, 572.22923474750], [2.362, 4.82914341110, 556.51766803760], [2.218, 0.82936075453, 3370.10424500320], [2.103, 5.25950154713, 661.23792731640], [2.580, 1.03705340380, 213.41097002260], [2.366, 6.14368355608, 205.43478891180], [2.042, 0.21462094901, 3259.89792378380], [2.547, 4.69969204009, 221.37585028530], [1.987, 3.22670561632, 1382.88734684660], [2.213, 0.89932827487, 286.59622129700], [2.191, 0.08759174058, 259.76951835400], [1.968, 0.57824086026, 180.16199464630], [2.037, 2.35713099759, 610.69233878540], [1.959, 2.18553775379, 72.07328558160], [2.061, 1.68041202479, 1670.82502850000], [1.940, 0.62951066481, 406.95447090300], [2.043, 4.39130144045, 576.16138801060], [1.936, 1.05286934530, 1262.38608488870], [1.975, 0.31945835160, 938.12990870590], [2.015, 1.66410213484, 193.65537546500], [1.971, 0.72639439054, 200.55647414470], [1.952, 6.25320630177, 241.75328344120], [1.976, 1.31263772699, 135.54855145410], [2.448, 0.52850194172, 429.51895218280], [1.977, 3.13944703383, 421.93232443000], [1.853, 0.17184530353, 196.03362005060], [2.552, 5.39764879348, 2854.64037391020], [1.830, 1.47821899466, 638.41281360570], [2.245, 6.00427164270, 230.70758317730], [1.822, 6.08626100417, 1261.63532536330], [2.168, 0.41741136149, 213.51154375910], [1.869, 3.67791368036, 403.02231763990], [1.866, 1.59662677545, 391.17346822390], [2.034, 1.21814866092, 3046.59882834580], [1.929, 4.93193335031, 420.96911658350], [1.746, 5.09757251683, 107.75864066460], [2.168, 3.24685294764, 213.08664711690], [2.178, 5.09777299346, 558.00214074590], [1.992, 2.29524873043, 1773.91780271860], [1.761, 2.88655624670, 141.69889060840], [1.769, 5.47051542758, 206.13736432740], [1.734, 2.11941015901, 430.79097657000], [2.377, 1.07633521570, 59.80374504030], [1.797, 2.90984583978, 92.79783348010], [1.725, 5.22827286197, 757.21715453420], [2.305, 5.88235807192, 426.55000676620], [1.751, 5.28990803470, 87.31177153950], [2.202, 1.28096946505, 624.91943278700], [2.043, 0.46193065602, 831.10498122420], [1.931, 1.26974971942, 219.89137757700], [1.953, 2.96900002385, 398.14400287280], [1.676, 4.81683149512, 181.80652604900], [1.902, 2.74426125465, 4952.06359328620], [2.133, 5.37177705284, 627.36711334180], [1.962, 3.52111949662, 213.45915413240], [1.709, 6.14073761844, 952.35700270750], [1.784, 1.05243716682, 353.30106501700], [1.700, 1.17418864170, 739.05790726950], [1.609, 1.35009554392, 84.93352695390], [2.038, 2.47570829812, 26.82670294300], [1.870, 5.61729116529, 2957.73314812880], [1.962, 0.13564680851, 213.13903674360], [2.041, 3.31354526279, 1596.18644228460], [1.612, 6.19495100885, 432.01481684740], [1.742, 2.87947098602, 179.35884549420], [1.964, 2.84253666387, 429.04587143080], [1.805, 0.60932632638, 532.61172640140], [1.647, 0.82347900016, 214.57111982520], [1.893, 4.33962647901, 173.94221952280], [1.689, 1.13037158144, 586.31331639720], [1.523, 2.71561930244, 73.29712585900], [1.524, 5.26558677448, 5429.87946823940], [1.582, 2.79533721474, 842.90144101350], [1.608, 2.33230359324, 418.52143602870], [1.579, 1.15182102801, 731.94436026870], [1.689, 1.91915438546, 630.33605875840], [1.990, 5.23790221176, 550.13783421970], [1.772, 2.95372411478, 172.24529849340], [1.596, 0.99004701777, 953.10776223290], [1.784, 3.91391032360, 159.12442469020], [1.592, 2.99690086808, 45.57665103870], [1.968, 0.23073879009, 220.36445832900], [1.549, 5.88699595922, 60.55450456570], [1.459, 5.51999778036, 273.85360000370], [1.909, 2.78415262815, 418.00017116690], [1.445, 3.25530914937, 453.42489381900], [1.454, 0.16250693313, 115.62294719080], [1.566, 2.24077018103, 1056.20053645150], [1.412, 3.45442909885, 354.99798604640], [1.564, 3.38591337689, 409.18970313670], [1.631, 1.06286709889, 213.55972786890], [1.415, 1.32091877590, 373.90799283650], [1.389, 0.40584159469, 9360.08916445900], [1.663, 2.33357114562, 188.02630117250], [1.426, 5.44677783737, 864.24208201590], [1.716, 3.96056093028, 1699.27921650320], [1.682, 0.39747670320, 17.40848773930], [1.368, 5.83289186692, 569.04784100980], [1.416, 3.65464640816, 6.85291456990], [1.469, 3.49069193830, 934.94851496820], [1.330, 4.41794310534, 3914.02230409940], [1.309, 1.29979865382, 428.08266358430], [1.300, 1.57748627871, 238.57188970350], [1.389, 1.31202796503, 6275.96230299060], [1.384, 0.67585082323, 2751.54759969160], [1.471, 1.21149871903, 2531.13495725280], [1.334, 4.11154515525, 206.93630796260], [1.601, 0.93356520728, 355.74874557180], [1.259, 2.56678207309, 850.01498801430], [1.277, 0.41764451386, 100.64509366380], [1.436, 4.06045514506, 177.87437278590], [1.308, 1.01324076289, 423.67742956920], [1.541, 6.03020449918, 292.01284726840], [1.307, 5.83815678434, 5863.59120611620], [1.613, 2.45074803642, 1049.08698945070], [1.249, 3.01518429832, 464.73122651380], [1.250, 6.23516728885, 823.99143422340], [1.275, 2.68217384213, 637.44960575920], [1.249, 2.97028182853, 51749.20809227239], [1.240, 2.66940683813, 2700.71514038580], [1.456, 1.85558224828, 96.87299909510], [1.491, 4.98649587341, 295.19424100610], [1.230, 4.27283851216, 12139.55350910680], [1.292, 2.73196017809, 10206.17199921020], [1.247, 3.77399749791, 504.56118318100], [1.408, 1.02955773079, 518.38463239980], [1.223, 1.12202093840, 221.16340196420], [1.420, 4.39795293289, 606.76018552230], [1.190, 1.57292553631, 820.05928096030], [1.247, 0.99102599652, 9793.80090233580], [1.234, 1.10826361423, 2303.60876781320], [1.186, 4.55984967028, 9808.53818466140], [1.346, 4.94456950019, 384.05992122310], [1.514, 3.60392291730, 2015.67108615980], [1.432, 2.28704432909, 525.49817940060], [1.129, 0.87100340620, 162.09337010680], [1.196, 5.13485214850, 227.31374111850], [1.339, 2.48923887712, 206.70681329900], [1.421, 1.65379789078, 857.12853501510], [1.162, 1.92099315083, 220.93390730060], [1.277, 4.85435999187, 54.17467074780], [1.153, 5.33028034679, 233.90602325750], [1.214, 4.11324721963, 3377.21779200400], [1.109, 5.68915582674, 162.89651925890], [1.068, 4.85383480876, 611.44309831080], [1.119, 1.40805686363, 1987.21689815660], [1.085, 0.64208148190, 731.68372783780], [1.435, 3.20880139888, 835.78789401270], [1.184, 2.99776919968, 199.28444975750], [1.281, 3.12245339510, 427.34895040140], [1.058, 5.17851282929, 306.09692891810], [1.152, 4.39244449554, 199.96577331370], [1.036, 3.68027119804, 597.35901666110], [1.055, 3.25561743426, 394.35486196160], [1.127, 4.33255371960, 552.58551477450], [1.213, 6.21447612110, 42.53826965290], [1.117, 3.74367882111, 214.19286731530], [1.023, 3.84199833949, 894.84087952760], [1.042, 5.30120078590, 450.97721326420], [1.290, 3.96221234564, 318.83955021140], [1.073, 4.10012122884, 188.16931352440], [1.204, 0.37702365750, 393.46109008430], [1.214, 2.01826978554, 401.32539661050], [1.018, 0.02946649279, 2840.41327990860], [1.237, 5.41088851225, 425.84743135060], [1.187, 5.16511890602, 838.21852822500], [1.276, 2.93572146232, 1457.52593306200], [0.994, 3.40079885702, 211.60217440860], [1.042, 2.42209320898, 361.37781986430], [1.093, 3.66289018246, 226.63241756230], [0.978, 3.76334208607, 5856.47765911540], [1.263, 2.09195268609, 78.71375183040], [1.009, 5.85963705048, 1268.74887236410], [1.148, 4.39543895068, 570.74476203920], [1.051, 3.27272240682, 153.49535039770], [0.975, 3.42924642244, 105.54045477340], [0.997, 4.30943991893, 212.40532356070], [0.954, 3.88548755058, 171.65459766240], [0.960, 1.90180005280, 1159.29331067010], [0.953, 3.40787141587, 244.79166482700], [0.969, 1.93369993197, 525.75881183150], [0.918, 1.73738789723, 223.33340374560], [1.164, 5.05392864346, 263.70167161710], [0.951, 4.23581224839, 92.94084583200], [1.160, 5.80630916592, 460.53844081980], [1.186, 4.46262000755, 465.95506679120], [0.931, 2.09868057209, 205.66428357540], [0.942, 3.86810837922, 238.42887735160], [1.020, 5.53181822898, 0.04818410980], [0.995, 2.03457885490, 6290.18939699220], [0.888, 2.60957592990, 1912.57831194120], [0.873, 5.78433393020, 480.77286162380], [0.854, 1.63255087291, 328.24071907260], [1.123, 4.07401922216, 3693.60966166060], [0.934, 3.52355235083, 10220.39909321180], [0.833, 3.03302227840, 532.87235883230], [1.007, 2.73615455688, 4841.85727206680], [0.870, 1.06968760644, 51.20572533120], [0.891, 1.36817544763, 700.45179087970], [0.833, 5.39754715806, 159.71512552120], [0.854, 1.91765015557, 622.48879857470], [0.976, 3.09106001923, 2332.06295581640], [0.819, 5.55683690482, 462.02291352810], [0.800, 1.47042677460, 969.62247809490], [0.933, 1.40166917666, 287.93768165340], [0.784, 1.69235162770, 477.80391620720], [0.782, 3.98153416585, 702.14871190910], [0.810, 5.87689161549, 561.93429400900], [0.858, 4.02964773169, 41.64449777560], [0.819, 0.98885784755, 960.22130923370], [0.882, 1.49559638306, 760.25553592000], [0.767, 2.46787654531, 402.21916848780], [0.851, 3.64678001195, 348.63519857100], [0.852, 1.03470840672, 2620.00063746980], [0.770, 4.67090683753, 16.67477455640], [0.849, 5.27994730935, 74.63858621540], [0.854, 2.56811257488, 432.74853003030], [0.767, 1.11806243753, 2847.52682690940], [0.729, 0.44171990710, 898.77303279070], [0.776, 5.54603607568, 3171.03224356680], [0.721, 6.05392551158, 91.78644152380], [0.739, 3.57172839746, 775.23338944700], [0.730, 4.98865345688, 705.11765732570], [0.705, 0.44942445750, 219.66188291340], [0.708, 0.69014726046, 1048.33622992530], [0.706, 2.22974712805, 29.20494752860], [0.711, 0.00981284716, 2115.58246664070], [0.722, 4.14075205197, 225.07850888480], [0.735, 1.54083195463, 201.99276274320], [0.746, 4.08997409526, 849.26422848890], [0.729, 2.81779134868, 419.53282798500], [0.837, 1.00844734156, 4127.32139953740], [0.939, 0.46037763932, 5488.86810538160], [0.939, 1.85473712038, 5062.26991450560], [0.721, 1.62872794201, 2200.51599359460], ], # R2 [ [436902.464, 4.78671673044, 213.29909543800], [71922.760, 2.50069994874, 206.18554843720], [49766.792, 4.97168150870, 220.41264243880], [43220.894, 3.86940443794, 426.59819087600], [29645.554, 5.96310264282, 7.11354700080], [4141.650, 4.10670940823, 433.71173787680], [4720.909, 2.47527992423, 199.07200143640], [3789.370, 3.09771025067, 639.89728631400], [2963.990, 1.37206248846, 103.09277421860], [2556.363, 2.85065721526, 419.48464387520], [2208.457, 6.27588858707, 110.20632121940], [2187.621, 5.85545832218, 14.22709400160], [1956.896, 4.92448618045, 227.52618943960], [2326.801, 0.00000000000, 0.00000000000], [923.840, 5.46392422737, 323.50541665740], [705.936, 2.97081280098, 95.97922721780], [546.115, 4.12854181522, 412.37109687440], [373.838, 5.83435991809, 117.31986822020], [360.882, 3.27703082368, 647.01083331480], [356.350, 3.19152043942, 210.11770170030], [390.627, 4.48106176893, 216.48048917570], [431.485, 5.17825414612, 522.57741809380], [325.598, 2.26867601656, 853.19638175200], [405.018, 4.17294157872, 209.36694217490], [204.494, 0.08774848590, 202.25339517410], [206.854, 4.02188336738, 735.87651353180], [178.474, 4.09716541453, 440.82528487760], [180.143, 3.59704903955, 632.78373931320], [153.656, 3.13470530382, 625.67019231240], [147.779, 0.13614300541, 302.16477565500], [123.189, 4.18895309647, 88.86568021700], [133.076, 2.59350469420, 191.95845443560], [100.367, 5.46056190585, 3.18139373770], [131.975, 5.93293968941, 309.27832265580], [97.235, 4.01832604356, 728.76296653100], [110.709, 4.77853798276, 838.96928775040], [119.053, 5.55385105975, 224.34479570190], [93.852, 4.38395529912, 217.23124870110], [108.701, 5.29310899841, 515.46387109300], [78.609, 5.72525447528, 21.34064100240], [81.468, 5.10897365253, 956.28915597060], [96.412, 6.25859229567, 742.99006053260], [69.228, 4.04901237761, 3.93215326310], [65.168, 3.77713343518, 1052.26838318840], [64.088, 5.81235002453, 529.69096509460], [62.541, 2.18445116349, 195.13984817330], [56.987, 3.14666549033, 203.00415469950], [55.979, 4.84108422860, 234.63973644040], [52.940, 5.07780548444, 330.61896365820], [50.635, 2.77318570728, 942.06206196900], [41.649, 4.79014211005, 63.73589830340], [44.858, 0.56460613593, 269.92144674060], [41.357, 3.73496404402, 316.39186965660], [52.847, 3.92623831484, 949.17560896980], [38.398, 3.73966157784, 1045.15483618760], [37.583, 4.18924633757, 536.80451209540], [35.285, 2.90795856092, 284.14854074220], [33.576, 3.80465978802, 149.56319713460], [41.073, 4.57870454147, 1155.36115740700], [30.412, 2.48140171991, 860.30992875280], [31.373, 4.84075951849, 1272.68102562720], [30.218, 4.35186294470, 405.25754987360], [39.430, 3.50858482049, 422.66603761290], [29.658, 1.58886982096, 1066.49547719000], [35.202, 5.94478241578, 1059.38193018920], [25.829, 3.54946335477, 1368.66025284500], [26.283, 4.81567477177, 124.43341522100], [29.963, 3.66312205813, 429.77958461370], [33.011, 4.96879544579, 831.85574074960], [24.305, 5.31133255082, 10.29494073850], [26.332, 4.45253273390, 223.59403617650], [22.108, 2.76092021113, 415.55249061210], [27.187, 1.66347897738, 277.03499374140], [21.639, 1.03836302307, 11.04570026390], [19.713, 2.52194629263, 1258.45393162560], [17.062, 3.27669927228, 654.12438031560], [17.261, 3.49414816663, 1361.54670584420], [16.097, 1.73396878598, 490.33408917940], [21.099, 3.62102032955, 1265.56747862640], [17.692, 4.31141612385, 1471.75302706360], [13.458, 0.32327889681, 295.05122865420], [12.586, 3.13794576887, 74.78159856730], [12.023, 2.32917797741, 210.85141488320], [15.120, 3.59558424278, 265.98929347750], [12.959, 4.62359706368, 1589.07289528380], [15.424, 5.01335704925, 127.47179660680], [11.193, 4.54981248285, 81.75213321620], [13.449, 4.88710089777, 437.64389113990], [10.673, 5.05234757424, 191.20769491020], [13.963, 3.04990968366, 423.41679713830], [10.614, 5.02845923229, 137.03302416240], [14.382, 4.68720080027, 1148.24761040620], [13.470, 1.90280407135, 408.43894361130], [10.077, 5.20426583827, 340.77089204480], [10.323, 3.34460279759, 1685.05212250160], [9.563, 3.17317920222, 351.81659230870], [11.295, 5.47808960704, 1375.77379984580], [8.617, 2.81294528041, 99.91138048090], [8.460, 3.22691940753, 1677.93857550080], [7.914, 2.35624291874, 1574.84580128220], [7.587, 6.08171425316, 231.45834270270], [9.175, 3.40072244924, 1581.95934828300], [7.337, 2.00393601815, 131.40394986990], [8.240, 4.04095881407, 1788.14489672020], [7.579, 3.68311134272, 846.08283475120], [6.691, 4.37253800717, 145.63104387150], [7.539, 3.29482043104, 750.10360753340], [6.367, 4.00239137708, 447.93883187840], [6.249, 4.55603671940, 106.27416795630], [6.489, 1.33782087599, 215.74677599280], [6.501, 3.78204726337, 313.21047591890], [5.978, 0.55276980086, 18.15924726470], [6.171, 2.84712795642, 138.51749687070], [6.837, 4.83481646949, 319.57326339430], [6.678, 5.43046031699, 508.35032409220], [7.175, 4.37855723752, 1464.63948006280], [5.753, 4.14268749228, 543.91805909620], [5.727, 4.35383078313, 1905.46476494040], [5.101, 2.63866058897, 288.08069400530], [5.311, 3.62520849510, 6076.89030155420], [5.498, 4.19972735173, 721.64941953020], [5.089, 5.04845206653, 10007.09999777380], [5.505, 1.13479635941, 56.62235130260], [4.820, 3.30043078578, 76.26607127560], [4.915, 6.17790518458, 483.22054217860], [5.048, 2.44627820757, 628.85158605010], [4.534, 1.19648682598, 200.76892246580], [4.817, 3.11549733365, 2001.44399215820], [4.712, 1.26507812515, 6062.66320755260], [4.811, 5.78388270496, 184.84490743480], [4.775, 0.76197795755, 333.65734504400], [4.514, 0.95293919611, 343.21857259960], [4.525, 2.68827745072, 9992.87290377220], [4.378, 0.80241129896, 222.86032299360], [4.873, 5.92092913946, 618.55664531160], [4.142, 1.91878383159, 497.44763618020], [5.112, 4.50449287745, 416.30325013750], [4.125, 1.98204847532, 347.88443904560], [4.045, 2.87666810085, 38.13303563780], [4.133, 2.90478811425, 107.02492748170], [4.035, 2.92972681787, 1994.33044515740], [4.916, 3.12316267561, 1898.35121793960], [3.657, 3.24680246734, 362.86229257260], [3.753, 0.87719890943, 703.63318461740], [3.576, 3.48080143501, 388.46515523820], [3.555, 4.08436297683, 430.53034413910], [3.598, 0.05255328597, 32.24332891440], [3.561, 5.46414552453, 6283.07584999140], [3.480, 1.81622589595, 70.84944530420], [3.827, 3.12041228490, 635.96513305090], [3.399, 0.54882815021, 10213.28554621100], [3.399, 3.51833356080, 629.60234557550], [3.364, 3.27821747958, 357.44566660120], [3.260, 1.97623748027, 203.73786788240], [3.118, 2.18465627368, 1891.23767093880], [3.163, 1.26040995242, 134.58534360760], [4.004, 5.45434102599, 1692.16566950240], [3.180, 2.46319174788, 867.42347575360], [3.389, 4.20503159673, 337.73251065900], [3.026, 2.19331614526, 217.96496188400], [3.573, 5.55097240810, 113.38771495710], [3.682, 3.78966280284, 2104.53676637680], [3.125, 4.09203641264, 1478.86657406440], [2.881, 3.90810650240, 312.19908396260], [3.199, 3.92123638342, 1038.04128918680], [4.014, 5.17826893553, 404.50679034820], [3.907, 4.11767191780, 1781.03134971940], [3.144, 1.61185684069, 1073.60902419080], [3.072, 5.00675625396, 312.45971639350], [3.034, 5.46288652854, 258.87574647670], [2.884, 2.38477237305, 181.05576652360], [2.986, 0.88783591586, 1279.79457262800], [2.683, 0.00956197492, 195.89060769870], [3.081, 5.60034737330, 216.21985674480], [2.626, 6.12701960244, 273.10284047830], [2.665, 2.31576422128, 565.11568774670], [3.245, 3.87540558646, 85.82729883120], [2.740, 5.73784096806, 160.60889739850], [2.876, 4.74720607366, 213.25091132820], [2.523, 5.30458920892, 444.75743814070], [2.752, 5.08984539930, 1169.58825140860], [2.889, 1.66674437398, 213.34727954780], [2.923, 4.21481009033, 650.94298657790], [3.036, 2.55426675350, 6069.77675455340], [3.116, 2.67220972004, 52.69019803950], [2.371, 0.89591351822, 121.25202148330], [2.993, 3.96957827454, 9999.98645077300], [3.088, 0.40656113014, 561.18353448360], [2.385, 4.74063881551, 218.71572140940], [2.632, 1.12706218927, 344.70304530790], [2.316, 4.08445262041, 131.54696222180], [2.214, 3.37726228553, 22.09140052780], [2.129, 3.32497715011, 358.93013930950], [2.679, 1.68971401870, 208.63322899200], [2.607, 5.10250482155, 824.74219374880], [2.250, 2.60474848767, 305.34616939270], [2.087, 3.37293958793, 320.32402291970], [2.693, 3.62159456470, 436.89313161450], [2.492, 2.96129217279, 2214.74308759620], [2.704, 2.88483697319, 643.07868005170], [2.124, 1.61210282593, 218.92816973050], [2.037, 4.63481160778, 188.02630117250], [2.394, 3.46386258552, 6275.96230299060], [1.973, 2.28886138203, 2627.11418447060], [1.937, 5.67082364247, 28.45418800320], [1.920, 4.25647211328, 546.95644048200], [2.498, 3.57572154405, 2420.92863603340], [1.898, 1.30987536388, 212.33588759150], [1.852, 1.58508015515, 424.15051032120], [1.850, 3.57830449726, 329.72519178090], [2.128, 3.95329215734, 1795.25844372100], [2.236, 4.22073549375, 2221.85663459700], [1.933, 1.68771499202, 350.33211960040], [1.799, 2.06541260431, 144.14657116320], [1.904, 4.60953896857, 182.27960680100], [2.236, 5.17945392885, 99.16062095550], [1.755, 2.73425330428, 291.26208774300], [2.231, 5.42548168745, 207.88246946660], [1.848, 2.24194286719, 168.05251279940], [1.726, 1.31878655393, 219.44943459230], [1.709, 5.55913931846, 92.79783348010], [1.693, 1.95360003617, 129.91947716160], [2.064, 4.84900344498, 1141.13406340540], [1.758, 5.05088656436, 214.26230328450], [1.781, 2.85880153340, 636.71589257630], [1.900, 2.90295578617, 2310.72231481400], [1.759, 5.34657858395, 45.57665103870], [1.654, 6.14450664508, 554.06998748280], [1.578, 4.50941374663, 210.37833413120], [1.681, 3.55136706992, 1354.43315884340], [1.862, 3.01276783582, 2317.83586181480], [1.589, 1.15773448350, 235.39049596580], [1.551, 2.15558953807, 207.67002114550], [1.874, 4.12861627986, 225.82926841020], [1.621, 3.29992957653, 1670.82502850000], [1.911, 0.17724319140, 12.53017297220], [1.477, 5.90270260570, 1.48447270830], [1.618, 5.72513459206, 1485.98012106520], [1.446, 1.78104589920, 1382.88734684660], [1.683, 3.43534671475, 2428.04218303420], [1.542, 5.51223038941, 204.70107572890], [1.420, 2.07339356364, 198.32124191100], [1.444, 5.56032454849, 128.36556848410], [1.476, 6.12782257368, 212.77783057620], [1.474, 0.33626790634, 213.82036029980], [1.428, 3.25039966249, 945.99421523210], [1.410, 0.68747644676, 429.04587143080], [1.752, 2.70090942746, 12.74262129330], [1.681, 4.97526853273, 2008.55753915900], [1.408, 0.80461100746, 1585.14074202070], [1.485, 0.49674043855, 120.35824960600], [1.490, 2.68459799437, 207.14875628370], [1.411, 4.36399216092, 5863.59120611620], [1.315, 4.73430848989, 241.75328344120], [1.516, 4.99488503706, 1162.47470440780], [1.310, 1.98714265058, 563.63121503840], [1.286, 2.12891372062, 251.43213107580], [1.271, 5.70165238307, 2.92076130680], [1.312, 1.68811514551, 2207.62954059540], [1.259, 0.35924965717, 334.55111692130], [1.252, 2.14513440216, 1055.44977692610], [1.401, 6.13250261735, 1802.37199072180], [1.343, 5.79995727295, 9793.80090233580], [1.228, 3.29059284057, 661.23792731640], [1.202, 2.88792018909, 2413.81508903260], [1.286, 5.72360160371, 298.23262239190], [1.357, 0.93175963411, 217.49188113200], [1.356, 2.28121627817, 601.76425067620], [1.190, 1.94993809928, 501.37978944330], [1.304, 0.37337923280, 3473.19701922180], [1.350, 2.87235622320, 142.44965013380], [1.349, 3.21102203937, 175.16605980020], [1.312, 3.70149813509, 2111.65031337760], [1.129, 1.08860603834, 842.15068148810], [1.237, 0.08698781252, 526.50957135690], [1.217, 3.89835349840, 209.10630974400], [1.467, 1.16228775027, 621.73803904930], [1.044, 0.30512759901, 436.15941843160], [1.140, 5.33720637097, 114.13847448250], [1.295, 4.70261675421, 9786.68735533500], [1.037, 4.07846687083, 156.67674413540], [1.391, 4.73554028436, 398.14400287280], [1.167, 5.68899703631, 479.28838891550], [1.035, 5.34279429465, 327.43756992050], [0.997, 1.19323192891, 710.74673161820], [1.193, 5.17722376816, 98.89998852460], [1.165, 4.58588490135, 732.69511979410], [1.161, 4.90854984994, 10206.17199921020], [1.144, 0.50394784140, 3906.90875709860], [1.182, 3.69482624364, 2854.64037391020], [0.970, 2.89031410383, 1987.21689815660], [1.039, 0.48694895443, 525.49817940060], [1.079, 3.61750956217, 2097.42321937600], [1.148, 3.31015591733, 5856.47765911540], [1.241, 4.31971543677, 230.70758317730], [0.910, 4.59825926062, 380.12776796000], [0.907, 1.34912454077, 685.47393735270], [1.166, 1.61085609717, 5849.36411211460], [0.882, 6.12045540405, 519.39602435610], [0.963, 4.96065454054, 699.70103135430], [1.062, 5.13323858077, 2751.54759969160], [0.865, 6.12821112133, 245.54242435240], [1.100, 2.18435744407, 1699.27921650320], [0.822, 5.55083534581, 739.05790726950], [0.926, 2.01158276144, 417.03696332040], [0.813, 5.18401872205, 214.78356814630], [1.033, 5.48677848094, 3995.77443731560], [0.872, 3.02363724703, 306.09692891810], [0.796, 0.44343664540, 486.40193591630], [0.878, 1.82164034386, 135.33610313300], [0.791, 2.14989417962, 2620.00063746980], [0.881, 2.39697554334, 289.56516671360], [0.782, 4.50471317138, 980.66817835880], [0.783, 1.14229319753, 540.73666535850], [0.831, 0.69937251013, 421.93232443000], [0.770, 2.40292326155, 576.16138801060], [0.950, 5.97621460162, 196.62432088160], [0.814, 4.19303098086, 831.10498122420], [0.969, 4.78071024754, 326.68681039510], [0.760, 0.44860533530, 425.63498302950], [0.907, 0.94781730418, 525.75881183150], [0.788, 0.14287187051, 916.93228005540], [0.801, 1.86383119100, 3039.48528134500], [0.801, 0.46947170994, 3466.08347222100], [0.747, 6.05374861925, 211.81462272970], [0.968, 3.02618272726, 2634.22773147140], [0.739, 2.27110740297, 2303.60876781320], [0.750, 5.48554383902, 173.94221952280], [1.024, 1.91564925560, 229.97386999440], [0.816, 4.98990432666, 4209.07353275360], [0.728, 1.30997967935, 511.53171782990], [0.716, 3.74192651696, 3053.71237534660], [0.727, 0.39191881243, 1493.09366806600], [0.717, 2.68899513085, 228.27694896500], [0.739, 2.12749199443, 1176.70179840940], [0.805, 0.07187193910, 556.51766803760], [0.835, 3.48287855700, 84.93352695390], [0.790, 0.48073040004, 4017.11507831800], [0.725, 1.96643065215, 220.46082654860], [0.683, 2.68825142163, 151.04766984290], [0.739, 3.33688408107, 953.10776223290], [0.745, 6.22304530635, 1269.49963188950], ], # R3 [ [20315.005, 3.02186626038, 213.29909543800], [8923.581, 3.19144205755, 220.41264243880], [6908.677, 4.35174889353, 206.18554843720], [4087.129, 4.22406927376, 7.11354700080], [3879.041, 2.01056445995, 426.59819087600], [1070.788, 4.20360341236, 199.07200143640], [907.332, 2.28344368029, 433.71173787680], [606.121, 3.17458570534, 227.52618943960], [596.639, 4.13455753351, 14.22709400160], [483.181, 1.17345973258, 639.89728631400], [393.174, 0.00000000000, 0.00000000000], [229.472, 4.69838526383, 419.48464387520], [188.250, 4.59003889007, 110.20632121940], [149.508, 3.20199444400, 103.09277421860], [121.442, 3.76831374104, 323.50541665740], [101.215, 5.81884137755, 412.37109687440], [102.146, 4.70974422803, 95.97922721780], [93.078, 1.43531270909, 647.01083331480], [72.601, 4.15395598507, 117.31986822020], [84.347, 2.63462379693, 216.48048917570], [62.198, 2.31239345505, 440.82528487760], [45.145, 4.37317047297, 191.95845443560], [49.536, 2.38854232908, 209.36694217490], [54.829, 0.30526468471, 853.19638175200], [40.498, 1.83836569765, 302.16477565500], [38.089, 5.94455115525, 88.86568021700], [32.243, 4.01146349387, 21.34064100240], [40.671, 0.68845183210, 522.57741809380], [28.209, 5.77193013961, 210.11770170030], [24.976, 3.06249709014, 234.63973644040], [20.824, 4.92570695678, 625.67019231240], [25.070, 0.73137425284, 515.46387109300], [17.485, 5.73135068691, 728.76296653100], [18.009, 1.45593152612, 309.27832265580], [16.927, 3.52771580455, 3.18139373770], [13.437, 3.36479898106, 330.61896365820], [11.090, 3.37212682914, 224.34479570190], [11.082, 3.41719974793, 956.28915597060], [9.978, 1.58791582772, 202.25339517410], [11.551, 5.99093726182, 735.87651353180], [10.500, 6.06911092266, 405.25754987360], [9.144, 2.93557421591, 124.43341522100], [8.737, 4.65432480769, 632.78373931320], [10.023, 0.58247011625, 860.30992875280], [7.482, 4.50669216436, 942.06206196900], [10.091, 0.28268774007, 838.96928775040], [9.243, 2.57034547708, 223.59403617650], [8.652, 1.75808100881, 429.77958461370], [7.564, 1.45635107202, 654.12438031560], [7.058, 5.47394786065, 1045.15483618760], [6.970, 1.51811695028, 422.66603761290], [8.067, 4.48457709292, 742.99006053260], [6.817, 4.83084424818, 316.39186965660], [7.693, 0.43769724671, 831.85574074960], [7.934, 4.20112367712, 195.13984817330], [6.119, 2.33960392135, 269.92144674060], [5.589, 1.14518720694, 284.14854074220], [5.564, 4.18123189068, 529.69096509460], [5.034, 2.12020038657, 295.05122865420], [6.556, 3.42459866876, 10.29494073850], [5.544, 2.46823271699, 536.80451209540], [6.189, 6.01433827520, 1066.49547719000], [5.649, 0.82784598388, 217.23124870110], [4.264, 3.23245736673, 1272.68102562720], [4.450, 0.92477808590, 203.00415469950], [3.268, 4.32777516976, 1258.45393162560], [3.655, 0.05832123987, 81.75213321620], [3.951, 0.11124996745, 1155.36115740700], [3.773, 6.01157059552, 1052.26838318840], [2.915, 5.64342950039, 3.93215326310], [3.019, 2.19411778004, 447.93883187840], [2.977, 1.89387342550, 149.56319713460], [3.146, 0.19215180096, 1148.24761040620], [2.763, 0.92363342001, 508.35032409220], [2.790, 4.97199778427, 1677.93857550080], [2.608, 2.99591016813, 1589.07289528380], [2.881, 5.40535671721, 1361.54670584420], [2.337, 1.30362271569, 184.84490743480], [2.536, 3.71412120849, 408.43894361130], [2.450, 3.22118361135, 319.57326339430], [2.585, 2.31346415454, 543.91805909620], [2.324, 5.87500715503, 721.64941953020], [1.990, 0.51565577383, 416.30325013750], [2.490, 4.24017800021, 1059.38193018920], [1.935, 2.41463084855, 337.73251065900], [1.886, 0.53809070779, 635.96513305090], [1.893, 5.62352727352, 11.04570026390], [2.389, 5.73399981234, 313.21047591890], [1.900, 2.41000566465, 131.54696222180], [1.743, 4.57646237847, 1994.33044515740], [1.913, 5.17436386408, 2854.64037391020], [1.946, 6.23355845623, 1471.75302706360], [1.963, 6.17814558628, 1464.63948006280], [1.838, 5.59464577559, 1038.04128918680], [1.541, 0.60765337379, 210.85141488320], [1.617, 1.75479346067, 195.89060769870], [1.577, 0.55789908488, 2324.94940881560], [1.492, 0.26624235633, 497.44763618020], [1.659, 2.57526072926, 2090.30967237520], [1.809, 1.82317819973, 436.89313161450], [1.566, 6.15328100324, 490.33408917940], [1.771, 6.11741716855, 1073.60902419080], [1.456, 0.85374460914, 415.55249061210], [1.645, 2.95335775161, 437.64389113990], [1.391, 4.12025028560, 1574.84580128220], [1.585, 5.96841377266, 1781.03134971940], [1.507, 3.84895122542, 1251.34038462480], [1.442, 5.32547705924, 2538.24850425360], [1.805, 1.50973093681, 750.10360753340], [1.462, 3.28599831588, 1884.12412393800], [1.482, 0.99340744053, 643.07868005170], [1.312, 3.79347668996, 1567.73225428140], [1.665, 0.02551523913, 423.41679713830], [1.469, 5.35285153471, 1354.43315884340], [1.352, 0.69945139243, 867.42347575360], [1.124, 1.79624810407, 618.55664531160], [1.126, 4.70052329245, 113.38771495710], [1.122, 3.95537224270, 1891.23767093880], [1.458, 1.50198846753, 430.53034413910], [1.145, 5.13093399117, 25.27279426550], [1.178, 2.97062300389, 241.75328344120], [1.274, 2.29089799814, 2420.92863603340], [1.071, 0.04888943982, 63.73589830340], [1.377, 5.58271514873, 1382.88734684660], [1.145, 3.10797488346, 2200.51599359460], [1.076, 0.79465514815, 127.47179660680], [1.046, 5.85060227045, 215.74677599280], [1.082, 3.72589445510, 131.40394986990], [1.218, 0.47504349592, 824.74219374880], [1.116, 3.78039049056, 1375.77379984580], [0.969, 5.90752273481, 265.98929347750], [1.230, 1.41325962069, 2634.22773147140], [1.070, 4.80334493874, 1987.21689815660], [0.946, 6.25968535931, 2015.67108615980], [1.030, 1.08973644893, 362.86229257260], [1.072, 5.41838042079, 1279.79457262800], [0.880, 1.92224908504, 483.22054217860], [0.878, 2.96591300878, 934.94851496820], [0.879, 2.65659265685, 145.63104387150], [0.872, 6.26261969664, 2.44768055480], [1.082, 4.48298283322, 2214.74308759620], [0.959, 0.74479087918, 16.67477455640], [1.035, 4.05664979327, 231.45834270270], [0.851, 0.09360495322, 628.85158605010], [0.888, 5.98816755324, 2524.02141025200], [0.866, 3.16259265630, 2207.62954059540], [0.843, 1.23731248821, 74.78159856730], [0.809, 2.89742868175, 2008.55753915900], [0.779, 2.28434811609, 1478.86657406440], [0.990, 5.32604038017, 2428.04218303420], [0.795, 2.38178135810, 2228.97018159780], [0.765, 4.70033674940, 1670.82502850000], [1.024, 4.23352869513, 1802.37199072180], [0.831, 5.87457134912, 1368.66025284500], [0.717, 5.92144324994, 1685.05212250160], [0.772, 1.15596098579, 3053.71237534660], [0.691, 3.13193109668, 56.62235130260], ], # R4 [ [1202.050, 1.41499446465, 220.41264243880], [707.796, 1.16153570102, 213.29909543800], [516.121, 6.23973568330, 206.18554843720], [426.664, 2.46924890293, 7.11354700080], [267.736, 0.18659206741, 426.59819087600], [170.171, 5.95926972384, 199.07200143640], [145.113, 1.44211060143, 227.52618943960], [150.339, 0.47970167140, 433.71173787680], [121.033, 2.40527320817, 14.22709400160], [47.332, 5.56857488676, 639.89728631400], [15.745, 2.90112466278, 110.20632121940], [16.668, 0.52920774279, 440.82528487760], [18.954, 5.85626429118, 647.01083331480], [14.074, 1.30343550656, 412.37109687440], [12.708, 2.09349305926, 323.50541665740], [14.724, 0.29905316786, 419.48464387520], [11.133, 2.46304825990, 117.31986822020], [11.320, 0.21785507019, 95.97922721780], [9.233, 2.28127318068, 21.34064100240], [9.246, 1.56496312830, 88.86568021700], [8.970, 0.68301278041, 216.48048917570], [7.674, 3.59367715368, 302.16477565500], [7.823, 4.48688804175, 853.19638175200], [8.360, 1.27239488455, 234.63973644040], [9.552, 3.14159265359, 0.00000000000], [4.834, 2.58836294602, 515.46387109300], [6.059, 5.16774448740, 103.09277421860], [4.410, 0.02211643085, 191.95845443560], [4.364, 1.59622746023, 330.61896365820], [3.676, 3.29899839673, 210.11770170030], [4.364, 5.97349927933, 654.12438031560], [4.447, 4.97415112184, 860.30992875280], [3.220, 2.72684237392, 522.57741809380], [4.005, 1.59858435636, 405.25754987360], [3.099, 0.75235436533, 209.36694217490], [2.464, 1.19167306488, 124.43341522100], [3.088, 1.32258934286, 728.76296653100], [2.220, 3.28087994088, 203.00415469950], [2.127, 6.14648095022, 429.77958461370], [2.110, 0.75462855247, 295.05122865420], [2.020, 3.89394929749, 1066.49547719000], [2.248, 0.49319150178, 447.93883187840], [2.180, 0.72761059998, 625.67019231240], [1.809, 0.09057839517, 942.06206196900], [1.672, 1.39635398184, 224.34479570190], [1.641, 3.02468307550, 184.84490743480], [1.772, 0.81879250825, 223.59403617650], [1.902, 2.00472814984, 831.85574074960], [1.600, 5.41185167676, 824.74219374880], [1.505, 5.95520747253, 422.66603761290], [1.133, 1.11512973946, 838.96928775040], [1.190, 1.89600567803, 956.28915597060], [1.487, 2.11906469507, 529.69096509460], [1.409, 0.72254420236, 536.80451209540], [1.125, 0.89062692183, 721.64941953020], [1.301, 1.64867038984, 17.40848773930], [1.164, 5.96957981840, 195.13984817330], [0.950, 5.36080713290, 316.39186965660], [0.985, 3.05768671768, 1574.84580128220], [1.050, 1.59202481523, 735.87651353180], [0.817, 4.92838813598, 56.62235130260], [0.780, 2.72125404102, 508.35032409220], [0.969, 1.00708261792, 1045.15483618760], [0.716, 1.11042181341, 1169.58825140860], ], # R5 [ [128.612, 5.91282565136, 220.41264243880], [32.273, 0.69256228602, 7.11354700080], [26.698, 5.91428528629, 227.52618943960], [19.923, 0.67370653385, 14.22709400160], [20.223, 4.95136801768, 433.71173787680], [13.537, 1.45669521408, 199.07200143640], [14.097, 2.67074280191, 206.18554843720], [13.364, 4.58826996370, 426.59819087600], [7.257, 4.62966127155, 213.29909543800], [4.876, 3.61448275002, 639.89728631400], [3.136, 4.65661021909, 191.95845443560], [2.917, 0.48665273315, 323.50541665740], [3.759, 4.89624165044, 440.82528487760], [3.303, 4.07190859545, 647.01083331480], [2.883, 3.18003019204, 419.48464387520], [2.338, 3.69553554327, 88.86568021700], [1.950, 5.32729247780, 302.16477565500], [2.052, 3.31663577368, 95.97922721780], [1.591, 2.67009215574, 853.19638175200], [2.028, 0.56025552769, 117.31986822020], [1.560, 0.85608042681, 515.46387109300], [1.678, 0.00000000000, 0.00000000000], [1.102, 5.98011943842, 3.18139373770], [1.285, 5.82563377753, 234.63973644040], [0.896, 5.22791858719, 216.48048917570], [1.141, 0.15741228205, 412.37109687440], [0.798, 0.37452846153, 28.45418800320], [0.837, 5.04769794123, 124.43341522100], ], ] """This table contains Saturn's periodic terms (all of them) from the planetary theory VSOP87 for the radius vector at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in pages 442-445.""" ORBITAL_ELEM = [ [50.077444, 1223.5110686, 0.00051908, -0.00000003], # L [9.554909192, -0.000002139, 0.000000004, 0.0], # a [0.05554814, -0.000346641, -0.0000006436, 0.0000000034], # e [2.488879, -0.0037362, -0.00001519, 0.000000087], # i [113.665503, 0.877088, -0.00012176, -0.000002249], # Omega [93.057237, 1.9637613, 0.00083753, 0.000004928] # pie ] """This table contains the parameters to compute Saturn's orbital elements for the mean equinox of date. Based in Table 31.A, page 213""" ORBITAL_ELEM_J2000 = [ [50.077444, 1222.1138488, 0.00021004, -0.000000046], # L [2.488879, 0.0025514, -0.00004906, 0.000000017], # i [113.665503, -0.2566722, -0.00018399, 0.00000048], # Omega [93.057237, 0.5665415, 0.0005285, 0.000004912] # pie ] """This table contains the parameters to compute Saturn's orbital elements for the standard equinox J2000.0. Based on Table 31.B, page 215""" class Saturn(object): """ Class Saturn models that planet. """ @staticmethod def geometric_heliocentric_position(epoch, tofk5=True): """This method computes the geometric heliocentric position of planet Saturn for a given epoch, using the VSOP87 theory. :param epoch: Epoch to compute Saturn position, as an Epoch object :type epoch: :py:class:`Epoch` :param tofk5: Whether or not the small correction to convert to the FK5 system will be applied or not :type tofk5: bool :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2018, 10, 27.0) >>> l, b, r = Saturn.geometric_heliocentric_position(epoch) >>> print(round(l.to_positive(), 4)) 279.5108 >>> print(round(b, 4)) 0.6141 >>> print(round(r, 5)) 10.06266 """ return geometric_vsop_pos(epoch, VSOP87_L, VSOP87_B, VSOP87_R, tofk5) @staticmethod def apparent_heliocentric_position(epoch): """This method computes the apparent heliocentric position of planet Saturn for a given epoch, using the VSOP87 theory. :param epoch: Epoch to compute Saturn position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. """ return apparent_vsop_pos(epoch, VSOP87_L, VSOP87_B, VSOP87_R) @staticmethod def orbital_elements_mean_equinox(epoch): """This method computes the orbital elements of Saturn for the mean equinox of the date for a given epoch. :param epoch: Epoch to compute orbital elements, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the following six orbital elements: - Mean longitude of the planet (Angle) - Semimajor axis of the orbit (float, astronomical units) - eccentricity of the orbit (float) - inclination on the plane of the ecliptic (Angle) - longitude of the ascending node (Angle) - argument of the perihelion (Angle) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2065, 6, 24.0) >>> l, a, e, i, ome, arg = Saturn.orbital_elements_mean_equinox(epoch) >>> print(round(l, 6)) 131.196871 >>> print(round(a, 8)) 9.55490779 >>> print(round(e, 7)) 0.0553209 >>> print(round(i, 6)) 2.486426 >>> print(round(ome, 5)) 114.23974 >>> print(round(arg, 6)) -19.896331 """ return orbital_elements(epoch, ORBITAL_ELEM, ORBITAL_ELEM) @staticmethod def orbital_elements_j2000(epoch): """This method computes the orbital elements of Saturn for the standard equinox J2000.0 for a given epoch. :param epoch: Epoch to compute orbital elements, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the following six orbital elements: - Mean longitude of the planet (Angle) - Semimajor axis of the orbit (float, astronomical units) - eccentricity of the orbit (float) - inclination on the plane of the ecliptic (Angle) - longitude of the ascending node (Angle) - argument of the perihelion (Angle) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2065, 6, 24.0) >>> l, a, e, i, ome, arg = Saturn.orbital_elements_j2000(epoch) >>> print(round(l, 6)) 130.28188 >>> print(round(a, 8)) 9.55490779 >>> print(round(e, 7)) 0.0553209 >>> print(round(i, 6)) 2.490529 >>> print(round(ome, 5)) 113.49736 >>> print(round(arg, 6)) -20.068943 """ return orbital_elements(epoch, ORBITAL_ELEM, ORBITAL_ELEM_J2000) @staticmethod def geocentric_position(epoch): """This method computes the geocentric position of Saturn (right ascension and declination) for the given epoch, as well as the elongation angle. :param epoch: Epoch to compute geocentric position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the right ascension, the declination and the elongation angle as Angle objects :rtype: tuple :raises: TypeError if input value is of wrong type. >>> epoch = Epoch(1992, 12, 20.0) >>> ra, dec, elon = Saturn.geocentric_position(epoch) >>> print(ra.ra_str(n_dec=1)) 21h 11' 41.8'' >>> print(dec.dms_str(n_dec=1)) -17d 15' 40.8'' >>> print(elon.dms_str(n_dec=1)) 46d 51' 47.7'' """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Compute the heliocentric position of Saturn l, b, r = Saturn.geometric_heliocentric_position(epoch, tofk5=False) # Compute the heliocentric position of the Earth l0, b0, r0 = Earth.geometric_heliocentric_position(epoch, tofk5=False) # Convert to radians lr = l.rad() br = b.rad() l0r = l0.rad() b0r = b0.rad() # Compute first iteration x = r * cos(br) * cos(lr) - r0 * cos(b0r) * cos(l0r) y = r * cos(br) * sin(lr) - r0 * cos(b0r) * sin(l0r) z = r * sin(br) - r0 * sin(b0r) delta = sqrt(x * x + y * y + z * z) tau = 0.0057755183 * delta # Adjust the epoch for light-time epoch -= tau # Compute again Saturn coordinates with this correction l, b, r = Saturn.geometric_heliocentric_position(epoch, tofk5=False) # Compute second iteration lr = l.rad() br = b.rad() x = r * cos(br) * cos(lr) - r0 * cos(b0r) * cos(l0r) y = r * cos(br) * sin(lr) - r0 * cos(b0r) * sin(l0r) z = r * sin(br) - r0 * sin(b0r) # Compute longitude and latitude lamb = atan2(y, x) beta = atan2(z, sqrt(x * x + y * y)) # Now, let's compute the aberration effect t = (epoch - JDE2000) / 36525 e = 0.016708634 + t * (-0.000042037 - t * 0.0000001267) pie = 102.93735 + t * (1.71946 + t * 0.00046) pie = radians(pie) lon = l0 + 180.0 lon = lon.rad() k = 20.49552 # The constant of aberration deltal1 = k * (-cos(lon - lamb) + e * cos(pie - lamb)) / cos(beta) deltab1 = -k * sin(beta) * (sin(lon - lamb) - e * sin(pie - lamb)) deltal1 = Angle(0, 0, deltal1) deltab1 = Angle(0, 0, deltab1) # Correction to FK5 system lamb = Angle(lamb, radians=True) lamb = lamb.to_positive() beta = Angle(beta, radians=True) l_prime = lamb - t * (1.397 + t * 0.00031) deltal2 = Angle(0, 0, -0.09033) a = 0.03916 * (cos(l_prime.rad()) + sin(l_prime.rad())) a = a * tan(b.rad()) deltal2 += Angle(0, 0, a) deltab2 = 0.03916 * (cos(l_prime.rad()) - sin(l_prime.rad())) deltab2 = Angle(0, 0, deltab2) # Apply the corrections lamb = lamb + deltal1 + deltal2 beta = beta + deltab1 + deltab2 # Correction for nutation dpsi = nutation_longitude(epoch) lamb += dpsi e = true_obliquity(epoch) ra, dec = ecliptical2equatorial(lamb, beta, e) # Let's compute the elongation angle lons, lats, rs = Sun.apparent_geocentric_position(epoch) lambr = lamb.rad() lsr = lons.rad() betar = beta.rad() elon = acos(cos(betar) * cos(lambr - lsr)) elon = Angle(elon, radians=True) return ra, dec, elon @staticmethod def conjunction(epoch): """This method computes the time of the conjunction closest to the given epoch. :param epoch: Epoch close to the desired conjunction :type epoch: :py:class:`Epoch` :returns: The time when the conjunction happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(2125, 6, 1.0) >>> conj = Saturn.conjunction(epoch) >>> y, m, d = conj.get_date() >>> print(y) 2125 >>> print(m) 8 >>> print(round(d, 4)) 26.4035 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Saturn's conjunction a = 2451681.124 b = 378.091904 m0 = 131.6934 m1 = 12.647487 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 # Compute auxiliary angles aa = 82.74 + 40.76 * t bb = 29.86 + 1181.36 * t cc = 14.13 + 590.68 * t dd = 220.02 + 1262.87 * t # Convert to radians aa = Angle(aa).rad() bb = Angle(bb).rad() cc = Angle(cc).rad() dd = Angle(dd).rad() corr = (0.0172 + t * (-0.0006 + t * 0.00023) + sin(m) * (-8.5885 + t * (0.0411 + t * 0.0002)) + cos(m) * (-1.147 + t * (0.0352 - t * 0.00011)) + sin(2.0 * m) * (0.3331 + t * (-0.0034 - t * 0.00001)) + cos(2.0 * m) * (0.1145 + t * (-0.0045 + t * 0.00002)) + sin(3.0 * m) * (-0.0169 + t * 0.0002) + cos(3.0 * m) * (-0.0109 + t * 0.0004) + sin(aa) * (0.0 + t * (-0.0337 + t * 0.00018)) + cos(aa) * (-0.851 + t * (0.0044 + t * 0.00068)) + sin(bb) * (0.0 + t * (-0.0064 + t * 0.00004)) + cos(bb) * (0.2397 + t * (-0.0012 - t * 0.00008)) + sin(cc) * (0.0 - t * 0.001) + cos(cc) * (0.1245 + t * 0.0006) + sin(dd) * (0.0 + t * (0.0024 - t * 0.00003)) + cos(dd) * (0.0477 + t * (-0.0005 - t * 0.00006))) to_return = jde0 + corr return Epoch(to_return) @staticmethod def opposition(epoch): """This method computes the time of the opposition closest to the given epoch. :param epoch: Epoch close to the desired opposition :type epoch: :py:class:`Epoch` :returns: The time when the opposition happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(-6, 9, 1.0) >>> oppo = Saturn.opposition(epoch) >>> y, m, d = oppo.get_date() >>> print(y) -6 >>> print(m) 9 >>> print(round(d, 4)) 14.3709 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Saturn's opposition a = 2451870.17 b = 378.091904 m0 = 318.0172 m1 = 12.647487 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 # Compute an auxiliary angle aa = 82.74 + 40.76 * t bb = 29.86 + 1181.36 * t cc = 14.13 + 590.68 * t dd = 220.02 + 1262.87 * t # Convert to radians aa = Angle(aa).rad() bb = Angle(bb).rad() cc = Angle(cc).rad() dd = Angle(dd).rad() corr = (-0.0209 + t * (0.0006 + t * 0.00023) + sin(m) * (4.5795 + t * (-0.0312 - t * 0.00017)) + cos(m) * (1.1462 + t * (-0.0351 + t * 0.00011)) + sin(2.0 * m) * (0.0985 - t * 0.0015) + cos(2.0 * m) * (0.0733 + t * (-0.0031 + t * 0.00001)) + sin(3.0 * m) * (0.0025 - t * 0.0001) + cos(3.0 * m) * (0.005 - t * 0.0002) + sin(aa) * (0.0 + t * (-0.0337 + t * 0.00018)) + cos(aa) * (-0.851 + t * (0.0044 + t * 0.00068)) + sin(bb) * (0.0 + t * (-0.0064 + t * 0.00004)) + cos(bb) * (0.2397 + t * (-0.0012 - t * 0.00008)) + sin(cc) * (0.0 - t * 0.001) + cos(cc) * (0.1245 + t * 0.0006) + sin(dd) * (0.0 + t * (0.0024 - t * 0.00003)) + cos(dd) * (0.0477 + t * (-0.0005 - t * 0.00006))) to_return = jde0 + corr return Epoch(to_return) @staticmethod def station_longitude_1(epoch): """This method computes the time of the 1st station in longitude (i.e. when the planet is stationary and begins to move westward - retrograde - among the starts) closest to the given epoch. :param epoch: Epoch close to the desired opposition :type epoch: :py:class:`Epoch` :returns: Time when the 1st station in longitude happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(2018, 11, 1.0) >>> sta1 = Saturn.station_longitude_1(epoch) >>> y, m, d = sta1.get_date() >>> print(y) 2018 >>> print(m) 4 >>> print(round(d, 4)) 17.9433 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Saturn's opposition a = 2451870.17 b = 378.091904 m0 = 318.0172 m1 = 12.647487 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 # Compute an auxiliary angle aa = 82.74 + 40.76 * t bb = 29.86 + 1181.36 * t cc = 14.13 + 590.68 * t dd = 220.02 + 1262.87 * t # Convert to radians aa = Angle(aa).rad() bb = Angle(bb).rad() cc = Angle(cc).rad() dd = Angle(dd).rad() corr = (-68.884 + t * (0.0009 + t * 0.00023) + sin(m) * (5.5452 + t * (-0.0279 - t * 0.0002)) + cos(m) * (3.0727 + t * (-0.043 + t * 0.00007)) + sin(2.0 * m) * (0.1101 + t * (-0.0006 - t * 0.00001)) + cos(2.0 * m) * (0.1654 + t * (-0.0043 + t * 0.00001)) + sin(3.0 * m) * (0.001 + t * 0.0001) + cos(3.0 * m) * (0.0095 - t * 0.0003) + sin(aa) * (0.0 + t * (-0.0337 + t * 0.00018)) + cos(aa) * (-0.851 + t * (0.0044 + t * 0.00068)) + sin(bb) * (0.0 + t * (-0.0064 + t * 0.00004)) + cos(bb) * (0.2397 + t * (-0.0012 - t * 0.00008)) + sin(cc) * (0.0 - t * 0.001) + cos(cc) * (0.1245 + t * 0.0006) + sin(dd) * (0.0 + t * (0.0024 - t * 0.00003)) + cos(dd) * (0.0477 + t * (-0.0005 - t * 0.00006))) to_return = jde0 + corr return Epoch(to_return) @staticmethod def station_longitude_2(epoch): """This method computes the time of the 2nd station in longitude (i.e. when the planet is stationary and begins to move eastward - prograde - among the starts) closest to the given epoch. :param epoch: Epoch close to the desired opposition :type epoch: :py:class:`Epoch` :returns: Time when the 2nd station in longitude happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(2018, 11, 1.0) >>> sta2 = Saturn.station_longitude_2(epoch) >>> y, m, d = sta2.get_date() >>> print(y) 2018 >>> print(m) 9 >>> print(round(d, 4)) 6.4175 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Saturn's opposition a = 2451870.17 b = 378.091904 m0 = 318.0172 m1 = 12.647487 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 # Compute an auxiliary angle aa = 82.74 + 40.76 * t bb = 29.86 + 1181.36 * t cc = 14.13 + 590.68 * t dd = 220.02 + 1262.87 * t # Convert to radians aa = Angle(aa).rad() bb = Angle(bb).rad() cc = Angle(cc).rad() dd = Angle(dd).rad() corr = (68.872 + t * (-0.0007 + t * 0.00023) + sin(m) * (5.9399 + t * (-0.04 - t * 0.00015)) + cos(m) * (-0.7998 + t * (-0.0266 + t * 0.00014)) + sin(2.0 * m) * (0.1738 - t * 0.0032) + cos(2.0 * m) * (-0.0039 + t * (-0.0024 + t * 0.00001)) + sin(3.0 * m) * (0.0073 - t * 0.0002) + cos(3.0 * m) * (0.002 - t * 0.0002) + sin(aa) * (0.0 + t * (-0.0337 + t * 0.00018)) + cos(aa) * (-0.851 + t * (0.0044 + t * 0.00068)) + sin(bb) * (0.0 + t * (-0.0064 + t * 0.00004)) + cos(bb) * (0.2397 + t * (-0.0012 - t * 0.00008)) + sin(cc) * (0.0 - t * 0.001) + cos(cc) * (0.1245 + t * 0.0006) + sin(dd) * (0.0 + t * (0.0024 - t * 0.00003)) + cos(dd) * (0.0477 + t * (-0.0005 - t * 0.00006))) to_return = jde0 + corr return Epoch(to_return) @staticmethod def perihelion_aphelion(epoch, perihelion=True): """This method computes the time of Perihelion (or Aphelion) closer to a given epoch. :param epoch: Epoch close to the desired Perihelion (or Aphelion) :type epoch: :py:class:`Epoch` :param peihelion: If True, the epoch of the closest Perihelion is computed, if False, the epoch of the closest Aphelion is found. :type bool: :returns: The epoch of the desired Perihelion (or Aphelion) :rtype: :py:class:`Epoch` :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(1944, 1, 1.0) >>> e = Saturn.perihelion_aphelion(epoch) >>> y, m, d, h, mi, s = e.get_full_date() >>> print(y) 1944 >>> print(m) 9 >>> print(d) 8 >>> print(h) 1 >>> epoch = Epoch(2047, 1, 1.0) >>> e = Saturn.perihelion_aphelion(epoch, perihelion=False) >>> y, m, d, h, mi, s = e.get_full_date() >>> print(y) 2047 >>> print(m) 7 >>> print(d) 15 >>> print(h) 0 """ if not isinstance(epoch, Epoch): raise TypeError("Invalid input value") # First approximation k = 0.03393 * (epoch.year() - 2003.52) if perihelion: k = round(k) else: k = round(k + 0.5) - 0.5 jde = 2452830.12 + k * (10764.21676 - k * 0.000827) # Compute the epochs three months before and after jde_before = jde - 90.0 jde_after = jde + 90.0 # Compute the Sun-Saturn distance for each epoch l, b, r_b = Saturn.geometric_heliocentric_position(Epoch(jde_before)) l, b, r = Saturn.geometric_heliocentric_position(Epoch(jde)) l, b, r_a = Saturn.geometric_heliocentric_position(Epoch(jde_after)) # Call an interpolation object m = Interpolation([jde_before, jde, jde_after], [r_b, r, r_a]) sol = m.minmax() return Epoch(sol) @staticmethod def passage_nodes(epoch, ascending=True): """This function computes the time of passage by the nodes (ascending or descending) of Saturn, nearest to the given epoch. :param epoch: Epoch closest to the node passage :type epoch: :py:class:`Epoch` :param ascending: Whether the time of passage by the ascending (True) or descending (False) node will be computed :type ascending: bool :returns: Tuple containing: - Time of passage through the node (:py:class:`Epoch`) - Radius vector when passing through the node (in AU, float) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2019, 1, 1) >>> time, r = Saturn.passage_nodes(epoch) >>> year, month, day = time.get_date() >>> print(year) 2034 >>> print(month) 5 >>> print(round(day, 1)) 30.2 >>> print(round(r, 4)) 9.0546 """ if not isinstance(epoch, Epoch): raise TypeError("Invalid input types") # Get the orbital parameters l, a, e, i, ome, arg = Saturn.orbital_elements_mean_equinox(epoch) # Compute the time of passage through perihelion t = Saturn.perihelion_aphelion(epoch) # Get the time of passage through the node time, r = passage_nodes_elliptic(arg, e, a, t, ascending) return time, r @staticmethod def magnitude(sun_dist, earth_dist, delta_u, b): """This function computes the approximate magnitude of Saturn. :param sun_dist: Distance from Saturn to the Sun, in Astronomical Units :type sun_dist: float :param earth_dist: Distance from Saturn to Earth, in Astronomical Units :type earth_dist: float :param delta_u: Difference between the Saturnicentric longitudes of the Sun and the Earth, measured in the plane of the ring :type delta_u: float, :py:class:`Angle` :param b: Saturnicentric latitude of the Earth refered to the plane of the ring, positive towards the north :type b: float, :py:class:`Angle` :returns: Saturn's magnitude :rtype: float :raises: TypeError if input values are of wrong type. >>> sun_dist = 9.867882 >>> earth_dist = 10.464606 >>> delta_u = Angle(16.442) >>> b = Angle(4.198) >>> m = Saturn.magnitude(sun_dist, earth_dist, delta_u, b) >>> print(m) 1.9 """ # WARNING: According to Example 41.d in page 286 of Meeus book, the # result for the example above is 0.9 (instead of 1.9). However, after # carefully checking the formula implemented here, I'm sure that the # book has an error if not (isinstance(sun_dist, float) and isinstance(earth_dist, float) and isinstance(delta_u, (float, Angle)) and isinstance(b, (float, Angle))): raise TypeError("Invalid input types") delta_u = float(delta_u) b = Angle(b).rad() m = (-8.68 + 5.0 * log10(sun_dist * earth_dist) + 0.044 * abs(delta_u) - 2.6 * sin(abs(b)) + 1.25 * sin(b) * sin(b)) return round(m, 1) def main(): # Let's define a small helper function def print_me(msg, val): print("{}: {}".format(msg, val)) # Let's show some uses of Saturn class print("\n" + 35 * "*") print("*** Use of Saturn class") print(35 * "*" + "\n") # Let's now compute the heliocentric position for a given epoch epoch = Epoch(2018, 10, 27.0) lon, lat, r = Saturn.geometric_heliocentric_position(epoch) print_me("Geometric Heliocentric Longitude", lon.to_positive()) print_me("Geometric Heliocentric Latitude", lat) print_me("Radius vector", r) print("") # Compute the geocentric position for 1992/12/20: epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Saturn.geocentric_position(epoch) print_me("Right ascension", ra.ra_str(n_dec=1)) print_me("Declination", dec.dms_str(n_dec=1)) print_me("Elongation", elon.dms_str(n_dec=1)) print("") # Print mean orbital elements for Saturn at 2065.6.24 epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Saturn.orbital_elements_mean_equinox(epoch) print_me("Mean longitude of the planet", round(l, 6)) # 131.196871 print_me("Semimajor axis of the orbit (UA)", round(a, 8)) # 9.55490779 print_me("Eccentricity of the orbit", round(e, 7)) # 0.0553209 print_me("Inclination on plane of the ecliptic", round(i, 6)) # 2.486426 print_me("Longitude of the ascending node", round(ome, 5)) # 114.23974 print_me("Argument of the perihelion", round(arg, 6)) # -19.896331 print("") # Compute the time of the conjunction close to 2125/6/1 epoch = Epoch(2125, 6, 1.0) conj = Saturn.conjunction(epoch) y, m, d = conj.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Conjunction date", date) # Compute the time of the opposition close to -6/9/1 epoch = Epoch(-6, 9, 1.0) oppo = Saturn.opposition(epoch) y, m, d = oppo.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Opposition date", date) print("") # Compute the time of the station in longitude #1 close to 2018/11/1 epoch = Epoch(2018, 11, 1.0) sta1 = Saturn.station_longitude_1(epoch) y, m, d = sta1.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Date of station in longitude #1", date) # Compute the time of the station in longitude #2 close to 2018/11/1 epoch = Epoch(2018, 11, 1.0) sta2 = Saturn.station_longitude_2(epoch) y, m, d = sta2.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Date of station in longitude #2", date) print("") # Find the epoch of the Perihelion closer to 2000/1/1 epoch = Epoch(2000, 1, 1.0) e = Saturn.perihelion_aphelion(epoch) y, m, d, h, mi, s = e.get_full_date() peri = str(y) + '/' + str(m) + '/' + str(d) + ' at ' + str(h) + ' hours' print_me("The Perihelion closest to 2000/1/1 happened on", peri) print("") # Compute the time of passage through an ascending node epoch = Epoch(2019, 1, 1) time, r = Saturn.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) print("Time of passage through ascending node: {}/{}/{}".format(y, m, d)) # 2034/5/30.2 print("Radius vector at ascending node: {}".format(round(r, 4))) # 9.0546 if __name__ == "__main__": main() pymeeus-0.3.6/pymeeus/Sun.py000066400000000000000000000773161355545537700160560ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from math import sin, cos, tan, atan, atan2, asin from pymeeus.Angle import Angle from pymeeus.Epoch import Epoch, JDE2000 from pymeeus.Coordinates import ( mean_obliquity, true_obliquity, nutation_longitude, ecliptical2equatorial, ) from pymeeus.Earth import Earth """ .. module:: Sun :synopsis: Module including functions regarding Sun position :license: GNU Lesser General Public License v3 (LGPLv3) .. moduleauthor:: Dagoberto Salazar """ class Sun(object): """ Class Sun handles the parameters related to the Sun. """ def __init__(self): """Sun constructor. :returns: Sun object. :rtype: :py:class:`Sun` """ @staticmethod def true_longitude_coarse(epoch): """This method provides the Sun's true longitude with a relatively low accuracy of about 0.01 degree. :param epoch: Epoch to compute the position of the Sun :type epoch: :py:class:`Epoch` :returns: A tuple containing the true (ecliptical) longitude (as an Angle object) and the radius vector in astronomical units. :rtype: tuple :raises: TypeError if input value is of wrong type. >>> epoch = Epoch(1992, 10, 13) >>> true_lon, r = Sun.true_longitude_coarse(epoch) >>> print(true_lon.dms_str(n_dec=0)) 199d 54' 36.0'' >>> print(round(r, 5)) 0.99766 """ # First check that input values are of correct types if not (isinstance(epoch, Epoch)): raise TypeError("Invalid input type") # Compute the time in Julian centuries t = (epoch - JDE2000) / 36525.0 # Compute the geometric mean longitude of the Sun l0 = 280.46646 + t * (36000.76983 + t * 0.0003032) l0 = Angle(l0) l0.to_positive() # Now, compute the mean anomaly of the Sun m = 357.52911 + t * (35999.05029 - t * 0.0001537) m = Angle(m) mrad = m.rad() # The eccentricity of the Earth's orbit e = 0.016708634 - t * (0.000042037 + t * 0.0000001267) # Equation of the center c = ( (1.914602 - t * (0.004817 + t * 0.000014)) * sin(mrad) + (0.019993 - t * 0.000101) * sin(2.0 * mrad) + 0.000289 * sin(3.0 * mrad) ) c = Angle(c) true_lon = l0 + c true_anom = m + c # Sun's radius vector r = (1.000001018 * (1.0 - e * e)) / (1.0 + e * cos(true_anom.rad())) return (true_lon, r) @staticmethod def apparent_longitude_coarse(epoch): """This method provides the Sun's apparent longitude with a relatively low accuracy of about 0.01 degree. :param epoch: Epoch to compute the position of the Sun :type epoch: :py:class:`Epoch` :returns: A tuple containing the sun_apparent (ecliptical) longitude (as an Angle object) and the radius vector in astronomical units. :rtype: tuple :raises: TypeError if input value is of wrong type. >>> epoch = Epoch(1992, 10, 13) >>> app_lon, r = Sun.apparent_longitude_coarse(epoch) >>> print(app_lon.dms_str(n_dec=0)) 199d 54' 32.0'' >>> print(round(r, 5)) 0.99766 """ # First check that input values are of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # First find the true longitude sun = Sun() true_lon, r = sun.true_longitude_coarse(epoch) # Compute the time in Julian centuries t = (epoch - JDE2000) / 36525.0 # Then correct for nutation and aberration omega = 125.04 - 1934.136 * t omega = Angle(omega) lambd = true_lon - 0.00569 - 0.00478 * sin(omega.rad()) return (lambd, r) @staticmethod def apparent_rightascension_declination_coarse(epoch): """This method provides the Sun's apparent right ascension and declination with a relatively low accuracy of about 0.01 degree. :param epoch: Epoch to compute the position of the Sun :type epoch: :py:class:`Epoch` :returns: A tuple containing the right ascension and the declination (as Angle objects) and the radius vector in astronomical units. :rtype: tuple :raises: TypeError if input value is of wrong type. >>> epo = Epoch(1992, 10, 13) >>> ra, delta, r = Sun.apparent_rightascension_declination_coarse(epo) >>> print(ra.ra_str(n_dec=1)) 13h 13' 31.4'' >>> print(delta.dms_str(n_dec=0)) -7d 47' 6.0'' >>> print(round(r, 5)) 0.99766 """ # First check that input values are of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Second, find the apparent longitude sun = Sun() app_lon, r = sun.apparent_longitude_coarse(epoch) # Compute the obliquity of the ecliptic e0 = mean_obliquity(epoch) # Compute the time in Julian centuries t = (epoch - JDE2000) / 36525.0 # Then correct for nutation and aberration omega = 125.04 - 1934.136 * t omega = Angle(omega) # Correct the obliquity e = e0 + 0.00256 * cos(omega.rad()) alpha = atan2(cos(e.rad()) * sin(app_lon.rad()), cos(app_lon.rad())) alpha = Angle(alpha, radians=True) alpha.to_positive() delta = asin(sin(e.rad()) * sin(app_lon.rad())) delta = Angle(delta, radians=True) return (alpha, delta, r) @staticmethod def geometric_geocentric_position(epoch, tofk5=True): """This method computes the geometric geocentric position of the Sun for a given epoch, using the VSOP87 theory. :param epoch: Epoch to compute Sun position, as an Epoch object :type epoch: :py:class:`Epoch` :param tofk5: Whether or not the small correction to convert to the FK5 system will be applied or not :type tofk5: bool :returns: A tuple with the geocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(1992, 10, 13.0) >>> l, b, r = Sun.geometric_geocentric_position(epoch, tofk5=False) >>> print(round(l.to_positive(), 6)) 199.907297 >>> print(b.dms_str(n_dec=3)) 0.744'' >>> print(round(r, 8)) 0.99760852 """ # NOTE: In page 169, Meeus gives a different value for the LONGITUDE # (199.907372 degrees) as the one presented above (199.907297 degrees). # After many checks and tests, I came to the conclusion that the result # above is the right one, and Meeus' result is wrong. # On the other hand, the difference in LATITUDE may be due to the fact # that this software uses the complete set of VSOP87C terms, instead of # the abridged version in Meeus' book. # First check that input values are of correct types if not isinstance(epoch, Epoch) and not isinstance(tofk5, bool): raise TypeError("Invalid input types") # Use Earth heliocentric position to compute Sun's geocentric position lon, lat, r = Earth.geometric_heliocentric_position(epoch, tofk5) lon = lon.to_positive() + 180.0 lat = -lat return lon, lat, r @staticmethod def apparent_geocentric_position(epoch, nutation=True): """This method computes the apparent geocentric position of the Sun for a given epoch, using the VSOP87 theory. :param epoch: Epoch to compute Sun position, as an Epoch object :type epoch: :py:class:`Epoch` :param nutation: Whether the nutation correction will be applied :type epoch: bool :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(1992, 10, 13.0) >>> lon, lat, r = Sun.apparent_geocentric_position(epoch) >>> print(lon.to_positive().dms_str(n_dec=3)) 199d 54' 21.548'' >>> print(lat.dms_str(n_dec=3)) 0.721'' >>> print(round(r, 8)) 0.99760852 """ # NOTE: In page 169, Meeus gives a different value for the LONGITUDE # (199d 54' 21.818'') as the one presented above (199d 54' 21.548''). # After many checks and tests, I came to the conclusion that the result # above is the right one, and Meeus' result is wrong. # On the other hand, the difference in LATITUDE may be due to the fact # that this software uses the complete set of VSOP87C terms, instead of # the abridged version in Meeus' book. # First check that input values are of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Use Earth heliocentric position to compute Sun's geocentric position lon, lat, r = Earth.apparent_heliocentric_position(epoch, nutation) lon = lon.to_positive() + 180.0 lat = -lat return lon, lat, r @staticmethod def rectangular_coordinates_mean_equinox(epoch): """This method computes the rectangular geocentric equatorial coordinates (X, Y, Z) of the Sun, referred to the mean equinox of the date. The X axis is directed towards the vernal equinox (longitude 0), the Y axis lies in the plane of the equator and is directed towards longitude 90, and the Z axis is directed towards the north celestial pole. :param epoch: Epoch to compute Sun position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple with the X, Y, Z values in astronomical units :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(1992, 10, 13.0) >>> x, y, z = Sun.rectangular_coordinates_mean_equinox(epoch) >>> print(round(x, 7)) -0.9379963 >>> print(round(y, 6)) -0.311654 >>> print(round(z, 7)) -0.1351207 """ # NOTE: In page 172, Meeus gives slightly different values for x, y, z # as the ones internally computed in the example above. After many # checks and tests, I came to the conclusion that the results above are # the right ones, and Meeus' results are wrong. # First check that input values are of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Get Sun's geocentric position with reduction to FK5 system lon, lat, r = Sun.geometric_geocentric_position(epoch) # Get the mean obliquity epsilon0 = mean_obliquity(epoch) # Change to radians ll = lon.rad() b = lat.rad() e = epsilon0.rad() # Compute the results x = r * cos(ll) y = r * (sin(ll) * cos(e) - sin(b) * sin(e)) z = r * (sin(ll) * sin(e) + sin(b) * cos(e)) return x, y, z @staticmethod def rectangular_coordinates_j2000(epoch): """This method computes the rectangular geocentric equatorial coordinates (X, Y, Z) of the Sun, referred to the standard equinox of J2000.0. The X axis is directed towards the vernal equinox (longitude 0), the Y axis lies in the plane of the equator and is directed towards longitude 90, and the Z axis is directed towards the north celestial pole. :param epoch: Epoch to compute Sun position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple with the X, Y, Z values in astronomical units :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(1992, 10, 13.0) >>> x, y, z = Sun.rectangular_coordinates_j2000(epoch) >>> print(round(x, 8)) -0.93740485 >>> print(round(y, 8)) -0.3131474 >>> print(round(z, 8)) -0.13577045 """ # First check that input values are of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Second, compute Earth heliocentric position referred to J2000.0 lon, lat, r = Earth.geometric_heliocentric_position_j2000(epoch) # Third, convert from Earth's heliocentric to Sun's geocentric lon = lon.to_positive() + 180.0 lat = -lat x = r * cos(lat.rad()) * cos(lon.rad()) y = r * cos(lat.rad()) * sin(lon.rad()) z = r * sin(lat.rad()) x0 = x + 0.00000044036 * y - 0.000000190919 * z y0 = -0.000000479966 * x + 0.917482137087 * y - 0.397776982902 * z z0 = 0.397776982902 * y + 0.917482137087 * z return x0, y0, z0 @staticmethod def rectangular_coordinates_b1950(epoch): """This method computes the rectangular geocentric equatorial coordinates (X, Y, Z) of the Sun, referred to the mean equinox of B1950.0. The X axis is directed towards the vernal equinox (longitude 0), the Y axis lies in the plane of the equator and is directed towards longitude 90, and the Z axis is directed towards the north celestial pole. :param epoch: Epoch to compute Sun position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple with the X, Y, Z values in astronomical units :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(1992, 10, 13.0) >>> x, y, z = Sun.rectangular_coordinates_b1950(epoch) >>> print(round(x, 8)) -0.94149557 >>> print(round(y, 8)) -0.30259922 >>> print(round(z, 8)) -0.11578695 """ # First check that input values are of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Second, compute Earth heliocentric position referred to J2000.0 lon, lat, r = Earth.geometric_heliocentric_position_j2000(epoch) # Third, convert from Earth's heliocentric to Sun's geocentric lon = lon.to_positive() + 180.0 lat = -lat x = r * cos(lat.rad()) * cos(lon.rad()) y = r * cos(lat.rad()) * sin(lon.rad()) z = r * sin(lat.rad()) x = 0.999925702634 * x + 0.012189716217 * y + 0.000011134016 * z y = -0.011179418036 * x + 0.917413998946 * y - 0.397777041885 * z z = -0.004859003787 * x + 0.397747363646 * y + 0.917482111428 * z return x, y, z @staticmethod def rectangular_coordinates_equinox(epoch, equinox_epoch): """This method computes the rectangular geocentric equatorial coordinates (X, Y, Z) of the Sun, referred to an arbitrary mean equinox. The X axis is directed towards the vernal equinox (longitude 0), the Y axis lies in the plane of the equator and is directed towards longitude 90, and the Z axis is directed towards the north celestial pole. :param epoch: Epoch to compute Sun position, as an Epoch object :type epoch: :py:class:`Epoch` :param equinox_epoch: Epoch corresponding to the mean equinox :type equinox_epoch: :py:class:`Epoch` :returns: A tuple with the X, Y, Z values in astronomical units :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(1992, 10, 13.0) >>> e_equinox = Epoch(2467616.0) >>> x, y, z = Sun.rectangular_coordinates_equinox(epoch, e_equinox) >>> print(round(x, 8)) -0.93368986 >>> print(round(y, 8)) -0.32235085 >>> print(round(z, 8)) -0.13977098 """ # First check that input values are of correct types if (not isinstance(epoch, Epoch) and not isinstance(equinox_epoch, Epoch)): raise TypeError("Invalid input types") # Second, compute Sun's rectangular coordinates w.r.t. J2000.0 x0, y0, z0 = Sun.rectangular_coordinates_j2000(epoch) # Third, computed auxiliary angles t = (equinox_epoch - JDE2000) / 36525.0 tt = (epoch - equinox_epoch) / 36525.0 # Compute the conversion parameters zeta = t * ( (2306.2181 + tt * (1.39656 - 0.000139 * tt)) + t * ((0.30188 - 0.000344 * tt) + 0.017998 * t) ) z = t * ( (2306.2181 + tt * (1.39656 - 0.000139 * tt)) + t * ((1.09468 + 0.000066 * tt) + 0.018203 * t) ) theta = t * ( 2004.3109 + tt * (-0.85330 - 0.000217 * tt) + t * (-(0.42665 + 0.000217 * tt) - 0.041833 * t) ) # Redefine the former values as Angles, and compute them in radians zeta = Angle(0, 0, zeta) zetar = zeta.rad() z = Angle(0, 0, z) zr = z.rad() theta = Angle(0, 0, theta) thetar = theta.rad() xx = cos(zetar) * cos(zr) * cos(thetar) - sin(zetar) * sin(zr) xy = sin(zetar) * cos(zr) + cos(zetar) * sin(zr) * cos(thetar) xz = cos(zetar) * sin(thetar) yx = -cos(zetar) * sin(zr) - sin(zetar) * cos(zr) * cos(thetar) yy = cos(zetar) * cos(zr) - sin(zetar) * sin(zr) * cos(thetar) yz = -sin(zetar) * sin(thetar) zx = -cos(zr) * sin(thetar) zy = -sin(zr) * sin(thetar) zz = cos(thetar) xp = xx * x0 + yx * y0 + zx * z0 yp = xy * x0 + yy * y0 + zy * z0 zp = xz * x0 + yz * y0 + zz * z0 return xp, yp, zp @staticmethod def get_equinox_solstice(year, target="spring"): """This method computes the times of the equinoxes or the solstices. :param year: Year we want to compute the equinox or solstice for :type year: int :param target: Corresponding equinox or solstice. It can be "spring", "summer", "autumn", "winter" :type target: str :returns: The instant of time when the equinox or solstice happens :rtype: :py:class:`Epoch` :raises: TypeError if input values are of wrong type. :raises: ValueError if 'target' value is invalid. >>> epoch = Sun.get_equinox_solstice(1962, target="summer") >>> y, m, d, h, mi, s = epoch.get_full_date() >>> print("{}/{}/{} {}:{}:{}".format(y, m, d, h, mi, round(s, 0))) 1962/6/21 21:24:42.0 """ # NOTE: The results from the previous example are computed using the # complete VSOP87 theory. The results provided by Meeus in exercises # 27.a and 27.b are computed with lower accuracy # First check that input values are of correct types if not (isinstance(year, int) and isinstance(target, str)): raise TypeError("Invalid input types") # Second, check that the target is correct if ( (target != "spring") and (target != "summer") and (target != "autumn") and (target != "winter") ): raise ValueError("'target' value is invalid") # Now we can start computing an approximate value (Tables 27.A, 27.B) if (year >= -1000) and (year < 1000): y = year / 1000.0 if target == "spring": jde0 = 1721139.29189 + y * ( 365242.1374 + y * (0.06134 + y * (0.00111 - y * 0.00071)) ) elif target == "summer": jde0 = 1721233.25401 + y * ( 365241.72562 + y * (-0.05323 + y * (0.00907 + y * 0.00025)) ) elif target == "autumn": jde0 = (1721325.70455 + y * (365242.49558 + y * (-0.11677 + y * (-0.00297 + y * 0.00074)))) elif target == "winter": jde0 = (1721414.39987 + y * (363242.88257 + y * (-0.00769 + y * (-0.00933 - y * 0.00006)))) elif (year >= 1000) and (year <= 3000): y = (year - 2000.0) / 1000.0 if target == "spring": jde0 = 2451623.80984 + y * ( 365242.37404 + y * (0.05169 + y * (-0.00411 - y * 0.00057)) ) elif target == "summer": jde0 = 2451716.56767 + y * ( 365241.62603 + y * (0.00325 + y * (0.00888 - y * 0.0003)) ) elif target == "autumn": jde0 = 2451810.21715 + y * ( 365242.01767 + y * (-0.11575 + y * (0.00337 + y * 0.00078)) ) elif target == "winter": jde0 = (2451900.05952 + y * (365242.74049 + y * (-0.06223 + y * (-0.00823 + y * 0.00032)))) else: raise ValueError("'year' value out of range") k = ["spring", "summer", "autumn", "winter"].index(target) epoch = Epoch(jde0) corr = 1.0 while abs(corr) > 0.0000025: lon, lat, r = Sun.apparent_geocentric_position(epoch) arg = k * 90.0 - lon.to_positive() arg = Angle(arg) corr = 58.0 * sin(arg.rad()) epoch += corr epoch -= corr return epoch @staticmethod def equation_of_time(epoch): """This method computes the equation of time for a given epoch, understood as the difference between apparent and mean time, or the difference between the hour angle of the true Sun and the mean Sun. :param epoch: Epoch to compute the equation of time, as an Epoch object :type epoch: :py:class:`Epoch` :returns: Difference between apparent and mean time, as a tuple, in minutes and seconds of time :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(1992, 10, 13.0) >>> m, s = Sun.equation_of_time(epoch) >>> print(m) 13 >>> print(round(s, 1)) 42.6 """ # First check that input values are of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Compute time in Julian millenia from J2000.0 t = (epoch - JDE2000) / 365250 l0 = (280.4664567 + t * (360007.6982779 + t * (0.03032028 + t * (1.0 / 49931.0 + t * (-1.0 / 15300.0 - t * 1.0 / 2000000.0))))) l0 = Angle(l0) l0 = l0.to_positive() # Compute the apparent position of the Sun lon, lat, r = Sun.apparent_geocentric_position(epoch) # Now, get the true obliquity epsilon = true_obliquity(epoch) # Transform from eclliptical to equatorial coordinates alpha, dec = ecliptical2equatorial(lon, lat, epsilon) alpha = alpha.to_positive() # Now we need the nutation in longitude deltapsi = nutation_longitude(epoch) e = l0() - 0.0057183 - alpha + deltapsi * cos(epsilon.rad()) e *= 4.0 # Extract seconds s = (abs(e) % 1) * 60.0 m = int(e) return m, s @staticmethod def ephemeris_physical_observations(epoch): """This method uses Carrington's formulas to compute the following quantities: - P : position angle of the northern extremity of the axis of rotation - B0 : heliographic latitude of the center of the solar disk - L0 : heliographic longitude of the center of the solar disk :param epoch: Epoch to compute the parameters :type epoch: :py:class:`Epoch` :returns: Parameters P, B0 and L0, in a tuple :rtype: tuple :raises: TypeError if input value is of wrong type. >>> epoch = Epoch(1992, 10, 13) >>> p, b0, l0 = Sun.ephemeris_physical_observations(epoch) >>> print(round(p, 2)) 26.27 >>> print(round(b0, 2)) 5.99 >>> print(round(l0, 2)) 238.63 """ # First check that input values are of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Compute the auxiliary parameters epoch += 0.00068 theta = (epoch() - 2398220.0) * 360.0 / 25.38 theta = Angle(theta) i = Angle(7.25) k = 73.6667 + 1.3958333 * (epoch() - 2396758.0) / 36525.0 k = Angle(k) lon, lat, r = Sun.apparent_geocentric_position(epoch, nutation=False) eps = true_obliquity(epoch) dpsi = nutation_longitude(epoch) lonp = lon + dpsi x = atan(-cos(lonp.rad()) * tan(eps.rad())) x = Angle(x, radians=True) delta = lon - k y = atan(-cos(delta.rad()) * tan(i.rad())) y = Angle(y, radians=True) p = x + y b0 = asin(sin(delta.rad()) * sin(i.rad())) b0 = Angle(b0, radians=True) eta = atan(tan(delta.rad()) * cos(i.rad())) eta = Angle(eta, radians=True) l0 = eta - theta return p, b0, l0.to_positive() @staticmethod def beginning_synodic_rotation(number): """This method calculates the epoch when the Carrington's synodic rotation No. 'number' starts. :param number: Number of Carrington's synodic rotation :type number: int :returns: Epoch when the provided rotation starts :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. >>> epoch = Sun.beginning_synodic_rotation(1699) >>> print(round(epoch(), 3)) 2444480.723 """ # First check that input values are of correct types if not isinstance(number, int): raise TypeError("Invalid input type") # Apply formula (29.1) jde = 2398140.227 + 27.2752316*number # Now, find the correction using formula (29.2) m = 281.96 + 26.882476*number m = Angle(m) m = m.rad() delta = 0.1454 * sin(m) - 0.0085 * sin(2.0 * m) - 0.0141 * cos(2.0 * m) # Apply the correction jde += delta return Epoch(jde) def main(): # Let's define a small helper function def print_me(msg, val): print("{}: {}".format(msg, val)) # Let's show some uses of Sun functions print("\n" + 35 * "*") print("*** Use of Sun class") print(35 * "*" + "\n") # Compute an approximation of the Sun's true longitude epoch = Epoch(1992, 10, 13) true_lon, r = Sun.true_longitude_coarse(epoch) print_me("Sun's approximate true longitude", true_lon.dms_str(n_dec=0)) # 199d 54' 36.0'' print_me("Sun's radius vector", round(r, 5)) # 0.99766 print("") # Now let's compute the Sun's approximate apparent longitude app_lon, r = Sun.apparent_longitude_coarse(epoch) print_me("Sun's approximate apparent longitude", app_lon.dms_str(n_dec=0)) # 199d 54' 32.0'' print("") # And now is the turn for the apparent right ascension and declination ra, delta, r = Sun.apparent_rightascension_declination_coarse(epoch) print_me("Sun's apparent right ascension", ra.ra_str(n_dec=1)) # 13h 13' 31.4'' print_me("Sun's apparent declination", delta.dms_str(n_dec=0)) # -7d 47' 6.0'' print("") # Let's compute Sun's postion, but more accurately epoch = Epoch(1992, 10, 13.0) l, b, r = Sun.geometric_geocentric_position(epoch, tofk5=False) print_me("Geometric Geocentric Longitude", round(l.to_positive(), 6)) # 199.906016 print_me("Geometric Geocentric Latitude", b.dms_str(n_dec=3)) # 0.644'' print_me("Radius vector", round(r, 8)) # 0.99760775 print("") # Compute Sun's apparent postion l, b, r = Sun.apparent_geocentric_position(epoch) print_me("Apparent Geocentric Longitude", l.to_positive().dms_str(n_dec=3)) # 199d 54' 16.937'' print_me("Apparent Geocentric Latitude", b.dms_str(n_dec=3)) # 0.621'' print_me("Radius vector", round(r, 8)) # 0.99760775 print("") # We can compute rectangular coordinates referred to mean equinox of date x, y, z = Sun.rectangular_coordinates_mean_equinox(epoch) print("Rectangular coordinates referred to mean equinox of date:") print_me("X", round(x, 7)) # -0.9379963 print_me("Y", round(y, 6)) # -0.311654 print_me("Z", round(z, 7)) # -0.1351207 print("") # Now, compute rectangular coordinates w.r.t. standard equinox J2000.0 x, y, z = Sun.rectangular_coordinates_j2000(epoch) print("Rectangular coordinates w.r.t. standard equinox J2000.0:") print_me("X", round(x, 8)) # -0.93740485 print_me("Y", round(y, 8)) # -0.3131474 print_me("Z", round(z, 8)) # -0.12456646 print("") # Compute rectangular coordinates w.r.t. mean equinox of B1950.0 x, y, z = Sun.rectangular_coordinates_b1950(epoch) print("Rectangular coordinates w.r.t. mean equinox of B1950.0:") print_me("X", round(x, 8)) # -0.94149557 print_me("Y", round(y, 8)) # -0.30259922 print_me("Z", round(z, 8)) # -0.11578695 print("") # Compute rectangular coordinates w.r.t. an arbitrary mean equinox e_equinox = Epoch(2467616.0) x, y, z = Sun.rectangular_coordinates_equinox(epoch, e_equinox) print("Rectangular coordinates w.r.t. an arbitrary mean equinox:") print_me("X", round(x, 8)) # -0.93373777 print_me("Y", round(y, 8)) # -0.32235109 print_me("Z", round(z, 8)) # -0.12856709 print("") # We can compute the date of equinoxes and solstices epoch = Sun.get_equinox_solstice(1962, target="summer") y, m, d, h, mi, s = epoch.get_full_date() print("The summer solstice of 1962:") print("{}/{}/{} {}:{}:{}".format(y, m, d, h, mi, round(s, 0))) # 1962/6/21 21:24:42.0 epoch = Sun.get_equinox_solstice(2018, target="autumn") y, m, d, h, mi, s = epoch.get_full_date() print("The autumn equinox of 2018:") print("{}/{}/{} {}:{}:{}".format(y, m, d, h, mi, round(s, 0))) # 2018/9/23 1:55:14.0 print("") # The equation of time, i.e., the difference between apparent and mean # time, can be easily computed epoch = Epoch(1992, 10, 13.0) m, s = Sun.equation_of_time(epoch) print("Equation of time difference: {} min {} secs".format(m, round(s, 1))) # 13m 42.6s print("") # Compute the ephemeris of physical observations of the Sun using # Carrington's formulas epoch = Epoch(1992, 10, 13) p, b0, l0 = Sun.ephemeris_physical_observations(epoch) print("Ephemeris of physical observations of the Sun:") print_me("P ", round(p, 2)) # 26.27 print_me("B0", round(b0, 2)) # 5.99 print_me("L0", round(l0, 2)) # 238.63 print("") # Get the epoch when the Carrington's synodic rotation No. 'number' starts epoch = Sun.beginning_synodic_rotation(1699) print_me("Epoch for Carrington's synodic rotation No. 1699", round(epoch(), 3)) # 2444480.723 if __name__ == "__main__": main() pymeeus-0.3.6/pymeeus/Uranus.py000066400000000000000000006541331355545537700165640ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from math import sin, cos, tan, acos, atan2, sqrt, radians, log10 from pymeeus.Angle import Angle from pymeeus.Epoch import Epoch, JDE2000 from pymeeus.Interpolation import Interpolation from pymeeus.Coordinates import ( geometric_vsop_pos, apparent_vsop_pos, orbital_elements, nutation_longitude, true_obliquity, ecliptical2equatorial, passage_nodes_elliptic ) from pymeeus.Earth import Earth from pymeeus.Sun import Sun """ .. module:: Uranus :synopsis: Class to model Uranus planet :license: GNU Lesser General Public License v3 (LGPLv3) .. moduleauthor:: Dagoberto Salazar """ VSOP87_L = [ # L0 [ [548129294.299, 0.00000000000, 0.00000000000], [9260408.252, 0.89106421530, 74.78159856730], [1504247.826, 3.62719262195, 1.48447270830], [365981.718, 1.89962189068, 73.29712585900], [272328.132, 3.35823710524, 149.56319713460], [70328.499, 5.39254431993, 63.73589830340], [68892.609, 6.09292489045, 76.26607127560], [61998.592, 2.26952040469, 2.96894541660], [61950.714, 2.85098907565, 11.04570026390], [26468.869, 3.14152087888, 71.81265315070], [25710.505, 6.11379842935, 454.90936652730], [21078.897, 4.36059465144, 148.07872442630], [17818.665, 1.74436982544, 36.64856292950], [14613.471, 4.73732047977, 3.93215326310], [11162.535, 5.82681993692, 224.34479570190], [10997.934, 0.48865493179, 138.51749687070], [9527.487, 2.95516893093, 35.16409022120], [7545.543, 5.23626440666, 109.94568878850], [4220.170, 3.23328535514, 70.84944530420], [4051.850, 2.27754158724, 151.04766984290], [3354.607, 1.06549008887, 4.45341812490], [2926.671, 4.62903695486, 9.56122755560], [3490.352, 5.48305567292, 146.59425171800], [3144.093, 4.75199307603, 77.75054398390], [2922.410, 5.35236743380, 85.82729883120], [2272.790, 4.36600802756, 70.32818044240], [2051.209, 1.51773563459, 0.11187458460], [2148.599, 0.60745800902, 38.13303563780], [1991.726, 4.92437290826, 277.03499374140], [1376.208, 2.04281409054, 65.22037101170], [1666.910, 3.62744580852, 380.12776796000], [1284.183, 3.11346336879, 202.25339517410], [1150.416, 0.93344454002, 3.18139373770], [1533.223, 2.58593414266, 52.69019803950], [1281.641, 0.54269869505, 222.86032299360], [1372.100, 4.19641615561, 111.43016149680], [1220.998, 0.19901396193, 108.46121608020], [946.195, 1.19249463066, 127.47179660680], [1150.993, 4.17898207045, 33.67961751290], [1244.342, 0.91612680579, 2.44768055480], [1072.008, 0.23564502877, 62.25142559510], [1090.461, 1.77501638912, 12.53017297220], [707.875, 5.18285226584, 213.29909543800], [653.401, 0.96586909116, 78.71375183040], [627.562, 0.18210181975, 984.60033162190], [524.495, 2.01276706996, 299.12639426920], [559.370, 3.35776737704, 0.52126486180], [606.827, 5.43209728952, 529.69096509460], [404.891, 5.98689011389, 8.07675484730], [467.211, 0.41484068933, 145.10977900970], [471.288, 1.40664336447, 184.72728735580], [483.219, 2.10553990154, 0.96320784650], [395.614, 5.87039580949, 351.81659230870], [433.532, 5.52142978255, 183.24281464750], [309.885, 5.83301304674, 145.63104387150], [378.609, 2.34975805006, 56.62235130260], [398.996, 0.33810765436, 415.55249061210], [300.379, 5.64353974146, 22.09140052780], [249.229, 4.74617120584, 225.82926841020], [239.334, 2.35045874708, 137.03302416240], [294.172, 5.83916826225, 39.61750834610], [216.480, 4.77847481363, 340.77089204480], [251.792, 1.63696775578, 221.37585028530], [219.621, 1.92212987979, 67.66805156650], [201.963, 1.29693040865, 0.04818410980], [224.097, 0.51574863468, 84.34282612290], [216.549, 6.14211862702, 5.93789083320], [222.588, 2.84309380331, 0.26063243090], [207.828, 5.58020570040, 68.84370773410], [187.474, 1.31924326253, 0.16005869440], [158.028, 0.73811997211, 54.17467074780], [199.146, 0.95634155010, 152.53214255120], [168.648, 5.87874000882, 18.15924726470], [170.300, 3.67717520688, 5.41662597140], [193.652, 1.88800122606, 456.39383923560], [192.998, 0.91616058506, 453.42489381900], [181.934, 3.53624029238, 79.23501669220], [173.145, 1.53860728054, 160.60889739850], [164.588, 1.42379714838, 106.97674337190], [171.968, 5.67952685533, 219.89137757700], [162.792, 3.05029377666, 112.91463420510], [146.653, 1.26300172265, 59.80374504030], [139.453, 5.38597723400, 32.19514480460], [138.585, 4.25994786673, 909.81873305460], [143.058, 1.29995487555, 35.42472265210], [123.840, 1.37359990336, 7.11354700080], [104.414, 5.02820888813, 0.75075952540], [103.277, 0.68095301267, 14.97785352700], [94.741, 0.90674090409, 74.66972398270], [82.978, 2.92828718445, 265.98929347750], [110.163, 2.02685778976, 554.06998748280], [94.226, 3.94266328260, 74.89347315190], [79.858, 1.01446829180, 6.59228213900], [109.376, 5.70581833286, 77.96299230500], [85.876, 1.70649435603, 82.85835341460], [103.562, 1.45770270246, 24.37902238820], [74.667, 4.63177552576, 69.36497259590], [79.919, 3.00974084247, 297.64192156090], [84.502, 0.36887189574, 186.21176006410], [88.810, 0.52481330563, 181.75834193920], [70.303, 1.18986880009, 66.70484372000], [69.965, 0.87476081875, 305.34616939270], [69.927, 3.76102749315, 131.40394986990], [84.604, 5.88725183325, 256.53994050650], [74.341, 6.24271323846, 447.79581952650], [62.310, 0.16901376623, 479.28838891550], [72.726, 2.84892775693, 462.02291352810], [69.060, 4.43934854374, 39.35687591520], [76.568, 4.58721110340, 6.21977512350], [73.387, 4.27603448634, 87.31177153950], [55.307, 1.49636544147, 71.60020482960], [57.291, 1.63015165542, 143.62530630140], [61.661, 3.18604743524, 77.22927912210], [57.634, 3.67180685401, 51.20572533120], [50.289, 1.12279384633, 20.60692781950], [53.744, 5.51890986247, 128.95626931510], [57.894, 2.66877593418, 381.61224066830], [58.112, 1.58629352171, 60.76695288680], [45.382, 0.48053933052, 14.01464568050], [37.581, 6.06822931932, 211.81462272970], [38.640, 3.43597050177, 153.49535039770], [46.087, 4.36201639577, 75.74480641380], [40.088, 4.57333927519, 46.20979048510], [34.229, 2.93967782207, 140.00196957900], [38.669, 5.58941074168, 99.16062095550], [34.827, 1.02792863024, 203.73786788240], [40.024, 0.69889667397, 218.40690486870], [32.538, 4.21625657443, 200.76892246580], [31.865, 5.50961503408, 72.33391801250], [41.695, 3.82438031124, 81.00137369080], [34.795, 0.39363490236, 1.37259812370], [39.775, 6.05600836903, 293.18850343600], [27.577, 2.18261286374, 125.98732389850], [36.279, 1.66586085405, 258.02441321480], [35.442, 1.96652806541, 835.03713448730], [35.361, 3.72258690030, 692.58748435350], [27.323, 2.10164372072, 209.36694217490], [26.530, 4.48265986115, 373.90799283650], [34.472, 1.07907945481, 191.20769491020], [29.915, 3.87358632506, 259.50888592310], [26.233, 3.63172504384, 490.33408917940], [25.848, 0.54461409359, 41.64449777560], [26.989, 6.27711247734, 28.57180808220], [26.391, 5.81110061049, 75.30286342910], [34.227, 6.05617272657, 275.55052103310], [24.279, 3.18776564878, 81.37388070630], [29.937, 1.88789751816, 269.92144674060], [26.235, 6.20105251336, 134.58534360760], [22.754, 0.92919725789, 288.08069400530], [25.180, 5.42547381962, 116.42609634290], [22.715, 0.53098783687, 1514.29129671650], [26.485, 4.77176167929, 284.14854074220], [27.008, 4.75281624832, 41.10198105440], [21.972, 4.58613057386, 404.50679034820], [22.012, 1.84389287183, 617.80588578620], [24.694, 4.70875195490, 378.64329525170], [28.949, 0.17127584792, 528.20649238630], [20.492, 0.10285646641, 195.13984817330], [20.696, 5.62143477633, 55.65914345610], [25.843, 0.74627159338, 278.51946644970], [22.990, 3.58378694661, 1.59634729290], [21.843, 0.05733533568, 173.94221952280], [19.050, 2.30351091243, 5.10780943070], [20.675, 2.64113858585, 105.49227066360], [21.856, 5.87352402691, 45.57665103870], [21.120, 1.98081790016, 114.39910691340], [19.279, 2.84304025179, 159.12442469020], [19.061, 0.50598371738, 67.35923502580], [20.434, 3.77601951414, 135.54855145410], [17.326, 4.47793157645, 120.35824960600], [20.547, 0.88695598555, 255.05546779820], [19.320, 1.48569290504, 0.89377187730], [21.331, 2.74470023060, 28.31117565130], [17.582, 4.09139636700, 296.15744885260], [15.918, 3.94525074972, 17.52610781830], [15.562, 0.92748407689, 300.61086697750], [16.439, 0.30868798605, 30.71067209630], [15.237, 4.93048601827, 7.42236354150], [19.284, 6.21950083268, 329.83706636550], [13.860, 0.56255266406, 144.14657116320], [16.206, 2.30292598693, 344.70304530790], [16.041, 0.19723295436, 103.09277421860], [14.414, 2.57606243208, 230.56457082540], [16.789, 4.93540052916, 565.11568774670], [17.052, 1.81844925116, 294.67297614430], [16.766, 0.27542186330, 73.81839072080], [15.428, 1.91577056305, 96.87299909510], [15.718, 3.87095025861, 98.89998852460], [11.923, 6.17545505441, 44.72531777680], [12.407, 6.22419970167, 80.19822453870], [13.040, 1.99652993223, 27.08733537390], [13.229, 3.43782440072, 227.31374111850], [11.669, 4.31526860843, 426.59819087600], [14.378, 5.78353646474, 1059.38193018920], [15.879, 0.98454960055, 6208.29425142410], [11.158, 1.74417430690, 220.41264243880], [11.989, 5.84388657950, 13.33332212430], [11.386, 2.55925734515, 19.12245511120], [13.281, 5.39472153462, 391.17346822390], [12.295, 4.57340278496, 23.57587323610], [12.827, 1.77410269070, 180.27386923090], [11.651, 4.29138607818, 142.44965013380], [12.248, 2.44241346243, 100.38446123290], [12.421, 2.32591770919, 80.71948940050], [9.774, 0.39898140151, 7.86430652620], [13.172, 2.74099358938, 177.87437278590], [12.262, 5.42795591646, 831.10498122420], [10.272, 5.90194483926, 74.52096613640], [9.317, 3.75869700774, 74.82978267710], [10.701, 4.00709797731, 235.39049596580], [9.243, 5.38492199672, 20.44686912510], [9.461, 2.60126707172, 92.30770638560], [12.066, 5.52163100220, 74.26033370550], [10.836, 1.88393779293, 241.61027108930], [9.317, 1.16483658310, 74.73341445750], [10.718, 5.50310449842, 187.69623277240], [12.057, 6.02120050390, 154.01661525950], [9.124, 1.15458738606, 0.63313944640], [11.526, 6.26425302826, 155.78297225810], [12.200, 5.79400179483, 1364.72809958190], [10.979, 5.76614513865, 628.85158605010], [8.532, 5.18016456150, 1.64453140270], [8.660, 3.78133822411, 74.94165726170], [11.227, 1.30788626675, 604.47256366190], [10.531, 1.05867421534, 291.70403072770], [8.446, 3.52020067595, 756.32338265690], [10.291, 5.30493908317, 75.04223099820], [8.015, 6.24347048958, 543.02428721890], [7.796, 5.23497582886, 58.10682401090], [9.310, 1.65210713729, 24.11838995730], [8.642, 1.14285691458, 74.62153987290], [7.797, 4.00208030502, 31.49256938900], [8.915, 3.63129389881, 408.43894361130], [7.191, 4.24536221306, 110.20632121940], [9.764, 0.10205649809, 366.48562929500], [8.710, 2.25910759480, 451.94042111070], [9.430, 2.00492467431, 331.32153907380], [9.008, 1.63146330622, 443.86366626340], [7.247, 4.35313018726, 88.11492069160], [7.659, 0.61918159043, 50.40257617910], [6.836, 5.12190844483, 0.80314915210], [9.367, 1.42664537007, 414.06801790380], [8.136, 0.45279998999, 25.60286266560], [9.199, 2.41000352664, 10138.50394764370], [6.896, 5.85017813531, 339.28641933650], [6.487, 6.03397141885, 1.22384027740], [7.186, 4.00480285222, 157.63995198190], [8.130, 0.21907525983, 422.66603761290], [8.022, 2.09953974305, 92.94084583200], [6.371, 4.47820781123, 79.88940799800], [7.957, 5.86499639179, 760.25553592000], [8.383, 2.33782809093, 417.03696332040], [7.931, 3.41952210669, 7.70424783180], [6.613, 1.39197711439, 16.67477455640], [7.142, 5.57864813931, 4.73530241520], [7.441, 0.48121969777, 68.18931642830], [7.187, 0.50441238918, 457.87831194390], [6.613, 2.84628770892, 142.14083359310], [6.399, 3.88681409308, 74.03083904190], [6.140, 1.65776909220, 350.33211960040], [7.053, 0.13890020306, 306.83064210100], [6.010, 5.46434004640, 48.75804477640], [6.810, 6.15448079403, 67.88049988760], [5.982, 2.36098472874, 2.00573757010], [5.709, 1.49928444044, 206.18554843720], [6.843, 1.08172913275, 465.95506679120], [6.408, 5.07331258075, 4.66586644600], [7.805, 3.98866710061, 3.62333672240], [5.527, 5.57881556653, 2.92076130680], [5.521, 3.38225987040, 149.45132255000], [6.107, 1.95504762856, 216.92243216040], [5.692, 2.83076925167, 260.99335863140], [6.586, 2.71085048651, 329.72519178090], [5.826, 3.98800970226, 347.88443904560], [5.745, 0.49160564101, 0.37250701550], [5.473, 5.69158856279, 1.69692102940], [4.982, 2.40870746521, 342.25536475310], [6.040, 4.78944090986, 558.00214074590], [5.317, 2.78403764459, 13.49338081870], [5.090, 5.47747622578, 372.42352012820], [4.894, 1.77082918618, 333.65734504400], [5.389, 2.94076732149, 9.40116886120], [4.757, 5.37129102802, 61.28821774860], [5.000, 3.43988321744, 518.64526483070], [5.664, 3.30309284254, 0.65439130580], [5.530, 0.45092393824, 162.09337010680], [5.746, 3.45964923866, 55.13787859430], [5.666, 1.23578675332, 328.35259365720], [5.071, 5.42033080481, 977.48678462110], [5.719, 0.66718965817, 92.04707395470], [4.994, 1.29267872727, 983.11585891360], [5.570, 2.36255927193, 6.90109867970], [5.189, 2.40682220291, 58.31927233200], [5.502, 0.13301359232, 149.67507171920], [4.706, 1.85473330365, 119.50691634410], [4.305, 4.18171934306, 90.82323367730], [5.953, 1.73036741041, 152.74459087230], [5.607, 5.53187692339, 1087.69310584050], [5.591, 5.75072223569, 358.93013930950], [4.441, 0.97726075887, 4.19278569400], [4.608, 3.31800103668, 89.75945209430], [4.677, 5.01422713233, 43.12897048390], [4.034, 1.08242564328, 75.53235809270], [5.626, 1.10270225604, 66.91729204110], [4.058, 1.94012136050, 17.26547538740], [4.770, 2.24207019076, 986.08480433020], [5.207, 1.36600428910, 767.36908292080], [4.940, 0.13733547633, 0.85133326190], [4.339, 5.33814728291, 152.01087768940], [3.917, 3.85320550575, 2.28762186040], [3.903, 5.87573410158, 16.46232623530], [4.655, 0.93665017107, 267.47376618580], [4.638, 5.42566923517, 16.04163511000], [5.177, 3.40845690805, 1289.94650101460], [3.825, 0.59888105730, 210.33015002140], [5.048, 2.16732539242, 367.97010200330], [3.819, 1.70901925915, 5.62907429250], [5.004, 0.26759264038, 403.13419222450], [4.202, 5.12029089394, 19.01058052660], [4.472, 2.88978371811, 59.28248017850], [4.700, 4.17709035394, 130.44074202340], [4.487, 0.85521839581, 969.62247809490], [3.802, 4.59721371468, 25.86349509650], [4.024, 4.98868930941, 30.05628079050], [4.722, 6.16359211847, 173.68158709190], [4.732, 3.76697693308, 373.01422095920], [3.542, 0.76768843819, 114.13847448250], [3.370, 2.00021522907, 286.59622129700], [3.626, 3.20240733896, 991.71387862270], [4.028, 0.46802022168, 387.24131496080], [3.442, 5.20959733350, 894.84087952760], [3.273, 5.46374958434, 192.69216761850], [3.291, 3.97847646998, 264.50482076920], [3.291, 1.62538722379, 681.54178408960], [3.198, 3.96580804800, 146.38180339690], [4.016, 1.40657464840, 383.09671337660], [3.844, 3.60271287642, 0.59070083100], [3.123, 4.50215520755, 1439.50969814920], [3.434, 5.18704419009, 97.41551581630], [3.123, 4.14198630214, 76.47851959670], [3.259, 1.65410614252, 214.78356814630], [3.557, 4.15769848885, 68.56182344380], [2.934, 2.95575531139, 120.99138905240], [2.914, 3.69930995976, 874.39401040250], [3.301, 2.14570582133, 253.57099508990], [3.362, 4.82277888708, 19.64371997300], [3.218, 2.56428709831, 60.55450456570], [3.059, 3.57539890234, 117.91056905120], [3.073, 3.54739757836, 95.38852638680], [2.789, 0.65190913388, 42.53826965290], [3.235, 5.31608088666, 546.95644048200], [3.657, 5.89905956226, 16.15350969460], [3.549, 2.76314903735, 82.48584639910], [3.627, 4.68663059919, 593.42686339800], [3.306, 1.57486085317, 312.45971639350], [3.602, 2.51921910142, 22.89454967990], [3.431, 4.95532928836, 49.72125262290], [2.675, 2.41314606353, 29.20494752860], [3.101, 1.42849885249, 17.63798240290], [3.399, 3.02815712113, 88.79624424780], [3.379, 2.65894323745, 771.30123618390], [2.547, 6.10642153361, 455.87257437380], [2.967, 0.31461418738, 150.52640498110], [2.681, 1.16839594153, 477.80391620720], [3.343, 3.09880618811, 552.58551477450], [2.678, 1.42841144096, 1.11196569280], [2.540, 1.94053883528, 6.48040755440], [2.491, 2.97226347939, 453.94615868080], [2.744, 1.93313970916, 73.18525127440], [2.935, 4.59394106280, 167.08930495290], [3.007, 1.38745560615, 365.00115658670], [3.053, 1.91792962252, 561.18353448360], [2.496, 5.45540866674, 66.18357885820], [2.622, 1.46324659292, 33.13710079170], [3.203, 4.01683757076, 555.55446019110], [2.317, 1.13727677715, 43.24084506850], [2.341, 5.87635018071, 228.27694896500], [2.841, 3.60234459541, 42.58645376270], [2.858, 1.53714262537, 353.30106501700], [2.484, 3.85791009894, 104.00779795530], [2.903, 5.21967656512, 73.40900044360], [2.760, 1.21343315367, 32.24332891440], [2.269, 3.31411391807, 4.14460158420], [2.241, 2.65636547591, 70.11573212130], [2.246, 4.08175081363, 123.53964334370], [2.583, 2.38305971478, 100.64509366380], [2.761, 5.71758409791, 43.28902917830], [2.827, 6.16734582851, 101.86893394120], [2.838, 0.54888495490, 20.49505323490], [2.145, 4.04195315408, 47.06112374700], [2.810, 1.90169260186, 273.10284047830], [2.922, 2.79808700183, 418.26080359780], [2.070, 5.50402718290, 47.69426319340], [2.071, 2.01973573060, 316.39186965660], [2.520, 3.12740527423, 905.88657979150], [2.170, 4.46196560050, 2.70831298570], [2.399, 3.78849518316, 75.58474771940], [2.746, 4.82558024832, 6.85291456990], [2.717, 2.33108458294, 404.61866493280], [2.416, 4.11932546205, 332.80601178210], [1.974, 5.79881978458, 11.15757484850], [1.967, 5.43918682709, 199.28444975750], [2.282, 2.79530897096, 22.63391724900], [1.910, 0.27727117649, 69.15252427480], [2.471, 3.51033894778, 8.59801970910], [1.904, 3.45282024423, 472.17484191470], [2.606, 0.43601023323, 439.78275515400], [2.663, 5.43112910549, 3265.83082813250], [2.058, 1.69362390174, 65.87476231750], [2.258, 5.32927779367, 908.33426034630], [1.873, 5.55399805910, 175.16605980020], [2.222, 0.96973865202, 39.09624348430], [2.121, 2.00302088316, 106.01353552540], [2.010, 1.49945418027, 29.22619938800], [2.222, 4.36573603431, 468.24268865160], [2.055, 0.05798973044, 205.22234059070], [2.086, 0.44287700052, 10.29494073850], [1.770, 4.32048805830, 0.45757438700], [2.112, 5.78682409103, 486.40193591630], [1.909, 0.82888506421, 254.94359321360], [1.973, 6.05826379648, 78.40493528970], [1.908, 5.55892482384, 15.49911838880], [1.888, 6.20874408008, 198.32124191100], [2.092, 2.55561831566, 49.50880430180], [1.775, 6.17741514589, 258.87574647670], [2.146, 1.40508118810, 526.72201967800], [1.800, 0.04238718337, 334.29048449040], [1.738, 1.99152421966, 77.06922042770], [1.641, 3.36410541913, 118.02244363580], [2.084, 5.21275540105, 134.06407874580], [1.861, 2.97480744198, 178.78939652260], [1.750, 2.01731567093, 142.66209845490], [1.600, 1.60963172329, 40.16002506730], [1.668, 1.53361997245, 0.83008140250], [1.769, 4.72689497119, 32.71640966640], [1.782, 2.60469159465, 166.82867252200], [1.765, 5.57583636983, 522.57741809380], [1.877, 1.09044005603, 274.06604832480], [1.544, 1.91798419140, 303.86169668440], [1.532, 3.44973397383, 124.50285119020], [1.658, 5.23946791059, 233.90602325750], [1.743, 2.32369273283, 290.21955801940], [1.528, 0.62020771152, 1033.35837639830], [1.522, 6.11272567668, 165.60483224460], [1.496, 2.02190170195, 150.08446199640], [1.490, 3.30997217921, 820.05928096030], [1.398, 3.41567259878, 4.99593484610], [1.886, 6.25585539882, 162.89651925890], [1.388, 0.62745508416, 448.68959140380], [1.918, 0.91483173263, 1819.63746610920], [1.682, 2.11545135265, 189.72322220190], [1.711, 2.55731536599, 1108.13997496560], [1.598, 0.89607036108, 115.88357962170], [1.477, 0.22838214106, 370.93904741990], [1.727, 1.54005322759, 401.64971951620], [1.432, 3.73381952953, 8.90683624980], [1.338, 0.19338311739, 81.89514556810], [1.618, 6.02595306259, 31.23193695810], [1.452, 0.11827434627, 72.77586099720], [1.626, 4.26332651029, 369.45457471160], [1.284, 3.18389639039, 362.86229257260], [1.755, 5.57436830525, 344.96367773880], [1.451, 4.42615381750, 189.18070548070], [1.294, 2.77775613125, 63.62402371880], [1.712, 2.16785817753, 536.80451209540], [1.266, 2.78408709208, 55.77101804070], [1.700, 2.49908604932, 441.26722786230], [1.645, 2.41257585783, 10.08249241740], [1.666, 5.00664377609, 79.51690098250], [1.674, 0.00394784675, 491.55792945680], [1.334, 5.62972572008, 129.91947716160], [1.328, 0.25606135840, 114.94162363460], [1.176, 1.63208422172, 84.18276742850], [1.177, 4.10449248614, 103.35340664950], [1.384, 5.73004529870, 89.33876096900], [1.287, 0.99537181009, 14.66903698630], [1.171, 5.98078310685, 57.14361616440], [1.126, 3.39586759408, 375.39246554480], [1.406, 5.18477940039, 113.87784205160], [1.397, 1.49751443233, 14.22709400160], [1.206, 3.60301196272, 480.77286162380], [1.113, 4.80418427391, 9.44935297100], [1.434, 1.57158177893, 419.74527630610], [1.473, 1.03881736383, 1215.16490244730], [1.311, 2.99704179684, 458.84151979040], [1.453, 6.10676427884, 64.69910614990], [1.070, 3.16542344402, 54.33472944220], [1.389, 2.78512263875, 26.02355379090], [1.203, 0.20627563214, 0.56944897160], [1.343, 5.58004577468, 95.22846769240], [1.062, 2.40616687148, 154.97982310600], [1.399, 1.66776602336, 240.38643081190], [1.036, 5.53891715915, 403.02231763990], [1.269, 2.37684527290, 37.87240320690], [1.197, 4.87553746725, 1044.40407666220], [1.009, 2.74619462960, 80.41067285980], [1.330, 0.99603813295, 483.22054217860], [1.348, 0.58829539202, 476.43131808350], [0.989, 3.31666847329, 18.91000679010], [1.054, 2.85972567059, 616.32141307790], [1.276, 4.72938141859, 691.10301164520], [1.219, 3.62909689220, 106.27416795630], [1.269, 1.53301050628, 280.96714700450], [0.968, 2.73688433893, 218.92816973050], [1.330, 5.69234088687, 694.07195706180], [1.121, 2.80542439790, 148.59998928810], [0.980, 6.04026702553, 5.46901559810], [1.235, 0.61136787453, 237.67811782620], [1.161, 5.32209024820, 369.08206769610], [0.944, 1.14261861393, 384.05992122310], [1.017, 2.49896409345, 147.11551657980], [1.082, 2.46236323548, 326.86812094890], [1.037, 5.92126063748, 4.82592514040], [1.232, 5.83725190224, 63.84777288800], [0.914, 0.36627060914, 10.93382567930], [1.165, 5.32140830393, 308.31511480930], [0.952, 4.78982033367, 93.90405367850], [0.993, 3.39918521663, 10.78506783300], [1.206, 3.64530500530, 699.70103135430], [0.893, 2.97140509591, 248.46318565920], [0.883, 2.85605198817, 15.19030184810], [0.875, 3.43925709280, 3.08082000120], [1.103, 4.80576195766, 6133.51265285680], [1.178, 6.01576659565, 377.15882254340], [0.974, 2.51206761828, 121.84272231430], [0.865, 5.68958102479, 141.69889060840], [0.974, 3.15729174941, 215.43795945210], [0.847, 0.84854843713, 2043.98226181110], [0.961, 0.22181374419, 0.91502373670], [1.167, 2.37544946421, 33.94024994380], [1.013, 3.43778868786, 36.90919536040], [0.838, 1.63355479706, 2.33580597020], [1.113, 2.50989694970, 405.99126305650], [0.987, 1.14030030863, 82.20396210880], [1.060, 1.70915765427, 438.29828244570], [0.829, 2.97491446672, 62.77269045690], [0.991, 4.44869793177, 406.10313764110], [0.952, 6.13897716036, 184.98791978670], [1.033, 4.19932839584, 141.48644228730], [1.029, 5.13205530996, 157.26744496640], [0.805, 3.11000318272, 93.79217909390], [0.865, 4.44578048207, 295.19424100610], [0.921, 4.88190545687, 12.00890811040], [0.949, 5.99910796869, 606.76018552230], [0.991, 1.68012021428, 40.58071619260], [0.854, 0.37823682862, 217.23124870110], [0.883, 2.36224385140, 3.77209456870], [1.016, 3.90745585959, 194.28851491140], [0.807, 5.93051451738, 302.09533968580], [0.879, 0.52695940866, 1057.89745748090], [1.009, 1.19621149495, 490.07345674850], [0.801, 4.96724351781, 661.09491496450], [0.843, 0.97496000705, 73.88782669000], [1.028, 2.65189503651, 477.91579079180], [0.846, 3.36343733960, 40.84134862350], [0.772, 4.93551925711, 425.11371816770], [0.781, 0.59382881638, 97.67614824720], [0.770, 4.25621058806, 488.84961647110], [0.935, 1.24971148781, 624.91943278700], [0.984, 4.44298060183, 171.65459766240], [0.806, 0.09410536829, 440.68227252570], [0.769, 4.09296452529, 140.65636088480], [0.802, 0.78515729603, 11.84884941600], [1.007, 4.06909438635, 76.15419669100], [0.935, 0.03808890956, 156.15547927360], [0.712, 5.35549696452, 610.69233878540], [0.911, 4.70177653335, 81.68269724700], [0.926, 3.09765550633, 833.55266177900], [0.812, 3.54377377085, 149.40313844020], [0.801, 5.48034970408, 21.97952594320], [0.900, 4.21739347020, 778.41478318470], [0.689, 2.56862945159, 109.31254934210], [0.685, 3.19965828980, 31.65262808340], [0.952, 4.82579978820, 1744.85586754190], [0.724, 2.16878848875, 1171.87587326900], [0.897, 3.94746491183, 75.67537044460], [0.739, 5.45802693622, 252.65597135320], [0.821, 4.26046087515, 1246.65747183630], [0.663, 5.83767831921, 86.63044798330], [0.664, 1.72432848951, 216.48048917570], [0.721, 3.98089320988, 902.70518605380], [0.663, 4.98388191647, 958.57677783100], [0.750, 2.66119349235, 363.51668387840], [0.828, 3.62849315181, 14.81779483260], [0.663, 3.23521229496, 207.88246946660], [0.681, 3.29667467046, 25.06034594440], [0.887, 4.81199147907, 155.50108796780], [0.646, 2.65129054432, 685.47393735270], [0.808, 5.68764955594, 280.00393915800], [0.619, 1.32296886424, 193.65537546500], [0.621, 2.57837200005, 703.63318461740], [0.854, 3.63173686962, 411.62033734900], [0.728, 1.05845783695, 916.93228005540], [0.733, 0.75817076935, 44.09217833040], [0.629, 1.52747752455, 397.39324334740], [0.599, 5.30671888409, 180.16199464630], [0.615, 5.68908944293, 25.27279426550], [0.709, 0.64922689354, 14.55716240170], [0.729, 4.79389069212, 479.40026350010], [0.667, 1.98320895029, 37.61177077600], [0.586, 1.51157853976, 668.20846196530], [0.639, 1.69085181319, 262.47783133970], [0.616, 4.62035066985, 12.26954054130], [0.687, 2.24368916079, 228.79821382680], [0.599, 2.08317681783, 149.30256470370], [0.597, 3.14660293947, 137.55428902420], [0.581, 2.69049614736, 823.99143422340], [0.709, 4.38514100216, 184.09414790940], [0.671, 3.46925958949, 105.38039607900], [0.619, 2.91325544152, 236.87496867410], [0.558, 2.96177194880, 34.20088237470], [0.648, 5.56457931302, 140.96517742550], [0.581, 0.55427680962, 331.20966448920], [0.585, 0.15548306049, 232.42155054920], [0.548, 3.57525860446, 497.44763618020], [0.574, 5.60908001848, 118.87377689770], [0.702, 1.74156189506, 149.04193227280], [0.543, 0.49890445043, 133.10087089930], [0.716, 3.04149734724, 131.92521473170], [0.544, 6.22369103738, 149.61138124440], [0.539, 0.74276113752, 911.30320576290], [0.614, 5.83710659138, 181.05576652360], [0.601, 0.30768922616, 407.58761034940], [0.635, 4.03476459045, 136.06981631590], [0.526, 5.42874995984, 450.97721326420], [0.547, 3.07676037032, 204.70107572890], [0.622, 3.08666523105, 268.43697403230], [0.537, 4.25467814241, 217.44369702220], [0.566, 4.84686444604, 842.15068148810], [0.636, 2.57425168783, 621.73803904930], [0.623, 5.84341335807, 52.80207262410], [0.544, 3.62983006500, 149.51501302480], [0.578, 0.34796271917, 139.48070471720], [0.537, 5.99181083831, 246.97871295090], [0.674, 2.57972741298, 602.98809095360], [0.539, 6.19662961610, 696.51963761660], [0.516, 2.19916575703, 458.09076026500], [0.632, 5.26658553640, 67.07735073550], [0.581, 0.05320320337, 95.93104310800], [0.504, 6.24600928623, 149.72325582900], [0.638, 6.23121553223, 10063.72234907640], [0.528, 0.20662780149, 310.17209453310], [0.537, 2.96207822442, 73.13706716460], [0.508, 5.29969144068, 335.77495719870], [0.487, 2.83772541949, 143.93412284210], [0.537, 3.36808372143, 252.08652238160], [0.632, 5.88494938125, 920.86443331850], [0.523, 6.13183488285, 1589.07289528380], [0.579, 0.04597861846, 563.63121503840], [0.613, 0.34938781762, 343.47920503050], [0.495, 2.89212499810, 61.44827644300], [0.623, 0.71740350315, 513.07988101300], [0.498, 2.53375871592, 41.75637236020], [0.564, 2.01612524784, 449.28029223480], [0.480, 0.10535023009, 69.67378913660], [0.494, 3.25187012728, 428.08266358430], [0.536, 5.81149025999, 282.66406803390], [0.468, 0.89483830828, 541.53981451060], [0.533, 2.44239677121, 393.46109008430], [0.589, 6.24067076234, 29.79564835960], [0.465, 0.25006743710, 57.25549074900], [0.622, 3.89339038121, 416.77633088950], [0.519, 2.72375973888, 469.13646052890], [0.498, 1.76422801185, 380.38840039090], [0.596, 0.83642843095, 98.35747180340], [0.459, 0.39052216206, 197.79997704920], [0.574, 2.86366933069, 170.76082578510], [0.518, 3.38058345605, 535.91074021810], [0.564, 1.20395155832, 832.58945393250], [0.556, 4.39974034374, 196.62432088160], [0.537, 3.93637064940, 460.53844081980], [0.482, 2.41562148830, 827.92358748650], [0.578, 2.39644032176, 1670.07426897460], [0.475, 4.19223519775, 271.40591944890], [0.452, 3.99146251480, 135.33610313300], [0.514, 6.11377193423, 1894.41906467650], [0.531, 3.45607724228, 450.45594840240], [0.492, 5.87591888758, 170.17012495410], [0.588, 2.66953705406, 310.97524368520], [0.564, 1.04491117370, 446.31134681820], [0.440, 5.85084571537, 224.23292111730], [0.441, 2.19799439287, 119.39504175950], [0.549, 6.05651523611, 76.37794586020], [0.573, 2.29898526750, 122.47586176070], [0.473, 4.61187869812, 291.26208774300], [0.553, 4.90464199013, 463.50738623640], [0.599, 1.48666209087, 149.82382956550], [0.499, 3.72896978991, 853.19638175200], [0.440, 5.05024690419, 79.44746501330], [0.558, 0.42332722744, 283.62727588040], [0.458, 4.49655973916, 754.83890994860], [0.449, 1.32861330901, 308.68762182480], [0.565, 0.45628024105, 241.87090352020], [0.510, 3.70202346104, 452.46168597250], [0.404, 0.12335821240, 1097.09427470170], [0.409, 4.02092464698, 735.87651353180], [0.464, 3.82915608692, 1094.54602041040], [0.439, 2.72266354653, 376.19561469690], [0.478, 0.23380952322, 1182.92157353290], [0.412, 1.21971515436, 419.48464387520], [0.546, 0.22296640745, 829.62050851590], [0.510, 2.69499052512, 412.58354519550], [0.409, 2.51935747849, 409.07208305770], [0.451, 0.56137272347, 758.77106321170], [0.399, 0.86037315330, 337.80194662820], [0.393, 0.40202463200, 107.49800823370], [0.494, 5.02745190154, 619.29035849450], [0.404, 0.08539758465, 18.96239641680], [0.504, 4.18251931021, 449.49274055590], [0.406, 3.80082989682, 34.53095077480], [0.545, 2.80919248176, 514.56435372130], [0.390, 1.65941826256, 447.20511869550], [0.448, 2.81540452771, 400.16524680790], [0.405, 4.86073222353, 1404.08497549710], [0.476, 1.61050626902, 54.28654533240], [0.406, 1.29798079034, 226.79247625670], [0.526, 5.35780726572, 838.21852822500], [0.403, 2.75405589772, 285.11174858870], [0.381, 4.97702366598, 309.27832265580], [0.448, 1.37926537411, 745.27768239300], [0.419, 0.90546724862, 451.72797278960], [0.450, 1.92391706975, 474.94684537520], [0.474, 5.54351717465, 494.26624244250], [0.460, 5.09575399931, 289.56516671360], [0.455, 3.14755087330, 168.57377766120], [0.372, 4.87645271422, 116.53797092750], [0.479, 1.08512503555, 154.29849954980], [0.374, 0.16389070181, 1190.78588005910], [0.422, 3.51871257208, 706.81457835510], [0.354, 4.06405413226, 124.29040286910], [0.494, 4.57924296149, 167.72244439930], [0.357, 5.78050145791, 1265.56747862640], [0.402, 2.67652703260, 464.47059408290], [0.370, 2.21677703856, 232.04904353370], [0.462, 4.10424305270, 27.72047482030], [0.364, 3.07518732480, 442.63982598600], [0.403, 1.69214233165, 90.28071695610], [0.348, 1.16647947937, 357.44566660120], [0.443, 1.32306861852, 298.23262239190], [0.386, 4.34980428548, 227.52618943960], [0.337, 5.92030047826, 445.34813897170], [0.356, 2.38824200660, 511.59540830470], [0.357, 3.19265737844, 21.19762865050], [0.406, 3.72223708907, 3116.26763099790], [0.341, 3.05116722794, 15.78100267910], [0.379, 4.72472516443, 30.59879751170], [0.400, 0.71868453904, 836.52160719560], [0.370, 0.17259001853, 6531.66165626500], [0.456, 0.83408547295, 674.80074410430], [0.376, 5.91068811321, 1617.38407093510], [0.392, 1.90856045571, 25863.55834587229], [0.333, 4.77074940789, 76.78733613740], [0.332, 0.85699402720, 749.20983565610], [0.321, 3.88221470645, 38.60611638980], [0.321, 2.59404134515, 1300.99220127850], [0.438, 2.60178805278, 224.45667028650], [0.371, 3.73501205989, 328.24071907260], [0.357, 0.03656571669, 148.81243760920], [0.389, 3.06990362181, 1012.91150727320], [0.392, 3.14428599675, 125.18417474640], [0.326, 2.23565995627, 89.59939339990], [0.314, 4.56810921721, 1681.11996923850], [0.333, 4.37613329736, 147.96684984170], [0.326, 4.15448016748, 21.14944454070], [0.371, 4.09066371754, 239.16259053450], [0.372, 1.12230345314, 321.76031151820], [0.305, 6.12924444546, 19.97378837310], [0.407, 3.65906570714, 679.25416222920], [0.406, 3.58469900333, 26013.12154300690], [0.310, 3.92339533494, 229.08009811710], [0.321, 1.35118535306, 172.45774681450], [0.332, 3.54513021513, 288.73508531110], [0.312, 2.87878773413, 806.72595883600], [0.372, 1.99953045718, 192.80404220310], [0.302, 0.01867543539, 501.37978944330], [0.299, 3.96468960950, 20277.00789528740], [0.308, 2.66235795286, 248.72381809010], [0.298, 3.52867456736, 21.45826108140], [0.370, 3.51061046963, 91.45637312370], [0.297, 0.79872983355, 742.99006053260], [0.414, 4.81163687199, 589.49471013490], [0.302, 5.26079338050, 27.56041612590], [0.314, 3.14643487607, 361.37781986430], [0.356, 4.63707521448, 442.75170057060], [0.357, 3.44793069844, 44.61344319220], [0.370, 4.25032151516, 304.23420369990], [0.366, 5.43115395433, 625.99451521810], [0.365, 0.30454498410, 6283.07584999140], [0.322, 2.32892248876, 229.45260513260], [0.369, 3.28573365074, 104.52906281710], [0.327, 2.98588869318, 348.84764689210], [0.315, 3.66842071994, 230.93707784090], [0.356, 0.90433599977, 29.74746424980], [0.384, 0.91820739126, 549.72844394250], [0.317, 3.86462587284, 639.89728631400], [0.333, 4.95319798125, 881.50755740330], [0.285, 4.09883967296, 904.18965876210], [0.338, 5.65177488491, 195.77298761970], [0.365, 0.57418860616, 285.63301345050], [0.363, 0.98999016221, 839.70300093330], [0.330, 2.26308969695, 49.17873590170], [0.335, 2.25619157817, 272.58157561650], [0.376, 5.87496858487, 268.95823889410], [0.362, 4.94491380965, 572.22923474750], [0.320, 5.58342880588, 459.36278465220], [0.299, 2.86286938521, 883.79517926370], [0.286, 2.49409963193, 156.04360468900], [0.272, 3.62976505444, 754.03576079650], [0.349, 2.34615857088, 6069.77675455340], [0.279, 4.04872155075, 180.79513409270], [0.328, 1.21350330743, 148.19059901090], [0.315, 0.74270298817, 320.27583880990], [0.324, 5.54296698387, 1507.17774971570], [0.266, 4.36134021576, 1310.39337013970], [0.262, 5.84934968714, 450.17406411210], [0.280, 5.05848320657, 102.52332524700], [0.347, 4.70068639620, 282.14280317210], [0.342, 5.47365149093, 163.57784281510], [0.364, 3.29301824378, 378.90392768260], [0.330, 4.63426494882, 341.99473232220], [0.259, 2.43682741156, 170.01006625970], [0.336, 3.79029047358, 9999.98645077300], [0.284, 2.52583672467, 266.10116806210], [0.281, 3.93593342516, 194.17664032680], [0.297, 0.18595848541, 491.81856188770], [0.290, 4.49575150721, 151.85081899500], [0.284, 1.59495665161, 336.83873878170], [0.255, 5.85817353877, 229.34073054800], [0.260, 5.92834225312, 455.06942522170], [0.274, 0.53977064975, 380.23964254460], [0.259, 3.15728797958, 454.74930783290], [0.303, 0.17851964142, 384.58118608490], [0.285, 1.29732672572, 25.12978191360], [0.273, 4.18776699292, 177.30492381430], [0.326, 1.68159391466, 161.72086309130], [0.321, 2.36931686576, 2274.54683263650], [0.241, 3.57660492473, 150.31395666000], [0.273, 3.78780099400, 380.01589337540], [0.265, 3.02540120552, 454.79749194270], [0.265, 6.06087280189, 455.02124111190], [0.279, 3.82392760479, 31.54075349880], [0.273, 2.64820862667, 838.00607990390], [0.238, 5.17487170793, 263.02034806090], [0.299, 3.94906046599, 531.97858695500], [0.317, 2.28289083599, 44.07092647100], [0.250, 1.35950829789, 304.12232911530], [0.312, 2.73327875294, 442.37919355510], [0.314, 3.86400459047, 734.45573129830], [0.251, 0.15148137746, 221.16340196420], [0.272, 5.71864670101, 164.54105066160], [0.305, 4.96642198943, 1140.38330388000], [0.282, 5.46073788901, 550.13783421970], [0.273, 5.68721459468, 92.41958097020], [0.256, 0.88787970870, 418.52143602870], [0.229, 5.02021405557, 144.89733068860], [0.231, 5.70236752870, 132.88842257820], [0.218, 2.05623736180, 303.05854753230], [0.300, 1.76109447754, 371.52974825090], [0.216, 2.97122807313, 176.65053250850], [0.224, 3.12798198868, 188.92007304980], [0.212, 1.30757526083, 74.14845912090], [0.238, 4.65119406609, 385.75684225250], [0.216, 0.07086910120, 893.35640681930], [0.262, 5.78959872639, 635.96513305090], [0.250, 4.47327859711, 551.10104206620], [0.222, 1.64692618955, 76.42612997000], [0.254, 2.61838408005, 525.23754696970], [0.284, 4.13290731223, 544.50875992720], [0.262, 2.82476092056, 971.10695080320], [0.266, 4.12467258610, 375.67434983510], [0.212, 3.61675003296, 75.41473801370], [0.253, 3.14224867483, 270.18207917150], [0.250, 4.32883971376, 346.44815044710], [0.273, 1.95676918609, 402.21916848780], [0.259, 1.96371242284, 968.13800538660], [0.238, 1.29663338057, 421.18156490460], [0.243, 5.94961177434, 117.36805233000], [0.241, 4.70849619029, 406.95447090300], [0.216, 3.31232425021, 190.66517818900], [0.201, 1.23733749784, 799.61241183520], [0.223, 0.98087204684, 627.36711334180], [0.226, 1.66139333004, 1366.21257229020], [0.205, 0.33839683950, 143.34342201110], [0.240, 0.71559872262, 525.75881183150], [0.223, 2.57722930616, 981.63138620530], [0.193, 4.48974066435, 172.19711438360], [0.221, 2.88670838151, 238.90195810360], [0.177, 3.87122035013, 389.68899551560], [0.175, 5.85737374379, 170.71264167530], [0.233, 0.63169996424, 980.66817835880], [0.225, 4.81504648561, 88.27497938600], [0.210, 2.49819501106, 128.43500445330], [0.172, 0.91255921858, 210.85141488320], [0.176, 3.85133296117, 605.95703637020], [0.211, 1.72999855867, 10213.28554621100], [0.170, 1.61405340100, 1512.80682400820], [0.216, 1.54874566441, 1060.86640289750], [0.194, 6.07381783144, 520.12973753900], [0.170, 2.58526747515, 1515.77576942480], [0.172, 1.45073604378, 995.64603188580], [0.160, 4.20015913513, 433.71173787680], [0.219, 1.63985385568, 630.33605875840], [0.219, 1.96273394194, 313.68355667090], [0.159, 3.62343846627, 73.97844941520], [0.206, 0.83764718449, 104.83787935780], [0.203, 0.68701289007, 1363.24362687360], [0.158, 0.81666479221, 987.56927703850], [0.172, 2.97938676702, 327.43756992050], [0.147, 2.15517092627, 73.24894174920], [0.156, 1.29643469200, 216.26804085460], [0.153, 3.77492020946, 768.85355562910], [0.147, 4.74903152642, 73.34530996880], [0.198, 2.80749830888, 225.30800354840], [0.179, 0.35410767087, 421.22974901440], [0.204, 3.47423038287, 564.85505531580], [0.172, 2.88420642820, 233.53351624200], [0.195, 3.09114364733, 294.30046912880], [0.181, 4.75684139861, 71.15826184490], [0.160, 3.16134209902, 70.04629615210], [0.155, 2.07144269719, 91.24392480260], [0.154, 3.37462128317, 138.40562228610], [0.192, 6.19629054455, 312.19908396260], [0.162, 0.60896273267, 73.03649342810], [0.172, 2.01712700688, 973.55463135800], [0.145, 1.72582731815, 302.37722397610], [0.170, 2.97437423989, 3191.04922956520], [0.153, 0.11158566352, 138.62937145530], [0.164, 5.37129563471, 457.35704708210], [0.132, 3.15466226029, 523.47118997110], [0.137, 2.88313323946, 765.88461021250], [0.128, 1.75773421717, 77.70235987410], [0.173, 5.03552846066, 415.29185818120], [0.137, 4.77137510538, 73.45718455340], [0.163, 0.99316178485, 94.42531854030], [0.138, 4.68330115148, 517.16079212240], [0.133, 2.95376828791, 75.15410558280], [0.134, 1.35779558361, 249.94765836750], [0.168, 4.73164542970, 108.72184851110], [0.119, 1.48229220689, 237.41748539530], [0.134, 1.52277177920, 154.67100656530], [0.117, 5.48642273610, 437.64389113990], [0.131, 5.76525548944, 75.43598987310], [0.127, 2.38309227230, 208.84567731310], [0.115, 4.38951350436, 343.21857259960], [0.114, 4.48142283161, 224.86606056370], [0.117, 5.37802827323, 293.70976829780], [0.136, 2.80772094137, 374.49869366750], ], # L1 [ [7502543121.646, 0.00000000000, 0.00000000000], [154458.244, 5.24201658072, 74.78159856730], [24456.413, 1.71255705309, 1.48447270830], [9257.828, 0.42844639064, 11.04570026390], [8265.977, 1.50220035110, 63.73589830340], [7841.715, 1.31983607251, 149.56319713460], [3899.105, 0.46483574024, 3.93215326310], [2283.777, 4.17367533997, 76.26607127560], [1926.600, 0.53013080152, 2.96894541660], [1232.727, 1.58634458237, 70.84944530420], [791.206, 5.43641224143, 3.18139373770], [766.954, 1.99555409575, 73.29712585900], [481.671, 2.98401996914, 85.82729883120], [449.798, 4.13826237508, 138.51749687070], [445.600, 3.72300400331, 224.34479570190], [426.554, 4.73126059388, 71.81265315070], [347.735, 2.45372261286, 9.56122755560], [353.752, 2.58324496886, 148.07872442630], [317.084, 5.57855232072, 52.69019803950], [179.920, 5.68367730922, 12.53017297220], [171.084, 3.00060075287, 78.71375183040], [205.585, 2.36263144251, 2.44768055480], [158.029, 2.90931969498, 0.96320784650], [189.068, 4.20242881378, 56.62235130260], [154.670, 5.59083925605, 4.45341812490], [183.762, 0.28371004654, 151.04766984290], [143.464, 2.59049246726, 62.25142559510], [151.984, 2.94217326890, 77.75054398390], [153.515, 4.65186885939, 35.16409022120], [121.452, 4.14839204920, 127.47179660680], [115.546, 3.73224603791, 65.22037101170], [102.022, 4.18754517993, 145.63104387150], [101.718, 6.03385875009, 0.11187458460], [88.202, 3.99035787994, 18.15924726470], [87.549, 6.15520787584, 202.25339517410], [80.530, 2.64124743934, 22.09140052780], [72.047, 6.04545933578, 70.32818044240], [68.570, 4.05071895264, 77.96299230500], [59.173, 3.70413919082, 67.66805156650], [47.267, 3.54312460519, 351.81659230870], [42.534, 5.72357370899, 5.41662597140], [44.339, 5.90865821911, 7.11354700080], [35.605, 3.29197259183, 8.07675484730], [35.524, 3.32784616138, 71.60020482960], [36.116, 5.89964278801, 33.67961751290], [30.608, 5.46414592601, 160.60889739850], [31.454, 5.62015632303, 984.60033162190], [38.544, 4.91519003848, 222.86032299360], [34.996, 5.08034112149, 38.13303563780], [30.811, 5.49591403863, 59.80374504030], [28.947, 4.51867390414, 84.34282612290], [26.627, 5.54127301037, 131.40394986990], [29.866, 1.65980844667, 447.79581952650], [29.206, 1.14722640419, 462.02291352810], [25.753, 4.99362028417, 137.03302416240], [25.373, 5.73584678604, 380.12776796000], [21.672, 2.80556379586, 69.36497259590], [26.605, 6.14640604128, 299.12639426920], [22.995, 2.24925345862, 111.43016149680], [19.246, 3.55645739672, 54.17467074780], [21.780, 0.93285892393, 213.29909543800], [19.338, 1.86249384092, 108.46121608020], [16.153, 3.10208165842, 14.97785352700], [13.126, 1.95385539499, 87.31177153950], [13.907, 1.54149045800, 340.77089204480], [13.549, 4.38455126720, 5.93789083320], [13.102, 5.88301410143, 6.21977512350], [11.810, 0.32615567587, 35.42472265210], [10.980, 1.69230280951, 45.57665103870], [12.351, 0.32823896833, 51.20572533120], [10.906, 5.97068444790, 265.98929347750], [11.446, 3.37831545858, 72.33391801250], [12.013, 3.60395709253, 269.92144674060], [11.662, 1.74504271366, 79.23501669220], [13.777, 2.69028726334, 225.82926841020], [12.006, 5.34430562395, 152.53214255120], [9.866, 5.50316093605, 153.49535039770], [10.436, 4.16875643286, 24.37902238820], [10.632, 3.06875158069, 284.14854074220], [9.613, 0.49590148788, 209.36694217490], [9.283, 3.54479191952, 41.64449777560], [9.536, 5.60054956443, 82.85835341460], [9.740, 1.01087744586, 68.84370773410], [9.187, 4.49472579228, 20.60692781950], [10.159, 3.51765739489, 529.69096509460], [8.612, 3.88869873588, 60.76695288680], [10.030, 4.64790204580, 77.22927912210], [8.689, 1.96813580258, 195.13984817330], [8.370, 4.40914764204, 134.58534360760], [9.273, 3.93291227900, 39.61750834610], [7.784, 5.35626068469, 75.74480641380], [7.724, 5.77176047568, 73.81839072080], [7.683, 4.44252070929, 14.01464568050], [8.355, 2.44425910430, 146.59425171800], [7.954, 5.73093878181, 184.72728735580], [7.465, 2.18972405572, 145.10977900970], [6.430, 0.84582374839, 32.19514480460], [6.257, 2.17085130003, 74.89347315190], [7.911, 0.17275924476, 120.35824960600], [7.036, 4.12047266896, 191.20769491020], [6.860, 2.13462553365, 116.42609634290], [5.191, 3.11155355454, 106.97674337190], [4.798, 2.25093144226, 46.20979048510], [4.566, 3.45427648666, 0.75075952540], [4.401, 3.94058045671, 6.59228213900], [4.214, 5.17805765625, 144.14657116320], [4.409, 0.24427052932, 92.94084583200], [4.866, 1.15344187054, 112.91463420510], [4.744, 5.18229292013, 81.00137369080], [4.332, 2.52429167546, 99.16062095550], [3.876, 2.78430217652, 565.11568774670], [3.801, 0.75133837939, 58.10682401090], [4.146, 5.84943984597, 221.37585028530], [3.885, 4.95626104286, 125.98732389850], [3.815, 3.23004401930, 479.28838891550], [3.679, 5.28098232097, 66.91729204110], [3.479, 2.95514470947, 74.66972398270], [3.514, 4.90090391308, 28.31117565130], [4.515, 4.15474629145, 344.70304530790], [4.036, 2.28903172191, 109.94568878850], [4.266, 2.68534591099, 7.86430652620], [3.428, 0.02846652682, 140.00196957900], [3.644, 5.32002093810, 408.43894361130], [3.252, 1.44975192429, 128.95626931510], [4.143, 1.89070487241, 277.03499374140], [3.177, 0.04197149544, 220.41264243880], [3.901, 6.25926496244, 0.89377187730], [3.787, 0.02516903921, 152.74459087230], [3.200, 0.52009458683, 2.28762186040], [2.995, 1.94615440691, 80.19822453870], [4.029, 5.24603808726, 96.87299909510], [3.302, 4.81033551060, 422.66603761290], [3.189, 6.26156603400, 456.39383923560], [2.804, 1.35626949052, 404.50679034820], [2.970, 0.54327361056, 159.12442469020], [3.465, 5.88337990735, 16.67477455640], [3.518, 4.99649404130, 36.64856292950], [3.081, 2.82772472086, 453.42489381900], [3.320, 1.56223495893, 23.57587323610], [2.573, 6.19617997586, 135.54855145410], [2.547, 5.19937103778, 173.94221952280], [2.534, 1.85452635674, 490.33408917940], [3.106, 6.07067928601, 142.44965013380], [3.302, 1.02846689671, 297.64192156090], [2.429, 1.33640100979, 211.81462272970], [2.792, 3.89897022917, 358.93013930950], [2.947, 5.31528985588, 55.13787859430], [2.449, 3.44007536754, 206.18554843720], [2.407, 4.38551271701, 60.55450456570], [2.425, 2.22643225523, 66.70484372000], [2.295, 2.31690029267, 31.49256938900], [2.225, 0.41365126245, 81.37388070630], [2.196, 0.76281798713, 17.52610781830], [2.301, 3.60815987923, 288.08069400530], [2.557, 0.73679737974, 200.76892246580], [2.158, 2.61924330277, 13.33332212430], [2.048, 6.27204714771, 98.89998852460], [2.054, 3.61072687338, 333.65734504400], [2.190, 2.49696729700, 76.47851959670], [2.092, 1.66496421654, 235.39049596580], [2.206, 2.35938756479, 347.88443904560], [2.469, 4.70656858928, 186.21176006410], [2.226, 5.97327738150, 1514.29129671650], [1.851, 2.19455296942, 203.73786788240], [1.865, 4.98207204280, 5.10780943070], [2.171, 5.49034081907, 373.01422095920], [1.999, 5.80509154216, 146.38180339690], [1.903, 4.32950489567, 49.50880430180], [1.732, 3.94794012202, 24.11838995730], [1.747, 2.46883637489, 55.65914345610], [1.833, 3.35110048460, 143.62530630140], [1.686, 1.28621563322, 103.09277421860], [1.720, 2.35857527806, 1.64453140270], [1.641, 2.99507314472, 391.17346822390], [1.610, 0.97420709262, 977.48678462110], [1.696, 4.98332661473, 387.24131496080], [1.527, 3.15107379811, 7.42236354150], [1.570, 1.61119571428, 991.71387862270], [1.497, 2.89637638984, 19.64371997300], [1.507, 3.32822127349, 909.81873305460], [1.375, 5.75263837916, 19.12245511120], [1.407, 2.20244941425, 67.35923502580], [1.364, 4.40006421418, 27.08733537390], [1.357, 4.33780029649, 70.11573212130], [1.311, 4.62202930578, 81.89514556810], [1.307, 2.79964247834, 25.60286266560], [1.312, 3.73623252660, 628.85158605010], [1.286, 3.96557527092, 61.28821774860], [1.723, 4.56068809303, 305.34616939270], [1.313, 4.90611014973, 617.80588578620], [1.508, 6.25017976193, 604.47256366190], [1.235, 5.93779486368, 415.55249061210], [1.278, 3.21119872139, 92.04707395470], [1.357, 0.72647086107, 546.95644048200], [1.552, 5.05296247763, 10.29494073850], [1.230, 1.52077038294, 157.63995198190], [1.210, 2.63049415027, 426.59819087600], [1.206, 4.83219370572, 100.38446123290], [1.234, 4.46203104116, 162.09337010680], [1.174, 5.32356191090, 17.26547538740], [1.431, 6.18138614295, 14.22709400160], [1.244, 0.16929250603, 29.20494752860], [1.180, 4.09719023908, 443.86366626340], [1.180, 3.31438239649, 44.72531777680], [1.259, 1.88793196065, 0.65439130580], [1.263, 3.49967730885, 230.56457082540], [1.168, 2.04071854201, 30.71067209630], [1.523, 2.28101186489, 373.90799283650], [1.429, 2.05075136274, 181.75834193920], [1.065, 2.95960854361, 241.61027108930], [1.253, 0.23639539817, 561.18353448360], [1.255, 1.25819925760, 155.78297225810], [1.044, 2.89293032709, 543.02428721890], [1.062, 3.26314901318, 28.57180808220], [1.124, 1.06535506684, 88.11492069160], [1.186, 5.73445278027, 329.72519178090], [1.190, 2.82438170535, 41.10198105440], [1.067, 0.27101806190, 58.31927233200], [1.017, 4.30527610005, 67.88049988760], [0.959, 5.20504598622, 42.53826965290], [0.984, 4.90934403664, 465.95506679120], [0.944, 0.66925769374, 88.79624424780], [1.017, 4.37095088461, 13.49338081870], [1.222, 5.13450955699, 300.61086697750], [0.989, 0.53937909300, 80.71948940050], [0.890, 3.09802121989, 110.20632121940], [1.095, 1.70637576740, 43.12897048390], [0.992, 4.17968869928, 154.01661525950], [0.950, 0.09841899432, 273.10284047830], [0.870, 4.77500238443, 33.13710079170], [0.867, 4.22078052532, 20.44686912510], [0.830, 5.23785245773, 472.17484191470], [0.884, 4.34377463442, 105.49227066360], [0.812, 3.53258780148, 39.35687591520], [1.055, 1.52219418153, 227.31374111850], [0.963, 1.87806076896, 259.50888592310], [0.859, 0.57844232244, 152.01087768940], [0.861, 4.69213709412, 1059.38193018920], [1.084, 2.79612346618, 48.75804477640], [0.994, 2.87052008214, 454.90936652730], [0.831, 1.62068330602, 554.06998748280], [0.891, 2.85026036860, 32.24332891440], [0.876, 0.83921717739, 4.73530241520], [0.707, 6.16918394997, 3.62333672240], [0.787, 1.95585343912, 16.46232623530], [0.702, 5.49557046240, 558.00214074590], [0.817, 0.38724470336, 378.64329525170], [0.804, 2.25693582099, 16.04163511000], [0.866, 1.80814575866, 258.87574647670], [0.651, 3.72120167607, 286.59622129700], [0.672, 1.00052727778, 522.57741809380], [0.631, 4.14839739363, 141.69889060840], [0.748, 4.19441869839, 486.40193591630], [0.668, 0.77754011576, 120.99138905240], [0.619, 4.31040053492, 455.87257437380], [0.619, 4.77556598202, 453.94615868080], [0.647, 5.74952736928, 119.50691634410], [0.609, 0.24149609998, 117.91056905120], [0.630, 1.79018649942, 440.68227252570], [0.601, 1.41196883461, 218.92816973050], [0.719, 4.27398947015, 50.40257617910], [0.594, 3.92150462249, 25.27279426550], [0.710, 0.45768559438, 536.80451209540], [0.706, 6.15599144951, 258.02441321480], [0.617, 2.80636989892, 68.56182344380], [0.587, 5.47247350993, 767.36908292080], [0.690, 3.48978614301, 835.03713448730], [0.537, 4.06668446648, 450.97721326420], [0.511, 0.60155300709, 264.50482076920], [0.694, 1.18127476921, 129.91947716160], [0.584, 1.94104733057, 106.27416795630], [0.522, 5.95180617510, 518.64526483070], [0.507, 4.39658523394, 121.84272231430], [0.627, 2.24582628581, 218.40690486870], [0.485, 0.02058107411, 106.01353552540], [0.592, 2.06072766194, 296.15744885260], [0.587, 0.18557470860, 458.09076026500], [0.483, 1.50333774574, 150.52640498110], [0.474, 4.99848521665, 458.84151979040], [0.566, 1.94435189030, 699.70103135430], [0.472, 1.86519720200, 180.16199464630], [0.472, 0.07145793467, 216.48048917570], [0.571, 6.01195273302, 47.06112374700], [0.460, 3.76890954025, 342.25536475310], [0.489, 2.96084966272, 385.75684225250], [0.458, 1.99730631732, 275.55052103310], [0.460, 5.75982407113, 89.75945209430], [0.549, 1.43219978325, 171.65459766240], [0.544, 0.04821904056, 114.39910691340], [0.450, 1.94933296558, 148.59998928810], [0.444, 2.94093732205, 692.58748435350], [0.442, 2.15938034999, 173.68158709190], [0.543, 2.61197342701, 451.72797278960], [0.465, 0.31777753866, 756.32338265690], [0.441, 2.82271922049, 32.71640966640], [0.538, 2.39420182072, 339.28641933650], [0.569, 0.84686482736, 260.99335863140], [0.572, 5.40379754526, 278.51946644970], [0.422, 4.61520857062, 40.16002506730], [0.451, 4.50911201020, 142.14083359310], [0.501, 0.18290112601, 331.32153907380], [0.468, 0.97688759019, 760.25553592000], [0.443, 4.58896013561, 149.67507171920], [0.428, 1.02564850231, 469.13646052890], [0.500, 4.34235307579, 166.82867252200], [0.412, 5.69502940499, 92.30770638560], [0.404, 5.18855270166, 22.63391724900], [0.396, 3.98515136901, 31.23193695810], [0.421, 5.47567810199, 104.00779795530], [0.425, 3.50702044406, 180.27386923090], [0.415, 1.52291071520, 497.44763618020], [0.430, 2.39159932023, 39.09624348430], [0.401, 0.55271143649, 95.38852638680], [0.384, 2.48712922138, 210.33015002140], [0.422, 1.02056886848, 468.24268865160], [0.465, 5.72323435231, 183.24281464750], [0.383, 2.63486938783, 685.47393735270], [0.367, 5.39331524988, 874.39401040250], [0.461, 3.57961254790, 187.69623277240], [0.409, 4.21780704807, 181.05576652360], [0.440, 0.36380766054, 367.97010200330], [0.392, 5.44355925956, 26.02355379090], [0.431, 3.83885208954, 254.94359321360], [0.366, 2.92275490656, 291.26208774300], [0.416, 2.54190330826, 255.05546779820], [0.348, 0.35176743482, 46.47042291600], [0.413, 2.41518097006, 483.22054217860], [0.386, 4.76483292968, 268.43697403230], [0.344, 0.20350283971, 184.09414790940], [0.350, 1.24205287122, 97.41551581630], [0.361, 5.68393391400, 353.30106501700], [0.359, 2.62171903648, 162.89651925890], [0.381, 3.38777292581, 114.94162363460], [0.352, 2.76374792259, 295.19424100610], [0.340, 1.34666360560, 34.20088237470], [0.433, 1.90504858871, 123.53964334370], [0.389, 2.41268196916, 381.61224066830], [0.383, 3.20416581825, 79.44746501330], [0.369, 2.15185889720, 555.55446019110], [0.370, 2.19402183275, 562.66800719190], [0.327, 3.40081544565, 309.27832265580], [0.378, 5.75737470182, 916.93228005540], [0.318, 4.53066393124, 350.33211960040], [0.376, 1.74845257914, 545.47196777370], [0.346, 4.15815107375, 282.66406803390], [0.319, 4.38123849114, 154.97982310600], [0.320, 0.81846631878, 610.69233878540], [0.327, 5.07873875355, 189.72322220190], [0.306, 1.71903179875, 394.35486196160], [0.329, 1.82999432252, 706.81457835510], [0.335, 4.78622577105, 109.31254934210], [0.310, 5.08120849869, 376.19561469690], [0.327, 1.87637598331, 207.88246946660], [0.323, 1.88845451800, 192.69216761850], [0.284, 2.88222063053, 384.05992122310], [0.283, 4.63187254084, 332.17287233570], [0.294, 2.84554743359, 267.47376618580], [0.285, 0.97965330777, 113.87784205160], [0.319, 5.09582764612, 285.63301345050], [0.280, 0.67871105907, 312.45971639350], [0.300, 5.93285242876, 124.29040286910], [0.320, 4.86151247369, 448.68959140380], [0.310, 3.75000484412, 253.57099508990], [0.311, 5.59686590720, 271.40591944890], [0.316, 1.89686876211, 228.27694896500], [0.269, 0.14585942744, 142.66209845490], [0.270, 2.12904548682, 778.41478318470], [0.267, 0.96560769114, 90.82323367730], [0.308, 1.38454900684, 375.39246554480], [0.298, 3.99595366039, 451.94042111070], [0.278, 3.38339026214, 346.39996633730], [0.287, 1.01918432834, 905.88657979150], [0.263, 0.16921968622, 124.50285119020], [0.283, 5.95865378023, 362.86229257260], [0.266, 3.07331582044, 193.65537546500], [0.264, 5.47114459575, 133.10087089930], [0.288, 2.78232740152, 1812.52391910840], [0.361, 4.30140629884, 198.32124191100], [0.257, 1.60206491208, 369.08206769610], [0.274, 2.88347680082, 233.90602325750], [0.267, 4.90554019072, 681.54178408960], [0.305, 1.55983861329, 49.72125262290], [0.253, 0.50457429429, 316.39186965660], [0.258, 5.81453094409, 630.33605875840], [0.280, 1.15452517706, 986.08480433020], [0.265, 4.93584097286, 831.10498122420], [0.246, 1.25186233620, 134.06407874580], [0.298, 5.75927878031, 902.70518605380], [0.240, 2.84888261768, 44.09217833040], [0.261, 2.20643594285, 73.08467753790], [0.321, 3.46864827820, 372.42352012820], [0.234, 6.06783988023, 147.11551657980], [0.262, 2.69623862046, 167.72244439930], [0.267, 4.05985113852, 75.30286342910], [0.240, 0.48471871511, 172.19711438360], [0.261, 4.64354183979, 535.32003938710], [0.244, 5.85987959874, 507.59956456680], [0.237, 4.79666486485, 377.15882254340], [0.224, 1.94589447357, 593.42686339800], [0.226, 3.71637531808, 449.28029223480], [0.233, 5.98739382153, 219.89137757700], [0.240, 2.71609791875, 227.52618943960], [0.221, 2.23218400256, 460.53844081980], [0.226, 2.74516124394, 446.31134681820], [0.221, 3.20339807670, 463.50738623640], [0.203, 5.04975483055, 457.87831194390], [0.191, 4.24841510229, 4.66586644600], [0.169, 0.59358171769, 983.11585891360], [0.179, 4.12060524413, 310.17209453310], [0.187, 6.22165475247, 294.67297614430], [0.162, 1.30776665222, 248.72381809010], [0.219, 4.17413407057, 303.86169668440], [0.193, 1.64715944768, 91.45637312370], [0.170, 2.18067759964, 66.18357885820], [0.156, 4.92094728667, 68.18931642830], [0.145, 5.51404722738, 280.96714700450], [0.144, 5.81835834612, 75.53235809270], [0.153, 0.48549989656, 144.89733068860], [0.168, 5.81402201452, 149.45132255000], [0.150, 4.66632209585, 306.83064210100], [0.131, 1.01359934164, 175.16605980020], [0.174, 3.03279013213, 298.23262239190], [0.163, 1.97665571311, 221.16340196420], [0.144, 2.59058085010, 217.23124870110], [0.167, 2.74604167580, 69.15252427480], [0.129, 2.87574897902, 156.15547927360], ], # L2 [ [53033.277, 0.00000000000, 0.00000000000], [2357.636, 2.26014661705, 74.78159856730], [769.129, 4.52561041823, 11.04570026390], [551.533, 3.25814281023, 63.73589830340], [541.532, 2.27573907424, 3.93215326310], [529.473, 4.92348433826, 1.48447270830], [257.521, 3.69059216858, 3.18139373770], [238.835, 5.85806638405, 149.56319713460], [181.904, 6.21763603405, 70.84944530420], [49.401, 6.03101301723, 56.62235130260], [53.504, 1.44225240953, 76.26607127560], [38.222, 1.78467827781, 52.69019803950], [44.753, 3.90904910523, 2.44768055480], [44.530, 0.81152639478, 85.82729883120], [37.403, 4.46228598032, 2.96894541660], [33.029, 0.86388149962, 9.56122755560], [24.292, 2.10702559049, 18.15924726470], [29.423, 5.09818697708, 73.29712585900], [22.135, 4.81730808582, 78.71375183040], [22.491, 5.99320728691, 138.51749687070], [17.226, 2.53537183199, 145.63104387150], [21.392, 2.39880709309, 77.96299230500], [20.578, 2.16918786539, 224.34479570190], [16.777, 3.46631344086, 12.53017297220], [12.012, 0.01941361902, 22.09140052780], [10.466, 4.45556032593, 62.25142559510], [11.010, 0.08496274370, 127.47179660680], [8.668, 4.25550086984, 7.11354700080], [10.476, 5.16453084068, 71.60020482960], [7.160, 1.24903906391, 5.41662597140], [8.387, 5.50115930045, 67.66805156650], [6.087, 5.44611674384, 65.22037101170], [6.013, 4.51836836347, 151.04766984290], [5.718, 1.82933915340, 202.25339517410], [6.109, 3.36320161279, 447.79581952650], [6.003, 5.72500086735, 462.02291352810], [5.111, 3.52374555791, 59.80374504030], [5.155, 1.05810305746, 131.40394986990], [5.969, 5.61147374852, 148.07872442630], [5.065, 3.36477113418, 4.45341812490], [4.845, 1.20298837109, 71.81265315070], [3.979, 0.67629577193, 77.75054398390], [3.673, 1.76315074166, 351.81659230870], [3.149, 3.83590892865, 45.57665103870], [3.036, 3.32062892682, 160.60889739850], [3.033, 6.14532331482, 77.22927912210], [3.596, 4.57256025582, 454.90936652730], [2.664, 5.36121614612, 269.92144674060], [2.498, 1.04819496324, 69.36497259590], [2.307, 2.69282373897, 84.34282612290], [2.249, 5.07693376112, 14.97785352700], [2.228, 1.38937510191, 284.14854074220], [2.064, 4.34647674542, 984.60033162190], [2.105, 2.32047802326, 120.35824960600], [1.864, 5.70354779393, 54.17467074780], [2.005, 3.87177765185, 195.13984817330], [1.622, 5.07964536529, 209.36694217490], [1.597, 0.48807990368, 137.03302416240], [1.583, 2.90536212187, 51.20572533120], [1.725, 6.25703202673, 41.64449777560], [2.073, 1.24032244487, 35.16409022120], [1.543, 2.15414338268, 70.32818044240], [1.671, 6.28283232471, 277.03499374140], [1.494, 6.04572758571, 87.31177153950], [1.418, 1.15843502159, 213.29909543800], [1.239, 4.63223076077, 92.94084583200], [1.238, 2.65969680342, 134.58534360760], [1.273, 5.87964059822, 60.55450456570], [1.160, 1.03320781667, 153.49535039770], [1.430, 4.68022239016, 299.12639426920], [1.117, 2.62506108047, 72.33391801250], [1.142, 4.64615099782, 152.74459087230], [0.974, 2.85233132493, 222.86032299360], [1.046, 4.81299135934, 116.42609634290], [0.872, 3.49659835508, 340.77089204480], [0.952, 2.10837480840, 20.60692781950], [0.964, 2.46471453524, 380.12776796000], [0.843, 6.12869288891, 49.50880430180], [0.821, 0.27134156683, 191.20769491020], [0.813, 4.08930465981, 14.22709400160], [0.796, 6.17066846300, 344.70304530790], [0.924, 2.11096444289, 14.01464568050], [0.791, 2.38927423348, 58.10682401090], [0.781, 0.74223115950, 408.43894361130], [0.759, 3.77564054479, 80.19822453870], [0.884, 1.99930014838, 265.98929347750], [0.722, 3.10001033669, 422.66603761290], [0.750, 2.33167721991, 358.93013930950], [0.687, 2.02866342040, 33.67961751290], [0.603, 1.10391172652, 55.13787859430], [0.655, 3.85415269764, 16.67477455640], [0.606, 0.15052747979, 28.31117565130], [0.639, 5.16714934188, 23.57587323610], [0.658, 0.75636229109, 76.47851959670], [0.590, 1.73778850095, 8.07675484730], [0.565, 4.92645232089, 35.42472265210], [0.656, 2.34273264083, 38.13303563780], [0.542, 5.97968975563, 146.59425171800], [0.518, 3.19086220901, 152.53214255120], [0.536, 4.52808465499, 220.41264243880], [0.489, 4.80633294199, 159.12442469020], [0.491, 0.85765309118, 565.11568774670], [0.483, 3.52583593251, 144.14657116320], [0.521, 5.21561656321, 206.18554843720], [0.477, 4.25420753202, 365.90067395840], [0.466, 5.13219663072, 297.64192156090], [0.557, 0.98387565952, 225.82926841020], [0.531, 4.22534657450, 29.20494752860], [0.500, 3.49663062387, 128.95626931510], [0.445, 2.60797570173, 96.87299909510], [0.466, 6.05585106742, 70.11573212130], [0.425, 1.04692398351, 19.64371997300], [0.491, 2.26123398680, 152.01087768940], [0.455, 5.45520675000, 333.65734504400], [0.458, 0.91654899383, 373.01422095920], [0.520, 5.72828536642, 111.43016149680], [0.432, 1.04604024916, 125.98732389850], [0.387, 2.82547341355, 200.76892246580], [0.383, 1.91679738697, 5.62907429250], [0.504, 1.95816731769, 415.55249061210], [0.370, 3.21958844151, 387.24131496080], [0.379, 2.75940848661, 81.89514556810], [0.345, 2.98021540638, 429.77958461370], [0.368, 6.20331898497, 456.39383923560], [0.335, 5.29062985955, 13.33332212430], [0.320, 0.74685222907, 347.88443904560], [0.307, 1.65925943351, 99.16062095550], [0.284, 2.09437476480, 129.91947716160], [0.275, 0.62680026669, 31.49256938900], [0.339, 1.65968150805, 142.44965013380], [0.270, 2.79378345550, 977.48678462110], [0.284, 2.42261530322, 546.95644048200], [0.271, 0.59225635449, 1894.41906467650], [0.263, 3.49309481771, 440.68227252570], [0.295, 0.43376026627, 373.90799283650], [0.271, 4.82853730065, 561.18353448360], [0.248, 5.72379940676, 79.23501669220], [0.252, 5.76728095309, 235.39049596580], [0.261, 0.09830739366, 991.71387862270], [0.238, 1.14634663242, 288.08069400530], [0.220, 5.12386263728, 479.28838891550], [0.263, 1.52366362053, 146.38180339690], [0.230, 0.35983101967, 109.94568878850], [0.214, 2.94388765580, 184.72728735580], [0.198, 5.72107161521, 453.42489381900], [0.185, 4.71600176780, 108.46121608020], [0.139, 2.99832472431, 211.81462272970], [0.167, 1.19643522280, 39.61750834610], [0.180, 0.80198096578, 183.24281464750], [0.131, 2.73236351123, 522.57741809380], [0.142, 5.03489222377, 536.80451209540], ], # L3 [ [120.936, 0.02418789918, 74.78159856730], [68.064, 4.12084267733, 3.93215326310], [52.828, 2.38964061260, 11.04570026390], [43.754, 2.95965039734, 1.48447270830], [45.300, 2.04423798410, 3.18139373770], [45.806, 0.00000000000, 0.00000000000], [24.969, 4.88741307918, 63.73589830340], [21.061, 4.54511486862, 70.84944530420], [19.897, 2.31320314136, 149.56319713460], [8.901, 1.57548871761, 56.62235130260], [4.271, 0.22777319552, 18.15924726470], [3.613, 5.39244611308, 76.26607127560], [3.488, 4.97622811775, 85.82729883120], [3.479, 4.12969359977, 52.69019803950], [3.572, 0.95052448578, 77.96299230500], [2.328, 0.85770961794, 145.63104387150], [2.696, 0.37287796344, 78.71375183040], [1.946, 2.67997393431, 7.11354700080], [2.156, 5.65647821519, 9.56122755560], [1.363, 4.86983744746, 224.34479570190], [1.333, 1.25032115614, 12.53017297220], [1.613, 0.48764377311, 71.60020482960], [1.475, 5.19957293069, 73.29712585900], [1.225, 3.93406822032, 22.09140052780], [0.911, 2.18921999026, 127.47179660680], [0.811, 3.98323855938, 462.02291352810], [0.808, 5.06374463008, 447.79581952650], [0.718, 0.34600103024, 5.62907429250], [0.722, 1.05856935832, 138.51749687070], [0.687, 2.93752748595, 131.40394986990], [0.463, 1.58927254512, 151.04766984290], [0.414, 4.32904287620, 120.35824960600], [0.372, 0.73596518002, 269.92144674060], [0.345, 3.05968942771, 561.18353448360], [0.338, 5.94221536204, 284.14854074220], [0.343, 4.01891371998, 546.95644048200], [0.382, 5.93515231196, 45.57665103870], [0.276, 3.44212110991, 202.25339517410], [0.300, 1.13119175675, 160.60889739850], [0.268, 3.24615387968, 536.80451209540], [0.358, 1.10916640253, 333.65734504400], [0.236, 4.65292396535, 387.24131496080], [0.204, 5.81663798296, 373.01422095920], [0.145, 2.75632381347, 92.94084583200], [0.149, 0.13764106563, 71.81265315070], [0.156, 2.90936922804, 153.49535039770], ], # L4 [ [113.855, 3.14159265359, 0.00000000000], [5.599, 4.57882424417, 74.78159856730], [3.203, 0.34623003207, 11.04570026390], [1.217, 3.42199121826, 56.62235130260], [0.634, 4.65759668097, 18.15924726470], [0.171, 3.80393539303, 149.56319713460], [0.133, 4.35519131657, 63.73589830340], ], # L5 [ [0.873, 3.14159265359, 0.00000000000] ], ] """This table contains Uranus' periodic terms (all of them) from the planetary theory VSOP87 for the heliocentric longitude at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in pages 445-448.""" VSOP87_B = [ # B0 [ [1346277.639, 2.61877810545, 74.78159856730], [62341.405, 5.08111175856, 149.56319713460], [61601.203, 3.14159265359, 0.00000000000], [9963.744, 1.61603876357, 76.26607127560], [9926.151, 0.57630387917, 73.29712585900], [3259.455, 1.26119385960, 224.34479570190], [2972.318, 2.24367035538, 1.48447270830], [2010.257, 6.05550401088, 148.07872442630], [1522.172, 0.27960386377, 63.73589830340], [924.055, 4.03822927853, 151.04766984290], [760.624, 6.14000431923, 71.81265315070], [420.265, 5.21279984788, 11.04570026390], [430.668, 3.55445034854, 213.29909543800], [436.843, 3.38082524317, 529.69096509460], [522.309, 3.32085194770, 138.51749687070], [434.625, 0.34065281858, 77.75054398390], [462.630, 0.74256727574, 85.82729883120], [232.649, 2.25716421383, 222.86032299360], [215.838, 1.59121704940, 38.13303563780], [244.698, 0.78795150326, 2.96894541660], [179.935, 3.72487952673, 299.12639426920], [174.895, 1.23550262213, 146.59425171800], [173.667, 1.93654269131, 380.12776796000], [160.368, 5.33635436463, 111.43016149680], [144.064, 5.96239326415, 35.16409022120], [102.049, 2.61876256513, 78.71375183040], [116.363, 5.73877190007, 70.84944530420], [106.441, 0.94103112994, 70.32818044240], [86.163, 0.70262506622, 39.61750834610], [72.617, 0.20564696113, 225.82926841020], [71.172, 0.83343269975, 109.94568878850], [57.502, 2.67039425415, 108.46121608020], [54.255, 3.35166579613, 184.72728735580], [44.470, 2.74408231138, 152.53214255120], [38.591, 5.17394663303, 202.25339517410], [39.157, 2.17108251341, 351.81659230870], [41.346, 3.22134319551, 160.60889739850], [35.140, 4.00111634363, 112.91463420510], [33.073, 3.61378095742, 221.37585028530], [31.315, 2.71969470781, 145.10977900970], [37.336, 4.02053241202, 52.69019803950], [32.028, 1.29160071142, 145.63104387150], [27.574, 3.70064266960, 36.64856292950], [24.277, 2.84989187496, 127.47179660680], [24.635, 1.11645461259, 3.93215326310], [24.315, 5.48987913644, 79.23501669220], [21.418, 0.63722900407, 277.03499374140], [19.826, 2.59334182230, 84.34282612290], [22.373, 5.73687615457, 4.45341812490], [19.137, 1.30214105578, 62.25142559510], [19.789, 4.72260849557, 297.64192156090], [20.299, 1.06070151806, 454.90936652730], [19.768, 5.77906142568, 305.34616939270], [21.348, 1.01350946382, 33.67961751290], [15.142, 2.91786832554, 426.59819087600], [16.000, 1.95535748902, 186.21176006410], [13.819, 2.67163927171, 74.66972398270], [11.463, 5.73391138419, 41.10198105440], [10.741, 3.73401569675, 1059.38193018920], [11.450, 3.98177764866, 106.97674337190], [10.360, 4.75567608732, 183.24281464750], [10.232, 6.18772866993, 373.90799283650], [13.803, 5.70712120608, 74.89347315190], [10.553, 3.78602881738, 490.33408917940], [11.838, 5.96756415681, 87.31177153950], [10.030, 1.74828757238, 22.09140052780], [10.107, 0.92911975959, 65.22037101170], [9.127, 5.11093790809, 153.49535039770], [12.093, 2.53736362742, 9.56122755560], [8.646, 4.18351923569, 12.53017297220], [9.978, 5.83600622359, 604.47256366190], [11.352, 2.12645777694, 68.84370773410], [8.472, 3.36885457285, 72.33391801250], [7.797, 5.11771906359, 77.96299230500], [8.302, 5.19247905162, 77.22927912210], [7.696, 3.25189037096, 71.60020482960], [7.513, 2.98265970100, 114.39910691340], [6.947, 3.31871016057, 56.62235130260], [6.490, 0.88434578474, 288.08069400530], [6.394, 3.51142812432, 220.41264243880], [6.211, 0.58222518453, 340.77089204480], [6.772, 4.09374798222, 137.03302416240], [5.595, 5.68643434536, 259.50888592310], [5.309, 2.65421183211, 300.61086697750], [4.950, 4.99672086239, 219.89137757700], [6.419, 0.44895727879, 140.00196957900], [4.975, 4.06722486039, 143.62530630140], [5.692, 3.76563463180, 67.66805156650], [4.853, 2.03383592524, 415.55249061210], [3.796, 1.26231186682, 75.30286342910], [3.807, 2.24787582155, 909.81873305460], [3.812, 3.10475682509, 181.75834193920], [3.764, 5.20052090560, 227.31374111850], [3.445, 5.91769433069, 296.15744885260], [3.517, 5.44397685665, 628.85158605010], [3.943, 4.95136058926, 265.98929347750], [3.472, 0.34737998380, 131.40394986990], [3.390, 0.53497504164, 206.18554843720], [3.038, 4.68314286209, 159.12442469020], [3.190, 5.68929316349, 235.39049596580], [3.303, 2.09359507373, 73.81839072080], [3.069, 4.49065085092, 66.70484372000], [3.285, 0.00780313833, 75.74480641380], [2.917, 4.21615078632, 258.02441321480], [3.747, 0.82999983666, 74.26033370550], [2.814, 3.96708337625, 82.85835341460], [2.474, 3.81319259323, 7.11354700080], [2.394, 2.21483198491, 54.17467074780], [2.555, 2.97023907145, 378.64329525170], [2.631, 1.55153254691, 154.01661525950], [2.633, 2.28385552693, 32.19514480460], [2.643, 3.96832729680, 381.61224066830], [2.206, 3.06995275892, 59.80374504030], [2.635, 0.53987945692, 211.81462272970], [2.071, 1.97429082033, 18.15924726470], [2.485, 3.55433846990, 96.87299909510], [2.061, 4.50102695788, 5.93789083320], [1.916, 1.60538526374, 80.19822453870], [2.480, 0.63321072542, 187.69623277240], [2.039, 2.97351088965, 191.20769491020], [1.833, 1.95824865568, 81.89514556810], [1.719, 2.22526635038, 479.28838891550], [1.745, 3.22821992592, 218.40690486870], [1.857, 1.66304484985, 984.60033162190], [1.766, 5.24239122261, 105.49227066360], [1.524, 6.05374020264, 99.16062095550], [1.519, 0.94716867229, 372.42352012820], [1.614, 3.39986066169, 230.56457082540], [1.711, 3.44237080993, 522.57741809380], [1.504, 1.34653259405, 74.52096613640], [1.577, 4.38020936720, 80.71948940050], [1.360, 5.48691240270, 74.82978267710], [1.364, 4.56045715617, 42.58645376270], [1.398, 0.33827838973, 142.44965013380], [1.709, 3.63188407264, 554.06998748280], [1.360, 2.89305157919, 74.73341445750], [1.260, 5.50922979275, 74.94165726170], [1.374, 4.39897993200, 260.99335863140], [1.366, 2.15288773765, 162.09337010680], [1.244, 4.97789913094, 149.45132255000], [1.269, 0.84167691738, 767.36908292080], [1.278, 4.53585702916, 294.67297614430], [1.342, 5.11117141196, 51.20572533120], [1.180, 0.79882196802, 116.42609634290], [1.495, 0.74986873597, 75.04223099820], [1.207, 3.67288675913, 20.60692781950], [1.181, 4.39598416757, 180.27386923090], [1.248, 3.13312504066, 67.35923502580], [1.263, 2.87116663203, 74.62153987290], [1.380, 3.76141611602, 92.94084583200], [1.113, 3.87133607367, 39.35687591520], [1.018, 6.20393099094, 835.03713448730], [0.962, 3.30343472839, 255.05546779820], [1.238, 1.73023505315, 149.67507171920], [0.970, 1.71236273285, 115.88357962170], [1.001, 5.49914631698, 256.53994050650], [0.921, 3.07729879788, 8.07675484730], [0.914, 0.00764291274, 536.80451209540], [0.911, 6.23753038018, 200.76892246580], [0.956, 5.76811833839, 128.95626931510], [0.999, 0.33400530567, 404.50679034820], [0.952, 3.00456073496, 14.97785352700], [0.765, 3.45454533660, 214.78356814630], [0.800, 3.20912932090, 28.31117565130], [0.799, 4.11425365829, 125.98732389850], [1.021, 1.79905869707, 3.18139373770], [0.706, 5.80210566917, 157.63995198190], [0.715, 5.56313177065, 146.38180339690], [0.689, 1.84748347121, 41.64449777560], [0.682, 5.16479782395, 74.03083904190], [0.673, 2.65544175682, 75.53235809270], [0.723, 4.75905991606, 331.32153907380], [0.730, 2.25510749124, 453.42489381900], [0.691, 3.58561635364, 362.86229257260], [0.641, 5.77408891198, 110.20632121940], [0.671, 5.96862039131, 135.54855145410], [0.631, 1.97807297205, 639.89728631400], [0.774, 0.42035450706, 565.11568774670], [0.705, 2.94649553712, 60.76695288680], [0.663, 5.32574112049, 142.14083359310], [0.612, 2.01741578932, 195.13984817330], [0.749, 5.56828487823, 2.44768055480], [0.798, 0.90969731665, 152.01087768940], [0.747, 5.07639466593, 89.75945209430], [0.650, 4.56215718085, 216.92243216040], [0.651, 2.80626026285, 50.40257617910], [0.593, 1.89556258897, 203.73786788240], [0.550, 2.90625551534, 68.18931642830], [0.548, 3.75628845322, 617.80588578620], [0.554, 2.78135114877, 14.01464568050], [0.530, 3.51385025328, 291.70403072770], [0.506, 4.94619342366, 81.37388070630], [0.649, 5.74895589744, 141.48644228730], [0.593, 5.40734033998, 692.58748435350], [0.544, 2.99910512780, 152.74459087230], [0.485, 2.36317665443, 448.68959140380], [0.481, 5.81647231299, 134.58534360760], [0.517, 4.97759795528, 387.24131496080], [0.573, 2.46311368783, 81.00137369080], [0.470, 1.30184316812, 228.27694896500], [0.475, 0.53480492526, 303.86169668440], [0.485, 6.21247575899, 5.41662597140], [0.468, 0.55881267334, 23.57587323610], [0.585, 4.67924542643, 88.79624424780], [0.512, 5.86200059955, 293.18850343600], [0.445, 2.50076311432, 905.88657979150], [0.501, 4.79997295899, 306.83064210100], [0.418, 5.21379084769, 35.42472265210], [0.408, 5.69107313998, 284.14854074220], [0.474, 3.03149617428, 286.59622129700], [0.432, 4.20907682097, 278.51946644970], [0.506, 2.05348204197, 373.01422095920], [0.410, 5.30637634877, 95.38852638680], [0.478, 2.41106642594, 358.93013930950], [0.536, 1.82614772260, 114.13847448250], [0.383, 5.54541241459, 419.48464387520], [0.413, 0.03813081773, 103.09277421860], [0.368, 4.08526832792, 1589.07289528380], [0.369, 1.82533858431, 334.29048449040], [0.491, 5.58913582973, 68.56182344380], [0.387, 0.56619310480, 602.98809095360], [0.427, 5.08349119654, 367.97010200330], [0.475, 0.17507881032, 120.35824960600], [0.342, 5.27187859255, 28.57180808220], [0.407, 2.00853504718, 679.25416222920], [0.381, 4.61366060949, 329.72519178090], [0.388, 0.88856038803, 483.22054217860], [0.376, 1.28856348513, 155.78297225810], [0.326, 6.09140263554, 456.39383923560], [0.318, 0.09996195379, 69.36497259590], [0.292, 5.11578046796, 375.39246554480], [0.299, 6.04121646505, 332.80601178210], [0.328, 3.47252263966, 73.40900044360], [0.283, 1.81773059325, 647.01083331480], [0.308, 3.50154864071, 30.71067209630], [0.283, 1.88910019831, 24.37902238820], [0.278, 3.85507901929, 760.25553592000], [0.273, 4.22941219477, 391.17346822390], [0.293, 5.44464406156, 477.91579079180], [0.289, 3.85492516765, 209.36694217490], [0.309, 1.97045147502, 543.02428721890], [0.324, 5.57191515554, 501.37978944330], [0.248, 2.17741598681, 611.58611066270], [0.245, 1.04008534095, 1332.48477066750], [0.248, 6.19516038159, 1134.16352875650], [0.242, 1.37720813333, 121.25202148330], [0.233, 0.50933224249, 462.02291352810], [0.319, 4.24219881040, 328.35259365720], [0.244, 6.00644853640, 295.19424100610], [0.228, 0.72608678727, 233.90602325750], [0.223, 5.35785607671, 983.11585891360], [0.304, 5.68101077712, 189.18070548070], [0.223, 2.04168197187, 370.93904741990], [0.245, 4.69742022955, 316.39186965660], [0.217, 4.33845164683, 269.92144674060], [0.267, 0.15744446718, 10213.28554621100], [0.210, 5.84975171904, 147.11551657980], [0.224, 3.04829549918, 1439.50969814920], [0.226, 0.72248476212, 45.57665103870], [0.202, 1.37341689387, 302.09533968580], [0.207, 6.13936312021, 344.70304530790], [0.228, 2.33602531859, 150.52640498110], [0.203, 2.38070591912, 275.55052103310], [0.194, 5.11344829813, 1215.16490244730], [0.259, 2.78974616768, 144.14657116320], [0.199, 3.21010368905, 7.42236354150], [0.246, 6.15106498377, 6.21977512350], [0.180, 4.70377036870, 518.64526483070], [0.186, 3.85070006482, 46.20979048510], [0.175, 3.72163733058, 150.08446199640], [0.165, 1.87245210311, 310.17209453310], [0.166, 3.24028819042, 173.94221952280], [0.181, 0.39521867351, 0.96320784650], [0.144, 1.78180338482, 531.17543780290], [0.137, 6.20635855175, 369.45457471160], [0.136, 4.00164375048, 526.72201967800], [0.141, 4.02238453909, 350.33211960040], [0.125, 5.28865037145, 329.83706636550], [0.134, 3.97421067761, 228.79821382680], [0.132, 4.52023845365, 148.59998928810], [0.125, 4.24724390191, 248.72381809010], [0.120, 4.08565783859, 154.97982310600], [0.133, 3.16576403244, 262.47783133970], ], # B1 [ [206366.162, 4.12394311407, 74.78159856730], [8563.230, 0.33819986165, 149.56319713460], [1725.703, 2.12193159895, 73.29712585900], [1368.860, 3.06861722047, 76.26607127560], [1374.449, 0.00000000000, 0.00000000000], [399.847, 2.84767037795, 224.34479570190], [450.639, 3.77656180977, 1.48447270830], [307.214, 1.25456766737, 148.07872442630], [154.336, 3.78575467747, 63.73589830340], [110.888, 5.32888676461, 138.51749687070], [112.432, 5.57299891505, 151.04766984290], [83.493, 3.59152795558, 71.81265315070], [55.573, 3.40135416354, 85.82729883120], [41.377, 4.45476669141, 78.71375183040], [53.690, 1.70455769943, 77.75054398390], [41.912, 1.21476607434, 11.04570026390], [31.959, 3.77446207748, 222.86032299360], [30.297, 2.56371683644, 2.96894541660], [26.977, 5.33695500294, 213.29909543800], [26.222, 0.41620628369, 380.12776796000], [20.094, 5.93085633510, 529.69096509460], [22.992, 2.48887389394, 146.59425171800], [19.590, 5.37213500014, 299.12639426920], [20.408, 3.70179681605, 70.84944530420], [19.102, 1.09213276596, 111.43016149680], [19.411, 3.83015453768, 38.13303563780], [10.847, 2.66326308043, 3.93215326310], [10.249, 2.31278807720, 109.94568878850], [9.405, 2.76950513184, 39.61750834610], [7.660, 1.81108462850, 225.82926841020], [8.082, 4.69064168719, 184.72728735580], [6.584, 5.50417589189, 35.16409022120], [7.410, 1.17879753422, 65.22037101170], [6.451, 4.98294064391, 71.60020482960], [6.089, 1.31830108565, 52.69019803950], [4.768, 5.90574941745, 145.63104387150], [4.840, 4.86390682412, 221.37585028530], [4.192, 3.29643787103, 77.96299230500], [4.711, 4.24289069791, 152.53214255120], [4.894, 6.01164167429, 160.60889739850], [3.738, 4.75287390209, 70.32818044240], [3.481, 0.64108927026, 153.49535039770], [3.758, 3.94715595219, 351.81659230870], [3.114, 0.10537144899, 112.91463420510], [2.788, 4.24118032837, 74.66972398270], [2.505, 0.04576283378, 297.64192156090], [2.563, 4.15665405963, 305.34616939270], [2.544, 5.25903565788, 56.62235130260], [2.247, 4.24726481845, 36.64856292950], [2.541, 0.40106060407, 77.22927912210], [2.212, 2.88960413468, 277.03499374140], [2.299, 3.57748029365, 186.21176006410], [2.661, 0.53230319176, 79.23501669220], [2.157, 2.10150995852, 127.47179660680], [2.265, 1.41055702214, 4.45341812490], [2.103, 4.27438518414, 22.09140052780], [1.861, 3.75619999278, 145.10977900970], [1.759, 2.10240976488, 131.40394986990], [1.661, 4.84483054269, 62.25142559510], [1.496, 1.72084298116, 220.41264243880], [1.659, 5.86539712478, 454.90936652730], [1.428, 0.31508367934, 137.03302416240], [1.522, 1.00801468633, 75.74480641380], [1.459, 6.17427145114, 426.59819087600], [1.463, 5.14953143442, 84.34282612290], [1.453, 2.22988903923, 206.18554843720], [1.358, 5.85111427068, 183.24281464750], [1.405, 2.43582184515, 87.31177153950], [1.495, 5.55621838458, 67.66805156650], [1.317, 1.91178535183, 140.00196957900], [1.068, 1.51430678116, 373.90799283650], [1.439, 0.99170994448, 74.89347315190], [1.065, 4.15616015505, 288.08069400530], [1.096, 1.63909426062, 41.10198105440], [1.189, 0.90595784409, 33.67961751290], [0.961, 5.48175535705, 490.33408917940], [0.851, 0.95029849401, 909.81873305460], [0.820, 0.78610123063, 259.50888592310], [0.881, 4.31294603221, 9.56122755560], [0.708, 0.00007309836, 81.89514556810], [0.709, 3.18853632737, 80.19822453870], [0.786, 5.18884635415, 114.39910691340], [0.822, 0.01949759759, 18.15924726470], [0.656, 6.16899483115, 96.87299909510], [0.879, 1.82006610038, 73.81839072080], [0.872, 0.30134022304, 12.53017297220], [0.860, 0.21225398802, 3.18139373770], [0.637, 2.64378420008, 75.30286342910], [0.727, 0.02846968582, 66.70484372000], [0.600, 4.42462853209, 415.55249061210], [0.590, 4.17885957237, 300.61086697750], [0.610, 6.07202921132, 219.89137757700], [0.611, 0.97629869063, 296.15744885260], [0.635, 2.21125075603, 74.26033370550], [0.529, 2.35940463062, 7.11354700080], [0.622, 2.21801944850, 211.81462272970], [0.519, 2.01872911223, 142.44965013380], [0.489, 1.83419944488, 92.94084583200], [0.445, 2.51784247184, 604.47256366190], [0.413, 5.36482818305, 82.85835341460], [0.445, 0.33164113115, 227.31374111850], [0.456, 2.44190834824, 381.61224066830], [0.378, 1.91873737843, 202.25339517410], [0.509, 5.83556856314, 191.20769491020], [0.455, 5.15414537021, 522.57741809380], [0.419, 2.80644155875, 72.33391801250], [0.333, 0.32014837950, 2.44768055480], [0.360, 1.47248643716, 378.64329525170], [0.306, 0.15517399606, 159.12442469020], [0.301, 4.46417652272, 536.80451209540], [0.353, 0.48749845867, 128.95626931510], [0.351, 6.24769322491, 5.93789083320], [0.298, 1.71815652029, 235.39049596580], [0.315, 2.44922921309, 187.69623277240], [0.318, 0.70176359510, 181.75834193920], [0.314, 4.68400251693, 14.97785352700], [0.282, 3.70093718573, 108.46121608020], [0.272, 3.91340553608, 617.80588578620], [0.273, 3.29483889428, 387.24131496080], [0.323, 4.90410549341, 258.02441321480], [0.288, 4.42249612833, 195.13984817330], [0.250, 1.23231297183, 703.63318461740], [0.338, 2.84645768890, 154.01661525950], [0.297, 1.16538119842, 146.38180339690], [0.248, 4.90614051989, 41.64449777560], [0.275, 5.35665949805, 80.71948940050], [0.257, 1.82441994046, 230.56457082540], [0.234, 0.27679874465, 33.13710079170], [0.280, 1.73679618032, 265.98929347750], [0.229, 0.49529839431, 74.82978267710], [0.229, 4.18462288684, 74.73341445750], [0.253, 2.63817804331, 74.52096613640], [0.252, 2.04143912495, 75.04223099820], [0.213, 4.16218259902, 74.62153987290], [0.212, 0.51761494342, 74.94165726170], [0.201, 4.54140547837, 20.60692781950], [0.194, 4.17282454759, 116.42609634290], [0.213, 2.29528235429, 32.19514480460], [0.174, 3.15418942153, 228.27694896500], [0.194, 0.06960211137, 42.58645376270], [0.173, 5.59700344643, 68.84370773410], [0.159, 4.91721631097, 143.62530630140], [0.150, 0.92771324396, 404.50679034820], [0.136, 2.51083022906, 372.42352012820], [0.134, 3.22507836958, 479.28838891550], [0.124, 0.42063711585, 149.45132255000], [0.122, 1.20639876458, 5.41662597140], [0.119, 0.45375065997, 74.03083904190], [0.146, 5.08207330360, 294.67297614430], [0.118, 4.22640788890, 75.53235809270], [0.118, 1.50613822829, 344.70304530790], [0.121, 2.13544759505, 209.36694217490], [0.121, 6.08239076370, 260.99335863140], [0.154, 4.18369977366, 39.35687591520], ], # B2 [ [9211.656, 5.80044305785, 74.78159856730], [556.926, 0.00000000000, 0.00000000000], [286.265, 2.17729776353, 149.56319713460], [94.969, 3.84237569809, 73.29712585900], [45.419, 4.87822046064, 76.26607127560], [20.107, 5.46264485369, 1.48447270830], [14.793, 0.87983715652, 138.51749687070], [13.963, 5.07234043994, 63.73589830340], [14.261, 2.84517742687, 148.07872442630], [10.122, 5.00290894862, 224.34479570190], [8.299, 6.26655615197, 78.71375183040], [4.729, 5.16274174929, 71.81265315070], [3.816, 6.28224514574, 85.82729883120], [3.488, 3.53472172445, 11.04570026390], [2.555, 1.44444215715, 151.04766984290], [2.353, 4.23069776466, 3.93215326310], [2.585, 0.41383633246, 71.60020482960], [1.394, 4.13126838571, 146.59425171800], [1.183, 3.68471361409, 77.75054398390], [1.103, 5.54212014132, 222.86032299360], [1.205, 5.05109252937, 380.12776796000], [1.146, 1.95280464754, 529.69096509460], [0.977, 1.52652616357, 77.96299230500], [1.025, 4.33698643491, 2.96894541660], [0.858, 2.78728745263, 111.43016149680], [0.868, 5.55175791193, 38.13303563780], [0.633, 0.41074353315, 213.29909543800], [0.596, 5.39265533517, 127.47179660680], [0.586, 4.00404667232, 109.94568878850], [0.543, 2.40369406419, 153.49535039770], [0.486, 2.05237757516, 299.12639426920], [0.557, 3.13408880388, 65.22037101170], [0.457, 3.96543219832, 454.90936652730], [0.481, 2.81511187371, 160.60889739850], [0.421, 2.16819778071, 56.62235130260], [0.326, 4.52920012430, 39.61750834610], [0.308, 6.26508780547, 70.32818044240], [0.338, 5.14594268587, 3.18139373770], [0.288, 0.47061435406, 22.09140052780], [0.336, 4.23512034174, 35.16409022120], [0.316, 3.93430525759, 52.69019803950], [0.306, 1.10359318443, 70.84944530420], [0.250, 3.58780257084, 202.25339517410], [0.239, 4.77679306080, 87.31177153950], [0.227, 2.74138067839, 12.53017297220], [0.263, 1.59203582407, 84.34282612290], [0.215, 3.88195737361, 131.40394986990], [0.216, 5.80700510713, 74.66972398270], [0.264, 1.82574036051, 77.22927912210], [0.222, 0.04111883550, 184.72728735580], [0.197, 1.56602555362, 9.56122755560], [0.193, 2.26416938160, 75.74480641380], [0.179, 2.69065316892, 145.63104387150], [0.170, 2.75844544119, 73.81839072080], [0.155, 3.55393249110, 18.15924726470], [0.174, 4.76111441901, 277.03499374140], [0.140, 0.28714762870, 221.37585028530], [0.134, 1.29065526326, 206.18554843720], [0.127, 6.17908901556, 62.25142559510], [0.116, 6.26646620658, 220.41264243880], ], # B3 [ [267.832, 1.25097888291, 74.78159856730], [11.048, 3.14159265359, 0.00000000000], [6.154, 4.00663614486, 149.56319713460], [3.361, 5.77804694935, 73.29712585900], [1.602, 1.05657834344, 63.73589830340], [1.265, 1.66795295537, 78.71375183040], [1.183, 2.58856450374, 138.51749687070], [1.087, 0.28687213135, 76.26607127560], [0.640, 1.87238784591, 71.60020482960], [0.590, 0.80206040001, 1.48447270830], [0.467, 4.42872012006, 148.07872442630], [0.272, 4.00684090176, 85.82729883120], [0.203, 0.60406901282, 71.81265315070], [0.180, 5.55657564049, 3.93215326310], [0.168, 4.67745630044, 70.84944530420], [0.170, 2.93672195979, 11.04570026390], ], # B4 [ [5.719, 2.85499529315, 74.78159856730], [0.300, 3.14159265359, 0.00000000000] ], ] """This table contains Uranus' periodic terms (all of them) from the planetary theory VSOP87 for the heliocentric latitude at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in pages 448-449.""" VSOP87_R = [ # R0 [ [1921264847.881, 0.00000000000, 0.00000000000], [88784984.055, 5.60377526994, 74.78159856730], [3440835.545, 0.32836098991, 73.29712585900], [2055653.495, 1.78295170028, 149.56319713460], [649321.851, 4.52247298119, 76.26607127560], [602248.144, 3.86003820462, 63.73589830340], [496404.171, 1.40139934716, 454.90936652730], [338525.522, 1.58002682946, 138.51749687070], [243508.222, 1.57086595074, 71.81265315070], [190521.915, 1.99809364502, 1.48447270830], [161858.251, 2.79137863469, 148.07872442630], [143705.902, 1.38368574483, 11.04570026390], [93192.359, 0.17437193645, 36.64856292950], [71424.265, 4.24509327405, 224.34479570190], [89805.842, 3.66105366329, 109.94568878850], [39009.624, 1.66971128869, 70.84944530420], [46677.322, 1.39976563936, 35.16409022120], [39025.681, 3.36234710692, 277.03499374140], [36755.160, 3.88648934736, 146.59425171800], [30348.875, 0.70100446346, 151.04766984290], [29156.264, 3.18056174556, 77.75054398390], [20471.584, 1.55588961500, 202.25339517410], [25620.360, 5.25656292802, 380.12776796000], [25785.805, 3.78537741503, 85.82729883120], [22637.152, 0.72519137745, 529.69096509460], [20473.163, 2.79639811626, 70.32818044240], [17900.561, 0.55455488605, 2.96894541660], [12328.151, 5.96039150918, 127.47179660680], [14701.566, 4.90434406648, 108.46121608020], [11494.701, 0.43774027872, 65.22037101170], [15502.809, 5.35405037603, 38.13303563780], [10792.699, 1.42104858472, 213.29909543800], [11696.085, 3.29825599114, 3.93215326310], [11959.355, 1.75044072173, 984.60033162190], [12896.507, 2.62154018241, 111.43016149680], [11852.996, 0.99342814582, 52.69019803950], [9111.446, 4.99638600045, 62.25142559510], [8420.550, 5.25350716616, 222.86032299360], [7449.125, 0.79491905956, 351.81659230870], [8402.147, 5.03877516489, 415.55249061210], [6046.370, 5.67960948357, 78.71375183040], [5524.133, 3.11499484161, 9.56122755560], [7329.454, 3.97277527840, 183.24281464750], [5444.878, 5.10575635361, 145.10977900970], [5238.103, 2.62960141797, 33.67961751290], [4079.167, 3.22064788674, 340.77089204480], [3801.606, 6.10985558505, 184.72728735580], [3919.476, 4.25015288873, 39.61750834610], [2940.492, 2.14637460319, 137.03302416240], [3781.219, 3.45840272873, 456.39383923560], [2942.239, 0.42393808854, 299.12639426920], [3686.787, 2.48718116535, 453.42489381900], [3101.743, 4.14031063896, 219.89137757700], [2962.641, 0.82977991995, 56.62235130260], [2937.799, 3.67657450930, 140.00196957900], [2865.128, 0.30996903761, 12.53017297220], [2538.032, 4.85457831993, 131.40394986990], [1962.510, 5.24342224065, 84.34282612290], [2363.550, 0.44253328372, 554.06998748280], [1979.394, 6.12836181686, 106.97674337190], [2182.572, 2.94040431638, 305.34616939270], [1962.974, 0.04114739120, 221.37585028530], [1829.560, 4.01105771632, 68.84370773410], [1642.920, 0.35564102554, 67.66805156650], [1584.850, 3.16267171762, 225.82926841020], [1848.655, 2.91111759376, 909.81873305460], [1632.430, 4.23061792837, 22.09140052780], [1401.390, 1.39084023521, 265.98929347750], [1403.717, 5.63563637532, 4.45341812490], [1655.866, 1.96431297431, 79.23501669220], [1248.978, 5.44027380866, 54.17467074780], [1563.447, 1.47917835549, 112.91463420510], [1248.054, 4.88984353601, 479.28838891550], [1197.439, 2.52185744943, 145.63104387150], [1506.952, 5.24186185583, 181.75834193920], [1481.746, 5.66203046912, 152.53214255120], [1438.838, 1.53046287618, 447.79581952650], [1408.514, 4.41921749601, 462.02291352810], [1477.112, 4.32214690647, 256.53994050650], [1228.314, 5.97703331040, 59.80374504030], [1249.958, 6.24484546141, 160.60889739850], [906.468, 5.62025869483, 74.66972398270], [1090.681, 4.15393813845, 77.96299230500], [844.931, 0.12943398585, 82.85835341460], [900.363, 2.37315925843, 74.89347315190], [1071.957, 1.74286714339, 528.20649238630], [689.708, 3.08097059985, 69.36497259590], [593.798, 4.50074517056, 8.07675484730], [718.559, 4.00047509264, 128.95626931510], [699.574, 0.03987168068, 143.62530630140], [575.656, 5.89552672641, 66.70484372000], [759.004, 2.13700057433, 692.58748435350], [710.449, 5.41605755095, 218.40690486870], [548.672, 5.62811496970, 3.18139373770], [651.632, 4.42340061551, 18.15924726470], [539.825, 6.20788667166, 71.60020482960], [544.539, 5.69375108253, 203.73786788240], [710.276, 4.21967260022, 381.61224066830], [593.819, 3.83805798523, 32.19514480460], [710.134, 4.48972171999, 293.18850343600], [705.482, 0.45521177725, 835.03713448730], [588.000, 5.08252923316, 186.21176006410], [598.231, 0.35815291076, 269.92144674060], [641.914, 2.71127457036, 87.31177153950], [495.621, 2.65094755989, 200.76892246580], [630.252, 4.46146214548, 275.55052103310], [575.195, 5.57862480486, 2.44768055480], [569.870, 1.63930932740, 77.22927912210], [556.672, 1.07231961344, 1059.38193018920], [449.439, 0.27981733949, 617.80588578620], [463.608, 1.43448297993, 297.64192156090], [436.547, 0.52802035072, 209.36694217490], [463.938, 2.35443114417, 211.81462272970], [435.943, 2.10077211065, 1514.29129671650], [515.534, 3.23274579379, 284.14854074220], [454.879, 4.08364210459, 99.16062095550], [477.430, 2.89397217998, 39.35687591520], [542.331, 5.39481705077, 278.51946644970], [410.087, 3.04968860441, 404.50679034820], [367.848, 0.71159607058, 125.98732389850], [503.096, 5.83931251717, 191.20769491020], [487.532, 0.06402454583, 60.76695288680], [455.043, 2.59321186669, 490.33408917940], [436.291, 2.08183813746, 51.20572533120], [435.803, 2.79445203085, 75.74480641380], [323.546, 4.82899980859, 195.13984817330], [359.363, 0.00868012078, 35.42472265210], [429.314, 3.08031550488, 41.10198105440], [320.021, 5.48625497747, 14.97785352700], [414.331, 0.09012800478, 258.02441321480], [379.715, 0.05832815311, 378.64329525170], [420.062, 2.25393983318, 81.00137369080], [357.721, 4.71414305625, 173.94221952280], [358.922, 0.35213227553, 426.59819087600], [405.410, 6.12263257999, 24.37902238820], [365.158, 5.59483211224, 255.05546779820], [308.102, 3.92355394354, 116.42609634290], [325.660, 4.71996698332, 134.58534360760], [292.781, 3.99521194830, 72.33391801250], [386.543, 0.68619006966, 230.56457082540], [305.686, 3.76108783519, 344.70304530790], [286.972, 1.84990335310, 153.49535039770], [353.640, 4.65717995107, 329.83706636550], [302.051, 0.13190003806, 565.11568774670], [241.128, 1.60454142389, 81.37388070630], [249.829, 4.24205256241, 75.30286342910], [245.063, 5.94905404273, 20.60692781950], [248.277, 1.06282887181, 105.49227066360], [305.353, 2.55534744586, 6208.29425142410], [296.328, 4.21100245276, 1364.72809958190], [219.938, 2.96119055727, 120.35824960600], [233.564, 2.97074409938, 46.20979048510], [262.422, 3.83652250971, 831.10498122420], [233.546, 4.48117006140, 628.85158605010], [187.432, 3.03529190348, 135.54855145410], [216.776, 3.42907414802, 241.61027108930], [255.760, 1.16707893460, 177.87437278590], [220.458, 0.19633492290, 180.27386923090], [224.519, 0.40677777819, 114.39910691340], [205.398, 2.30380942634, 259.50888592310], [211.106, 4.93079982424, 103.09277421860], [175.758, 5.50822822216, 7.11354700080], [188.512, 2.23588941288, 5.41662597140], [171.718, 5.21730232334, 41.64449777560], [176.136, 1.95958319897, 756.32338265690], [170.447, 4.94978757413, 206.18554843720], [169.454, 4.04319823722, 55.65914345610], [219.015, 0.24790282027, 294.67297614430], [187.768, 2.04538775456, 408.43894361130], [182.258, 0.70728384467, 391.17346822390], [192.095, 5.76718231319, 291.70403072770], [153.684, 4.70659406659, 543.02428721890], [170.043, 4.50995820508, 288.08069400530], [164.097, 5.22527540372, 67.35923502580], [194.341, 6.11690364710, 414.06801790380], [168.027, 5.25810639105, 518.64526483070], [156.641, 0.66304836778, 220.41264243880], [182.330, 0.78383856974, 417.03696332040], [167.462, 4.92241597775, 422.66603761290], [170.770, 2.30927162659, 98.89998852460], [161.678, 3.27259601116, 443.86366626340], [132.763, 2.88875442023, 373.90799283650], [161.140, 3.82341391177, 451.94042111070], [179.292, 4.82405681293, 366.48562929500], [178.153, 3.98026039043, 10138.50394764370], [141.929, 1.26972581554, 159.12442469020], [153.750, 4.27847681414, 45.57665103870], [161.513, 4.99545008738, 73.81839072080], [146.315, 2.65664902119, 465.95506679120], [124.875, 4.30470898895, 339.28641933650], [154.620, 4.32046228120, 760.25553592000], [142.894, 2.07773752143, 457.87831194390], [152.408, 4.64742446768, 155.78297225810], [116.389, 4.43513730944, 5.93789083320], [113.444, 4.65351596266, 80.19822453870], [107.611, 3.77290419929, 142.44965013380], [133.740, 5.30894739047, 14.01464568050], [116.104, 2.51182725670, 296.15744885260], [129.106, 0.36277717661, 96.87299909510], [122.766, 2.38341351026, 141.48644228730], [101.368, 1.05739625315, 92.30770638560], [114.669, 6.24863527978, 767.36908292080], [113.283, 0.83051319425, 100.38446123290], [107.199, 2.39365512354, 347.88443904560], [95.443, 0.80094579583, 342.25536475310], [110.789, 0.38651051525, 216.92243216040], [126.978, 0.42359358250, 331.32153907380], [112.635, 0.08107814739, 558.00214074590], [103.166, 0.69792283389, 358.93013930950], [111.474, 0.75023459027, 80.71948940050], [90.902, 5.16530481614, 144.14657116320], [90.677, 0.22036476597, 333.65734504400], [98.568, 4.33164222339, 74.52096613640], [89.306, 2.18851161761, 74.82978267710], [117.216, 3.94965784596, 74.26033370550], [89.088, 5.87783179087, 74.73341445750], [97.316, 0.69429695020, 977.48678462110], [116.587, 1.83677031994, 1289.94650101460], [85.449, 5.80255966149, 6.59228213900], [86.823, 5.61973473261, 300.61086697750], [105.226, 5.94513614941, 328.35259365720], [112.117, 1.21168089807, 329.72519178090], [82.982, 2.20797412496, 74.94165726170], [94.345, 4.53937998713, 28.57180808220], [106.847, 1.82071328579, 306.83064210100], [103.572, 2.99368274596, 6.21977512350], [106.357, 0.81583874750, 1087.69310584050], [77.728, 2.73390123734, 110.20632121940], [98.405, 3.73478182667, 75.04223099820], [86.231, 2.83316881064, 983.11585891360], [89.023, 4.73754458960, 604.47256366190], [83.013, 1.88273535999, 387.24131496080], [90.227, 3.80367274711, 986.08480433020], [84.598, 1.25774132938, 142.14083359310], [74.690, 1.35097482767, 350.33211960040], [95.770, 5.54845504768, 969.62247809490], [90.277, 0.36773710508, 0.96320784650], [82.748, 5.85590525764, 74.62153987290], [75.828, 2.78019216029, 88.11492069160], [83.850, 1.84386358668, 227.31374111850], [70.705, 4.65567024014, 44.72531777680], [71.322, 3.64963906751, 894.84087952760], [94.141, 4.98819201726, 403.13419222450], [88.966, 4.43895583278, 154.01661525950], [79.436, 5.66662613679, 267.47376618580], [75.615, 5.40971072536, 50.40257617910], [68.583, 4.76679841388, 991.71387862270], [65.256, 0.69286370395, 152.74459087230], [63.031, 2.89946567712, 79.88940799800], [63.878, 0.09820555288, 681.54178408960], [80.101, 2.97520561915, 526.72201967800], [69.693, 3.95281159807, 187.69623277240], [59.492, 3.59642351692, 58.10682401090], [59.273, 0.50930692071, 28.31117565130], [68.590, 2.41880311530, 235.39049596580], [66.007, 5.04558399435, 30.71067209630], [70.223, 3.73647415486, 546.95644048200], [66.836, 0.85506033017, 522.57741809380], [63.027, 0.29269109052, 119.50691634410], [62.023, 2.31557510311, 74.03083904190], [71.379, 3.16967571102, 23.57587323610], [74.827, 5.36812537961, 373.01422095920], [64.204, 2.36817149460, 157.63995198190], [70.712, 0.55830476304, 92.94084583200], [55.762, 5.27011035858, 874.39401040250], [75.638, 4.66344127677, 101.86893394120], [73.727, 6.20581665991, 312.45971639350], [72.940, 0.58406607757, 367.97010200330], [53.230, 2.24728742995, 17.52610781830], [63.139, 4.59563922296, 67.88049988760], [60.550, 0.57591315857, 253.57099508990], [52.946, 2.45947017614, 264.50482076920], [70.236, 1.51860943454, 552.58551477450], [68.624, 2.44507780453, 555.55446019110], [62.796, 0.33786296181, 561.18353448360], [49.009, 1.09233728279, 19.12245511120], [64.636, 5.27469970900, 68.18931642830], [62.957, 5.35891188483, 92.04707395470], [47.664, 3.90924952181, 192.69216761850], [65.279, 4.23629510074, 771.30123618390], [65.190, 3.73942854797, 536.80451209540], [59.452, 6.10554259948, 365.00115658670], [52.153, 1.71734604937, 905.88657979150], [46.035, 3.87093684776, 210.33015002140], [46.429, 5.97423131576, 477.80391620720], [62.115, 2.67544358037, 130.44074202340], [46.038, 3.89378239085, 48.75804477640], [42.663, 3.81519760715, 61.28821774860], [53.909, 2.86457147106, 353.30106501700], [46.936, 1.00011046774, 166.82867252200], [42.217, 2.61748790314, 90.82323367730], [43.324, 4.15777895713, 173.68158709190], [41.296, 1.79930408254, 149.45132255000], [44.960, 1.76623306927, 0.52126486180], [51.904, 2.97773319756, 383.09671337660], [42.931, 1.57416456203, 120.99138905240], [49.611, 4.03427920470, 303.86169668440], [45.263, 3.58382163089, 97.41551581630], [38.695, 2.39404211169, 31.49256938900], [38.072, 5.79473670350, 75.53235809270], [50.126, 4.76412907201, 911.30320576290], [50.884, 5.15513957132, 439.78275515400], [43.148, 0.84999004804, 58.31927233200], [42.732, 5.17318058934, 162.09337010680], [50.298, 5.81603435915, 66.91729204110], [35.639, 1.87447823723, 472.17484191470], [49.963, 1.88943490790, 42.58645376270], [39.974, 1.74262050679, 89.75945209430], [45.252, 1.92511912328, 55.13787859430], [44.896, 1.48355901890, 450.97721326420], [34.297, 5.20257496546, 316.39186965660], [46.355, 0.33942039181, 273.10284047830], [37.152, 2.03757941865, 117.91056905120], [46.106, 5.62315633955, 1819.63746610920], [39.368, 4.19402806344, 486.40193591630], [41.039, 4.82994471947, 149.67507171920], [44.959, 0.72694662195, 3265.83082813250], [43.617, 0.75332422672, 404.61866493280], [31.823, 3.84768075667, 20.44686912510], [44.196, 4.36769721266, 418.26080359780], [37.900, 3.02928044053, 167.08930495290], [43.684, 1.57328182739, 491.55792945680], [34.004, 1.26257052908, 260.99335863140], [31.276, 4.16123711648, 13.33332212430], [39.984, 2.86626125620, 468.24268865160], [36.490, 2.58804294589, 68.56182344380], [32.364, 3.11577354875, 103.35340664950], [33.857, 0.15592410716, 24.11838995730], [35.933, 1.36784550071, 59.28248017850], [33.633, 0.75501177400, 290.21955801940], [29.751, 5.33178627038, 1033.35837639830], [32.036, 4.67549858000, 205.22234059070], [30.991, 4.62823866461, 258.87574647670], [35.268, 1.00718464327, 1108.13997496560], [33.366, 3.40738625377, 43.12897048390], [32.638, 5.25485850258, 114.13847448250], [29.825, 5.64157476876, 254.94359321360], [31.613, 3.78231393110, 152.01087768940], [30.980, 2.26660677937, 104.00779795530], [34.591, 5.17326577255, 25.60286266560], [28.398, 1.76872790446, 820.05928096030], [27.991, 3.92486885309, 199.28444975750], [28.986, 2.58171811759, 76.47851959670], [33.772, 5.79359878723, 274.06604832480], [29.401, 5.93638676504, 280.96714700450], [31.094, 1.39352495971, 178.78939652260], [30.118, 0.44367887423, 27.08733537390], [33.820, 6.26168443513, 401.64971951620], [27.513, 2.15194454461, 480.77286162380], [26.880, 2.51300272780, 123.53964334370], [26.139, 0.21985367371, 286.59622129700], [26.455, 3.88229792258, 372.42352012820], [33.974, 1.44637843871, 88.79624424780], [30.107, 0.82723915882, 100.64509366380], [27.715, 4.64827434185, 198.32124191100], [33.687, 1.14348201049, 82.48584639910], [26.493, 1.97889544238, 95.38852638680], [24.355, 2.37839176150, 146.38180339690], [26.590, 0.39881920389, 106.01353552540], [27.006, 2.10206230691, 1057.89745748090], [23.976, 6.21233637686, 16.67477455640], [30.970, 5.34005431547, 476.43131808350], [24.073, 3.42953641968, 1044.40407666220], [27.023, 0.71284764471, 248.72381809010], [29.098, 3.99184722502, 908.33426034630], [22.862, 2.26978781393, 175.16605980020], [24.026, 0.36584131268, 73.18525127440], [28.024, 3.46485782266, 1439.50969814920], [22.034, 0.05163807300, 33.13710079170], [22.185, 5.32252126255, 483.22054217860], [21.027, 0.37224660652, 214.78356814630], [20.548, 1.80004483299, 118.02244363580], [27.835, 4.12412553530, 694.07195706180], [25.500, 5.49632191634, 115.88357962170], [21.377, 3.89179204956, 66.18357885820], [27.201, 5.76148797900, 1215.16490244730], [24.984, 0.65339418015, 132.88842257820], [23.976, 4.56161326826, 458.84151979040], [21.116, 1.13610706250, 60.55450456570], [26.263, 2.77532723118, 490.07345674850], [26.369, 3.37120039300, 49.72125262290], [22.870, 4.53135637620, 78.40493528970], [26.872, 3.26037129303, 691.10301164520], [25.004, 3.65018677651, 73.40900044360], [20.874, 3.92589972978, 134.06407874580], [20.915, 5.53955400138, 129.91947716160], [23.067, 2.56806856688, 332.80601178210], [22.630, 5.02721554401, 150.52640498110], [19.123, 1.92386327535, 124.50285119020], [20.678, 0.98302410602, 29.20494752860], [18.755, 1.07911898422, 70.11573212130], [19.458, 1.33847349577, 616.32141307790], [23.071, 3.93152899657, 43.28902917830], [23.313, 0.61185525008, 189.72322220190], [19.660, 1.40884902649, 1589.07289528380], [24.990, 0.91842956919, 441.26722786230], [23.555, 0.02127675886, 593.42686339800], [18.288, 4.55111843462, 165.60483224460], [20.980, 0.88504201898, 326.86812094890], [24.940, 4.63470443286, 162.89651925890], [18.941, 5.10763304564, 81.89514556810], [18.911, 1.23351635328, 13.49338081870], [17.358, 4.05768226252, 403.02231763990], [17.362, 5.28607227640, 7.86430652620], [22.513, 3.15059891398, 419.74527630610], [21.237, 2.14856256664, 75.58474771940], [17.845, 2.54349200329, 47.06112374700], [16.995, 2.48647736969, 2043.98226181110], [23.676, 5.80355919955, 232.04904353370], [22.639, 2.07623129509, 699.70103135430], [19.261, 1.56494156016, 425.11371816770], [21.067, 5.30844438236, 237.67811782620], [22.733, 0.28303126440, 0.11187458460], [16.372, 3.45984005656, 0.75075952540], [21.213, 0.95828006612, 405.99126305650], [18.033, 1.60723214246, 215.43795945210], [16.267, 4.89002016360, 69.15252427480], [21.738, 3.24738839789, 1744.85586754190], [16.149, 0.35803995032, 77.06922042770], [21.710, 0.88800040769, 344.96367773880], [17.204, 6.04366142241, 32.24332891440], [17.883, 4.01076173641, 280.00393915800], [15.918, 2.96623390816, 25.86349509650], [14.769, 3.73887340623, 610.69233878540], [15.033, 4.24825484707, 228.27694896500], [15.586, 5.07987082740, 114.94162363460], [15.392, 0.22971106129, 17.26547538740], [15.354, 0.25482391126, 661.09491496450], [14.617, 1.13349626273, 823.99143422340], [16.232, 3.43499743810, 147.11551657980], [14.654, 1.68288566884, 207.88246946660], [17.682, 5.94376629143, 624.91943278700], [18.837, 1.38335408070, 377.15882254340], [15.425, 1.66489033237, 440.68227252570], [14.764, 4.41710614445, 16.46232623530], [14.402, 0.41359448817, 142.66209845490], [16.992, 0.16042368544, 438.29828244570], [13.268, 3.04634728126, 668.20846196530], [16.460, 0.92068542861, 369.08206769610], [17.239, 4.51659246818, 606.76018552230], [13.238, 0.13650358961, 216.48048917570], [15.832, 4.94315562971, 124.29040286910], [14.374, 2.93700606008, 419.48464387520], [12.927, 1.65950183061, 54.33472944220], [14.224, 4.42286781619, 47.69426319340], [12.753, 0.03020931725, 217.23124870110], [14.792, 1.08447500622, 49.50880430180], [14.031, 3.68785757687, 16.04163511000], [13.709, 4.78890618802, 72.77586099720], [13.073, 1.54064778942, 218.92816973050], [17.474, 5.05621281434, 564.85505531580], [12.686, 3.44640888880, 958.57677783100], [13.035, 0.56445754615, 1171.87587326900], [12.458, 3.29187197133, 902.70518605380], [11.893, 1.41294011193, 55.77101804070], [15.018, 3.43209569509, 19.01058052660], [16.470, 2.04067754807, 411.62033734900], [15.619, 1.53464600544, 833.55266177900], [15.678, 5.92839374034, 778.41478318470], [12.039, 5.17748353434, 135.33610313300], [15.523, 3.54656631824, 113.87784205160], [14.364, 4.19825110964, 89.33876096900], [15.424, 2.12697366269, 106.27416795630], [11.957, 1.43314130608, 455.87257437380], [15.938, 5.49575810978, 513.07988101300], [13.532, 4.11463529983, 95.22846769240], [15.105, 1.86350524526, 7.70424783180], [15.832, 3.42498484109, 79.51690098250], [11.492, 4.65187455620, 149.61138124440], [11.406, 1.31085455047, 63.62402371880], [14.469, 3.35284802718, 19.64371997300], [11.953, 0.20979051344, 65.87476231750], [12.039, 0.01423238410, 397.39324334740], [14.157, 1.87440535404, 6283.07584999140], [11.357, 0.19079103112, 5.62907429250], [14.109, 0.09348109701, 6133.51265285680], [15.322, 3.54468546172, 252.65597135320], [11.681, 0.85100356112, 5.10780943070], [14.134, 5.66340426198, 639.89728631400], [11.052, 0.47607339302, 150.08446199640], [11.507, 5.19480309409, 1182.92157353290], [11.492, 2.05801478181, 149.51501302480], [11.571, 4.78210724970, 334.29048449040], [10.671, 4.67373109923, 149.72325582900], [11.651, 3.13272450186, 93.90405367850], [14.316, 0.08421279341, 240.38643081190], [10.855, 4.52379396618, 453.94615868080], [11.900, 1.41784572428, 26.02355379090], [10.851, 4.40625021974, 57.14361616440], [13.385, 0.76174742916, 37.87240320690], [10.664, 5.81644528276, 193.65537546500], [10.700, 5.34595506070, 331.20966448920], [10.465, 3.82648204886, 180.16199464630], [13.350, 0.86920479636, 22.89454967990], [10.324, 2.99969783109, 525.75881183150], [14.293, 1.06904465002, 477.91579079180], [12.341, 4.62813430535, 1894.41906467650], [12.539, 3.70404881494, 67.07735073550], [11.771, 1.07971321862, 363.51668387840], [11.466, 0.93528386040, 121.84272231430], [12.839, 0.31988787839, 474.94684537520], [10.194, 6.23976471898, 84.18276742850], [12.300, 2.85238700423, 184.09414790940], [13.861, 3.48367688770, 157.26744496640], [11.395, 4.25533440680, 181.05576652360], [10.146, 6.01371693363, 43.24084506850], [9.889, 0.01753733887, 40.16002506730], [10.798, 2.46364243940, 140.65636088480], [9.893, 2.72219544398, 384.05992122310], [11.012, 3.77284307154, 494.26624244250], [10.226, 1.49169427598, 80.41067285980], [11.981, 2.69741212203, 369.45457471160], [10.658, 1.78702880970, 252.08652238160], [12.506, 4.66852994807, 64.69910614990], [11.640, 5.70405852396, 39.09624348430], [12.305, 1.73322306013, 229.08009811710], [9.954, 3.72074935511, 233.90602325750], [11.004, 3.58723041577, 449.28029223480], [10.581, 2.79550711884, 1246.65747183630], [10.411, 2.86727145530, 189.18070548070], [9.259, 5.19834823120, 749.20983565610], [12.468, 0.76477162698, 122.47586176070], [10.099, 6.06894682979, 156.15547927360], [12.671, 6.19797171716, 149.82382956550], [9.053, 0.99447742265, 109.31254934210], [9.595, 1.00827882958, 393.46109008430], [10.455, 1.23531019351, 148.59998928810], [10.645, 5.50399216121, 460.53844081980], [12.433, 5.29843661600, 20.49505323490], [9.002, 5.51216892840, 133.10087089930], [9.882, 5.68987366321, 42.53826965290], [12.110, 3.14577799081, 30.05628079050], [10.380, 3.54528360301, 619.29035849450], [10.139, 1.90528799801, 25.06034594440], [11.206, 5.87823238990, 832.58945393250], [9.283, 3.00514787072, 754.83890994860], [10.994, 0.05721003392, 54.28654533240], [8.981, 5.82462023723, 248.46318565920], [8.634, 5.49123270314, 448.68959140380], [9.390, 1.32674472283, 9.40116886120], [9.621, 5.69090299390, 73.88782669000], [10.843, 1.42812648220, 268.43697403230], [10.874, 2.61361741990, 446.31134681820], [9.681, 4.27051176079, 282.66406803390], [10.770, 0.19304986906, 463.50738623640], [8.223, 3.30114329151, 172.19711438360], [10.216, 5.04428111805, 241.87090352020], [8.890, 2.53320903906, 271.40591944890], [10.621, 4.39013117792, 63.84777288800], [9.085, 0.99085954236, 6.90109867970], [10.414, 4.96367476854, 97.67614824720], [8.382, 5.03764591595, 370.93904741990], [8.791, 3.05426995163, 291.26208774300], [8.629, 0.14674938050, 262.47783133970], [9.673, 4.25597330570, 602.98809095360], [7.939, 5.71230451368, 541.53981451060], [7.981, 2.35900017752, 196.62432088160], [7.941, 0.88239951788, 154.97982310600], [8.212, 0.00845991197, 76.42612997000], [10.135, 1.90258069764, 91.45637312370], [8.948, 4.31891786278, 469.13646052890], [9.906, 0.61122653279, 308.31511480930], [8.257, 4.61012292958, 69.67378913660], [10.291, 3.58217488981, 842.15068148810], [10.672, 2.28920805112, 194.28851491140], [9.024, 0.70282370018, 685.47393735270], [7.552, 4.86800510978, 1097.09427470170], [9.496, 1.06662350720, 93.79217909390], [8.413, 3.15290837718, 32.71640966640], [8.914, 5.03579282562, 450.45594840240], [8.008, 4.33420849497, 302.09533968580], [10.397, 4.90564475822, 829.62050851590], [7.401, 5.67595616187, 337.80194662820], [7.419, 3.04672439120, 7.42236354150], [7.936, 4.37116642726, 464.47059408290], [9.731, 5.70393303400, 98.35747180340], [9.287, 4.16913084905, 15.49911838880], [10.072, 1.18963356664, 621.73803904930], [9.867, 1.34469368253, 142.97091499560], [8.913, 1.33679256423, 0.26063243090], [8.734, 2.03651443558, 149.40313844020], [7.745, 0.14834225031, 1404.08497549710], [9.037, 3.53203542312, 636.66770846650], [7.707, 1.87083579542, 31.65262808340], [8.566, 2.48280357910, 497.44763618020], [10.074, 2.59066128203, 711.44930703380], [8.726, 5.88905195509, 82.20396210880], [9.218, 1.10861658464, 412.58354519550], [9.483, 6.02304095716, 916.93228005540], [7.012, 6.27635752748, 376.19561469690], [9.867, 1.93140204720, 62.77269045690], [7.121, 1.54192963162, 679.25416222920], [8.440, 5.06400284478, 1.37259812370], [8.915, 2.39052372377, 76.15419669100], [9.637, 3.78128664809, 838.21852822500], [7.059, 5.91499106809, 74.14845912090], [9.570, 1.97721363991, 703.63318461740], [7.516, 4.87738017916, 310.17209453310], [7.059, 1.94098053303, 75.41473801370], [8.552, 6.14581140636, 17.63798240290], [6.859, 5.11679089849, 107.49800823370], [7.148, 1.73466140387, 1190.78588005910], [9.112, 0.88368663290, 362.86229257260], [9.300, 1.44257902224, 763.43692965770], [9.073, 4.31998777457, 16.15350969460], [9.126, 3.74417347717, 4.66586644600], [7.869, 4.65596954763, 232.42155054920], [9.168, 3.25096522859, 155.50108796780], [7.624, 0.88232424215, 459.36278465220], [8.200, 1.51866334747, 10063.72234907640], [8.579, 2.37726234500, 75.67537044460], [7.595, 2.63499505823, 657.16276170140], [8.131, 6.15861249482, 745.27768239300], [6.398, 0.61376490225, 73.24894174920], [7.710, 4.02552779925, 4.73530241520], [6.380, 3.20688120531, 73.34530996880], [7.505, 0.67397826037, 228.79821382680], [7.129, 1.33525552417, 236.87496867410], [7.444, 3.05581518163, 171.65459766240], [6.361, 6.05108999867, 95.97922721780], [7.086, 4.88497877319, 6531.66165626500], [6.527, 4.01380149030, 118.87377689770], [7.984, 1.70695215254, 104.52906281710], [6.239, 1.08160874504, 143.93412284210], [7.200, 1.19830150903, 1617.38407093510], [6.390, 4.83649966441, 1072.71525231350], [7.857, 3.06062400692, 341.99473232220], [6.158, 0.04340975323, 627.36711334180], [8.664, 5.60425824325, 2810.92146160520], [6.147, 4.16482048084, 1300.99220127850], [8.148, 3.11700641910, 10213.28554621100], [8.603, 3.80404544682, 25558.21217647960], [7.586, 2.86885781812, 406.10313764110], [7.925, 3.11650504000, 81.68269724700], [7.063, 5.35078594952, 73.03649342810], [6.265, 3.27996815317, 116.53797092750], [7.345, 0.45699353973, 192.80404220310], [6.878, 1.29690429239, 22.63391724900], [6.102, 2.06174377751, 73.97844941520], [7.867, 1.45455437627, 131.92521473170], [6.837, 0.07237438837, 90.28071695610], [7.740, 2.87078307084, 79.44746501330], [6.744, 0.01897075429, 572.22923474750], [6.034, 0.96635268225, 476.31944349890], [8.276, 2.40596529645, 674.80074410430], [6.002, 3.24986200464, 76.78733613740], [6.863, 1.24850658686, 400.16524680790], [6.375, 1.37050567525, 75.15410558280], [7.445, 5.47946546419, 50.66320861000], [5.889, 5.83364715391, 164.12035953630], [7.190, 3.21396813566, 71.15826184490], [6.305, 1.65443603478, 70.04629615210], [6.628, 1.99043744200, 1.59634729290], [6.081, 1.26599890530, 61.44827644300], [7.795, 0.70956881527, 44.07092647100], [7.784, 5.47416712189, 416.77633088950], [5.727, 2.39389303582, 20277.00789528740], [6.363, 1.96472326808, 288.73508531110], [5.724, 4.30532783970, 86.63044798330], [7.348, 5.28008775997, 285.63301345050], [5.693, 1.13590287643, 445.34813897170], [5.799, 2.43420435064, 180.79513409270], [6.927, 4.19297070447, 525.23754696970], [6.143, 2.23902465258, 1310.39337013970], [6.680, 5.36285833774, 452.46168597250], [5.709, 3.65303501856, 442.37919355510], [6.238, 4.60538870228, 137.55428902420], [5.932, 3.22993254909, 73.45718455340], [7.734, 5.72805659987, 154.29849954980], [5.782, 2.17577477697, 2.28762186040], [6.016, 3.46585546590, 346.39996633730], [7.517, 5.63641104589, 549.72844394250], [6.685, 4.84971092735, 148.81243760920], [5.797, 0.51568102762, 149.30256470370], [7.739, 3.23104533276, 589.49471013490], [7.590, 2.49504939023, 321.76031151820], [6.706, 5.23367324742, 769.81676347560], [7.210, 2.56243122515, 375.67434983510], [5.491, 1.84139760824, 375.39246554480], [6.592, 3.39703193659, 389.68899551560], [6.414, 3.56513278405, 488.84961647110], [6.376, 0.24081237769, 881.50755740330], [5.785, 3.49508162978, 102.52332524700], [6.079, 0.84517404881, 89.59939339990], [5.799, 2.19388408812, 8.90683624980], [5.305, 1.97785611200, 150.31395666000], [5.422, 1.21990761182, 332.17287233570], [7.235, 2.78896876234, 748.09786996330], [6.360, 0.36304095923, 74.40909155180], [5.285, 4.41108441808, 12.00890811040], [6.602, 3.01699401726, 442.75170057060], [6.509, 0.49819168917, 1147.49685088080], [5.585, 6.04761249158, 172.45774681450], [6.673, 0.77536194908, 6069.77675455340], [7.125, 0.34356180793, 511.59540830470], [5.288, 4.27462942653, 11.15757484850], [6.767, 2.00969662613, 105.38039607900], [5.611, 2.40776057824, 1286.01434775150], [6.456, 4.48699081452, 31.23193695810], [5.898, 5.26174074234, 757.80785536520], [5.153, 2.41386832919, 742.99006053260], [5.087, 6.03592089039, 980.66817835880], [6.198, 0.83056505252, 1507.17774971570], [5.425, 1.93107713343, 40.84134862350], [6.091, 5.18564204379, 487.10451133190], [5.715, 1.96802719384, 394.35486196160], [5.509, 1.31275092080, 883.79517926370], [5.320, 4.22718652038, 65.38042970610], [5.357, 1.80483136985, 139.48070471720], [5.204, 3.39869589191, 1400.15282223400], [6.537, 2.31923989568, 328.24071907260], [5.041, 2.94673346440, 361.37781986430], [4.969, 6.27367198215, 0.16005869440], [5.334, 2.78985718428, 217.44369702220], [5.654, 0.51056760715, 285.11174858870], [6.432, 2.21948959433, 9999.98645077300], [5.768, 5.10735836078, 216.26804085460], [4.977, 2.62435916254, 194.17664032680], [6.932, 1.71722863424, 378.90392768260], [5.187, 3.04429850681, 1083.76095257740], [5.791, 3.94061476250, 550.13783421970], [5.816, 2.24843661305, 230.93707784090], [5.319, 0.06998825350, 336.83873878170], [5.427, 0.30577275388, 40.58071619260], [6.469, 3.02579309025, 298.23262239190], [4.974, 1.21594265105, 455.06942522170], [4.960, 4.72806210230, 454.74930783290], [5.619, 2.27500303004, 227.52618943960], [6.328, 0.97544932086, 249.94765836750], [5.319, 4.59867974067, 454.79749194270], [4.791, 4.40360629153, 853.19638175200], [6.519, 3.03043401282, 167.72244439930], [5.450, 6.00971547441, 25.12978191360], [5.094, 3.96693309189, 1066.49547719000], [5.779, 0.65954416303, 272.58157561650], [6.491, 4.68529651540, 312.19908396260], [5.234, 4.34712255335, 233.53351624200], [5.396, 5.62885554221, 418.52143602870], [5.048, 2.46802064424, 987.56927703850], [6.152, 0.79853332272, 2274.54683263650], [6.506, 1.72915575120, 125.18417474640], [4.993, 3.75975860404, 57.25549074900], [6.295, 0.84778953014, 10.08249241740], [6.251, 4.78782138567, 270.18207917150], [5.785, 4.31237764709, 374.49869366750], [5.406, 5.49902863401, 632.78373931320], [6.224, 0.12733845417, 149.04193227280], [4.921, 1.43037646364, 73.13706716460], [5.076, 1.34845106372, 455.02124111190], [5.730, 3.30386575867, 88.27497938600], [4.618, 0.64720625124, 119.39504175950], [6.213, 2.58827934841, 544.50875992720], [4.825, 6.08615765986, 304.12232911530], [4.825, 6.00483903794, 226.79247625670], [5.528, 5.69752791882, 548.44091319030], [5.108, 2.74489127167, 423.62924545940], [5.426, 2.44835106987, 531.97858695500], [4.573, 1.61098293427, 357.44566660120], [4.487, 6.09067660554, 204.70107572890], [5.866, 6.20513223441, 772.78570889220], [5.334, 2.49860553733, 1131.19458333990], [5.656, 4.75744184558, 491.81856188770], [4.441, 0.23590452375, 35.68535508300], [4.370, 3.81136490830, 1329.30337692980], [4.406, 3.42865095493, 144.89733068860], [5.251, 4.72114047741, 535.32003938710], [5.174, 1.37807596858, 520.12973753900], [4.331, 2.64717426456, 1517.26024213310], [4.802, 2.60569463520, 177.30492381430], [4.368, 3.36272561974, 1503.24559645260], [4.335, 2.73379207096, 289.56516671360], [5.198, 0.97116582962, 128.43500445330], [4.437, 0.56678131875, 253.45912050530], [5.386, 5.84886051674, 268.69760646320], [5.376, 1.30096148962, 436.81380973740], [5.797, 4.33049740199, 208.84567731310], [4.353, 1.66111524192, 1261.63532536330], [4.812, 4.95769337401, 545.47196777370], [5.897, 2.04201205180, 8.59801970910], [5.032, 2.80550759770, 360.41461201780], [4.921, 2.55658380096, 260.36021918500], [4.413, 3.23825819993, 973.55463135800], [4.506, 0.17509624151, 380.38840039090], [4.947, 5.50324549675, 365.90067395840], [4.174, 2.99974290843, 136.06981631590], [4.553, 2.77416673233, 147.96684984170], [5.344, 1.81213470593, 521.09294538550], [5.155, 0.78324341489, 1670.07426897460], [5.133, 1.37435234967, 271.61836777000], [5.708, 2.52872222038, 501.37978944330], [4.933, 1.36454104948, 238.90195810360], [4.973, 1.92960964594, 535.91074021810], [4.935, 5.04375067678, 697.80716836880], [4.129, 1.50064332826, 71.86083726050], [5.207, 4.01877367340, 92.41958097020], [4.587, 4.78553156868, 95.93104310800], [5.050, 5.41251268131, 758.77106321170], [5.012, 4.50266403888, 635.96513305090], [4.248, 0.65406962267, 920.86443331850], [5.150, 1.13490701556, 310.97524368520], [4.146, 5.54040372231, 1048.33622992530], [4.256, 4.20942901957, 25.27279426550], [4.569, 5.19758291396, 10.29494073850], [4.259, 5.53202386861, 184.98791978670], [4.315, 2.80569687202, 213.95348674380], [4.604, 2.51643176466, 962.50893109410], [5.105, 1.26007002216, 971.10695080320], [4.500, 6.15796742231, 1052.26838318840], [4.095, 0.63467124507, 1321.43907040360], [3.968, 0.07377679014, 77.70235987410], [4.617, 2.77367751889, 406.95447090300], [4.899, 4.65767840428, 305.60680182360], [3.900, 1.66467970991, 945.24345570670], [4.133, 3.76396043787, 263.02034806090], [3.899, 4.28677450975, 224.23292111730], [5.030, 6.24112139981, 1162.47470440780], [5.024, 0.39738855487, 968.13800538660], [4.894, 2.50422546622, 355.74874557180], [4.283, 3.15267059582, 846.08283475120], [3.941, 0.04342429962, 1235.61177157240], [4.077, 5.68854469970, 695.55642977010], [3.842, 0.37429373422, 774.48262992160], [4.674, 0.08112657673, 1366.21257229020], [4.671, 4.38923533828, 117.36805233000], [5.313, 4.38472090135, 689.61853893690], [3.787, 1.41443617212, 48.91810347080], [4.236, 1.60316940746, 367.59759498780], [4.569, 2.88138923862, 551.10104206620], [4.636, 5.93442268083, 148.19059901090], [5.128, 0.17600225009, 433.71173787680], [4.264, 2.08657038625, 325.38364824060], [3.885, 5.85359840623, 450.71658083330], [4.753, 2.58442943928, 358.40887444770], [4.226, 6.24596640453, 448.97147569410], [3.776, 1.78756451192, 71.70077856610], [4.912, 4.45665056284, 51.88704888740], [3.854, 2.72138633161, 151.85081899500], [4.561, 0.07201979569, 2349.32843120380], [4.291, 5.39929339966, 523.75307426140], [4.143, 0.17158866270, 735.87651353180], [3.806, 1.44358694049, 138.62937145530], [3.654, 2.41520715554, 348.84764689210], [3.728, 1.69745141654, 984.71220620650], [4.176, 4.01139155515, 195.77298761970], [4.986, 1.03562905920, 224.45667028650], [4.031, 0.92145122185, 76.00543884470], [4.098, 3.51214223942, 72.49397670690], [3.812, 4.41246815759, 1511.32235129990], [4.098, 2.39702785276, 239.16259053450], [4.894, 5.26621064696, 601.50361824530], [4.459, 5.76440378473, 836.52160719560], [4.373, 4.08948598951, 75.43598987310], [4.363, 6.01127167247, 421.18156490460], [4.414, 0.35830661600, 168.31314523030], [3.700, 2.04103813925, 63.21463344160], [4.648, 2.07482117651, 1106.65550225730], [4.304, 3.03122452327, 1109.62444767390], [3.618, 4.84400847177, 893.35640681930], [4.023, 0.59685650686, 91.24392480260], [4.937, 5.49417275871, 976.73602509570], [4.373, 3.76648561161, 74.12720726150], [4.310, 3.72983787822, 673.31627139600], [4.680, 3.89631254150, 163.57784281510], [4.172, 0.75349427039, 1500.06420271490], [4.492, 1.87283145714, 141.17762574660], [4.174, 5.82910805335, 346.44815044710], [3.775, 0.83052387256, 827.92358748650], [3.481, 2.70828672792, 818.57480825200], [4.853, 0.95917381603, 58.17051448570], [4.021, 3.11274455034, 377.41945497430], [4.409, 0.16607520728, 630.33605875840], [3.597, 1.02560564654, 515.46387109300], [3.444, 1.38488805947, 117.31986822020], [4.021, 5.68447974866, 3.49021027840], [4.244, 3.75845344717, 733.42883297700], [3.933, 4.55157642432, 240.12579838100], [4.421, 1.51263319894, 1610.27052393430], [3.390, 4.00215380112, 74.99404688840], [4.556, 3.41531360529, 1140.38330388000], [4.171, 0.76417016678, 623.43496007870], [3.441, 2.56450835637, 14.81779483260], [3.587, 4.10186965494, 343.21857259960], [3.997, 5.74857613262, 6212.22640468720], [4.215, 0.84469743228, 176.65053250850], [4.098, 1.41920746453, 559.69906177530], [4.553, 1.09016692751, 561.88610989920], [3.493, 0.11837510368, 1031.87390369000], [3.596, 5.33968666729, 394.94556279260], [3.501, 5.53309359866, 594.91133610630], [3.564, 1.57868308864, 354.99798604640], [4.279, 2.35436288262, 562.66800719190], [3.398, 1.62086348540, 941.31130244360], [3.803, 1.78948693511, 251.17149864490], [3.299, 5.13631478768, 477.00076705510], [3.422, 3.55674695079, 256.42806592190], [3.802, 4.09287840097, 268.95823889410], [3.818, 4.64162443046, 71.92452773530], [4.623, 2.72836206211, 6244.94281435360], [3.466, 1.91387688001, 58.73996345730], [3.435, 2.96178782926, 995.64603188580], [3.626, 5.35614681493, 57.51612317990], [4.512, 1.18350543284, 170.76082578510], [4.378, 0.27346037700, 469.72716135990], [3.323, 4.51516827363, 454.86118241750], [3.320, 1.42938752044, 454.95755063710], [4.578, 4.74980514730, 731.94436026870], [3.249, 0.67719975914, 74.04788538440], [4.145, 5.58064267022, 57.79800747020], [3.512, 6.09122971288, 70.58881287330], [3.814, 2.49565462974, 6204.36209816100], [3.828, 4.39751907192, 586.31331639720], [3.639, 4.85097208169, 138.40562228610], [3.518, 0.52105043625, 262.80789973980], [3.671, 1.99667387765, 511.53171782990], [3.215, 0.64628330219, 887.72733252680], [3.718, 3.27473813045, 454.64873409640], [3.638, 2.63250736806, 455.16999895820], [3.772, 0.88810300052, 10142.43610090680], [3.190, 4.87960158471, 455.66012605270], [3.669, 4.11456655271, 409.92341631960], [3.166, 1.24948126394, 82.64590509350], [3.530, 4.02075420346, 388.20452280730], [3.163, 1.65294183878, 765.88461021250], [3.568, 5.95965909592, 460.84725736050], [3.450, 0.08821515281, 49.17873590170], [3.270, 1.81146731641, 34.20088237470], [3.188, 1.74587038709, 18.91000679010], [3.305, 5.77382040863, 10.52443540210], [3.345, 4.15802505352, 1515.77576942480], [3.160, 1.06549289762, 454.15860700190], [3.525, 2.56091667232, 78114.14622758799], [4.124, 1.06751791085, 388.46515523820], [4.016, 2.48751669586, 531.17543780290], [3.147, 5.05814757549, 1521.40484371730], [4.180, 1.16833674781, 514.56435372130], [3.212, 3.18682610058, 1512.80682400820], [3.486, 0.22630227172, 36.53668834490], [4.211, 3.21876950029, 761.74000862830], [3.485, 3.26177495276, 36.76043751410], [3.506, 6.26633354904, 545.27502581760], [3.733, 2.55776517455, 279.48267429620], [4.227, 1.41381723926, 41.75637236020], [3.187, 1.62296832026, 138.46931276090], [3.934, 2.86731965547, 832.06818907070], [3.684, 3.94174060300, 179.31066138440], [3.115, 5.67364420834, 73.55775828990], [3.663, 1.80556740809, 31.54075349880], [3.171, 4.85529878165, 138.56568098050], [3.777, 5.94890597104, 873.17017012510], [4.357, 4.15105623366, 10175.15251057320], [3.951, 1.60185888278, 576.16138801060], [3.525, 4.80316435970, 429.77958461370], [3.330, 5.62171319933, 1116.00428149180], [3.943, 4.62641543020, 898.77303279070], [3.382, 1.45717307307, 5983.94945572220], [3.215, 3.73878297941, 335.77495719870], [3.423, 5.07987216951, 143.34342201110], [4.161, 5.39091883238, 1363.24362687360], [3.457, 3.94796907904, 444.82687410990], [3.593, 3.91831549069, 10134.57179438060], [3.666, 4.22620338990, 36.17548217750], [3.580, 3.43130119859, 912.78767847120], [3.700, 0.67445695843, 73.93026530540], [3.679, 1.10949079061, 686.95841006100], [3.547, 5.63096398237, 440.89472084680], [3.622, 1.10742531477, 2250.16781024830], [3.562, 3.80604468765, 1525.33699698040], [3.330, 1.76480149289, 78.97438426130], [3.738, 1.76754910180, 384.58118608490], [3.986, 1.06842874470, 743.79320968470], [3.032, 5.77852412826, 612.17681149370], [3.008, 0.64086342534, 210.85141488320], [3.334, 4.81681647959, 597.35901666110], [3.141, 3.11768616608, 6607.92772754060], [3.022, 2.08709314702, 34.53095077480], [3.226, 3.19780030434, 377.68008740520], [4.065, 3.53637930424, 402.21916848780], [4.138, 0.28927701421, 517.16079212240], [3.697, 0.89932694516, 75.63293182920], [3.918, 5.73859894835, 94.42531854030], [3.374, 0.40974405580, 677.76968952090], [3.194, 4.56998602897, 1385.17496870700], [3.180, 1.03370427552, 885.43971066640], [3.235, 5.09681747179, 464.99185894470], [3.798, 5.76464888795, 586.37700687200], [3.173, 5.68964342749, 4.19278569400], [3.181, 2.87968862974, 9914.15915194180], [3.355, 5.45857968674, 73.08467753790], [2.899, 5.12928266291, 448.31708438830], [3.706, 2.47342147635, 64.25716316520], [3.796, 4.29502458131, 164.54105066160], [3.534, 4.42464754991, 46.47042291600], [3.488, 5.62713714766, 3189.56475685690], [2.940, 4.33606107945, 78263.70942472259], [3.309, 3.10770680369, 519.60847267720], [4.030, 4.41794838679, 772.58876693610], [2.867, 5.17129632099, 346.18751801620], [3.842, 1.87994191354, 299.71709510020], [3.846, 5.38315286213, 980.14691349700], [3.724, 4.94511644698, 984.48845703730], [2.814, 2.17260061398, 191.31956949480], [3.392, 3.08552116090, 245.49424024260], [2.923, 0.37358823115, 6.48040755440], [3.025, 1.19297242418, 104.83787935780], [3.470, 1.89084704021, 44.61344319220], [2.931, 0.78809830626, 540.05534180230], [3.707, 4.14868763219, 6136.48159827340], [3.931, 5.52289695589, 6171.64568849460], [3.056, 2.97000936733, 250.60204967330], [3.117, 0.76332399369, 229.45260513260], [3.091, 4.91941279780, 221.16340196420], [3.378, 3.82658652472, 25936.85547173129], [3.041, 2.14503983522, 6604.95878212400], [2.865, 0.53734608663, 273.85360000370], [2.845, 0.34922064899, 85.93917341580], [3.657, 6.02755271763, 340.88276662940], [2.818, 4.44508352472, 369.34270012700], [2.861, 2.19284349075, 295.19424100610], [2.865, 3.21935127992, 3.82027867850], [2.797, 5.97725967979, 2014.02655475710], [3.280, 0.74832416123, 422.71422172270], [3.509, 1.92501559437, 343.47920503050], [2.962, 2.29867992492, 661.15860543930], [3.485, 4.53205302380, 676.28521681260], [2.836, 1.20779683660, 1119.18567522950], [3.603, 2.72183511139, 508.62646288810], [3.620, 5.57691156197, 10066.69129449300], [2.731, 0.96663411770, 582.38116313410], [3.306, 6.20620840278, 11.56696512570], [3.279, 6.13563821647, 276.07178589490], [2.747, 4.57476263020, 226.63241756230], [2.825, 1.24120423378, 989.05374974680], [2.707, 0.46257342768, 1458.47209456600], [2.755, 5.43548338507, 246.97871295090], [3.338, 3.98641322371, 488.58898404020], [2.960, 5.31788128818, 1467.07011427510], [3.062, 1.93542241882, 987.78172535960], [3.504, 4.10521239427, 6280.10690457480], [3.584, 3.12196206517, 108.72184851110], [2.975, 0.13746189123, 9987.45627780080], [2.634, 5.61201014857, 412.37109687440], [3.702, 0.66231252049, 10101.85538471420], [3.261, 4.39228048501, 75.37229939830], [2.939, 3.26319979850, 130.55261660800], [2.742, 6.24317126103, 447.20511869550], [3.008, 4.24451493185, 170.17012495410], [3.001, 2.45489658954, 230.82520325630], [2.722, 4.98348297926, 754.03576079650], [2.928, 5.73784691627, 14.66903698630], [2.699, 2.98043546816, 27.72047482030], [3.678, 3.46436124301, 26468.03090953420], [3.500, 4.41810854452, 322.61164478010], [2.943, 3.58544468129, 12489.88562870720], [2.894, 2.26999120840, 1615.89959822680], [2.679, 1.32002304425, 236.19364511790], [2.711, 1.25250599577, 52250.58788171570], [2.573, 4.41371056719, 262.05714021440], [3.483, 1.97113718781, 655.93892142400], [2.600, 3.80107226970, 70.63699698310], [3.280, 1.75059058234, 683.98946464440], [3.260, 3.46047977615, 74.19089773630], [3.097, 5.47452034532, 302.37722397610], [2.565, 3.47443238116, 2042.49778910280], [3.158, 4.58160924364, 12492.85457412380], [3.373, 5.52806001629, 10210.31660079440], [2.619, 4.43681016753, 949.17560896980], [3.290, 1.35055242247, 515.67631941410], [3.180, 4.49938964982, 694.83822295220], [2.558, 5.07921716363, 197.79997704920], [2.902, 2.61388996483, 115.36231475990], [2.586, 4.09771865336, 1448.91086701040], [3.160, 4.82168102018, 714.67888488130], [3.016, 3.16691101108, 385.75684225250], [3.001, 3.24181300229, 1618.86854364340], [3.319, 5.98200177347, 533.83556667880], [3.307, 3.31452419197, 732.97125859000], [2.530, 0.13809025963, 591.94239068970], [2.975, 5.72770980032, 1011.42703456490], [2.857, 4.11031053901, 2267.43328563570], [3.091, 4.87979664891, 582.64179556500], [3.422, 6.18592254593, 281.48841186630], [2.501, 0.50645055144, 29.22619938800], [3.502, 0.17203520151, 371.52974825090], [2.607, 3.51828908958, 112.39336934330], [2.547, 4.45612695304, 901.22071334550], [2.778, 4.97805873371, 132.57960603750], [2.476, 1.55163657371, 1234.12729886410], [2.929, 2.34725672182, 273.15102458810], [2.724, 5.73177362443, 688.65533109040], [2.667, 6.13733078138, 161.41204655060], [2.877, 5.47506403197, 1436.54075273260], [2.779, 1.54196175338, 680.05731138130], [2.427, 4.64913431310, 392.65794093220], [3.223, 2.57976952494, 267.58564077040], [2.750, 1.29662662582, 108.98248094200], [3.220, 1.06290187940, 388.72578766910], [3.236, 3.47802643973, 283.62727588040], [3.027, 5.38233284458, 44.09217833040], [2.830, 5.70274947128, 327.43756992050], [2.768, 5.42256168790, 482.25733433210], [3.230, 5.65661970187, 134.37289528650], [2.685, 5.03687735302, 763.22448133660], [2.441, 5.19830386978, 380.23964254460], [2.608, 3.11386505876, 578.44900987100], [2.465, 1.49242672830, 141.69889060840], [2.332, 3.19371804203, 683.02625679790], [2.307, 4.07685834192, 78.92620015150], [2.280, 2.52476606956, 156.67674413540], [2.260, 6.23958645351, 400.57463708510], [2.301, 2.47762267951, 107.91869935900], [3.089, 5.69639540598, 537.39521292640], [3.074, 1.16740737548, 58.62808887270], [2.846, 0.02430566936, 563.37058260750], [2.423, 4.24559706691, 27.74172667970], [2.670, 3.48404619442, 123.01837848190], [2.228, 3.33159258912, 1257.70317210020], [2.445, 2.29979337782, 280.21638747910], [2.260, 3.85026258012, 753.14198891920], [2.195, 4.94038065567, 1222.27844944810], [2.579, 1.76841912074, 710.74673161820], [2.402, 4.47942458428, 569.04784100980], [2.181, 5.39048760967, 318.67949151700], [2.317, 6.27946729049, 493.04240216510], [2.420, 3.66436222896, 3.62333672240], ], # R1 [ [1479896.370, 3.67205705317, 74.78159856730], [71212.085, 6.22601006675, 63.73589830340], [68626.972, 6.13411265052, 149.56319713460], [20857.262, 5.24625494219, 11.04570026390], [21468.152, 2.60176704270, 76.26607127560], [24059.649, 3.14159265359, 0.00000000000], [11405.346, 0.01848461561, 70.84944530420], [7496.775, 0.42360033283, 73.29712585900], [4243.800, 1.41692350371, 85.82729883120], [3505.936, 2.58354048851, 138.51749687070], [3228.835, 5.25499602896, 3.93215326310], [3926.694, 3.15513991323, 71.81265315070], [3060.010, 0.15321893225, 1.48447270830], [3578.446, 2.31160668309, 224.34479570190], [2564.251, 0.98076846352, 148.07872442630], [2429.445, 3.99440122468, 52.69019803950], [1644.719, 2.65349313124, 127.47179660680], [1583.766, 1.43045619196, 78.71375183040], [1413.112, 4.57461892062, 202.25339517410], [1489.525, 2.67559167316, 56.62235130260], [1403.237, 1.36985349744, 77.75054398390], [1228.220, 1.04703640149, 62.25142559510], [1508.028, 5.05996325425, 151.04766984290], [992.085, 2.17168865909, 65.22037101170], [1032.731, 0.26459059027, 131.40394986990], [861.867, 5.05530802218, 351.81659230870], [744.445, 3.07640148939, 35.16409022120], [604.362, 0.90717667985, 984.60033162190], [646.851, 4.47290422910, 70.32818044240], [574.710, 3.23070708457, 447.79581952650], [687.470, 2.49912565674, 77.96299230500], [623.602, 0.86253073820, 9.56122755560], [527.794, 5.15136007084, 2.96894541660], [561.839, 2.71778158980, 462.02291352810], [530.364, 5.91655309045, 213.29909543800], [460.080, 4.22302465979, 12.53017297220], [494.280, 0.46291078127, 145.63104387150], [487.336, 0.70614146398, 380.12776796000], [380.908, 3.85089591694, 3.18139373770], [444.352, 2.15558291251, 67.66805156650], [338.800, 2.53820897704, 18.15924726470], [372.947, 5.05141251694, 529.69096509460], [348.345, 1.74874852104, 71.60020482960], [405.881, 1.22961727600, 22.09140052780], [268.913, 6.24069521597, 340.77089204480], [255.585, 2.95695013627, 84.34282612290], [259.465, 3.92053708924, 59.80374504030], [224.731, 3.90961468562, 160.60889739850], [221.710, 3.64727173951, 137.03302416240], [254.591, 3.50411592815, 38.13303563780], [238.290, 2.04879982674, 269.92144674060], [272.355, 3.38363105223, 222.86032299360], [200.648, 1.24861003313, 69.36497259590], [234.153, 0.27825220612, 108.46121608020], [188.515, 4.41307507326, 265.98929347750], [211.691, 0.68027381802, 111.43016149680], [205.946, 1.53379817229, 284.14854074220], [196.179, 4.77152996605, 299.12639426920], [153.102, 5.21761881347, 209.36694217490], [162.563, 4.34054353610, 33.67961751290], [150.563, 1.98966326297, 54.17467074780], [137.012, 0.40323866041, 195.13984817330], [117.171, 0.39649791652, 87.31177153950], [127.913, 2.40333045173, 39.61750834610], [104.218, 2.92152185788, 134.58534360760], [103.862, 1.81622936156, 72.33391801250], [105.741, 0.17067407327, 79.23501669220], [106.419, 0.69799543514, 2.44768055480], [95.326, 4.02880266738, 82.85835341460], [104.772, 4.43616414428, 305.34616939270], [93.825, 5.01823592717, 51.20572533120], [103.739, 2.57553519741, 191.20769491020], [106.679, 1.22996874093, 225.82926841020], [93.452, 3.09274255916, 77.22927912210], [97.398, 3.81380841075, 152.53214255120], [84.583, 5.72473747348, 68.84370773410], [77.395, 0.08281157747, 45.57665103870], [76.207, 4.20384370842, 73.81839072080], [86.249, 0.53131085736, 145.10977900970], [75.795, 3.78559826812, 75.74480641380], [77.592, 1.63628139623, 479.28838891550], [84.612, 0.61662456010, 116.42609634290], [100.209, 4.94084867643, 120.35824960600], [72.142, 4.30505812564, 565.11568774670], [70.733, 2.38450718488, 60.76695288680], [71.585, 3.93906647867, 153.49535039770], [84.566, 5.56037336584, 344.70304530790], [63.556, 1.93742986679, 41.64449777560], [71.619, 3.71213491656, 408.43894361130], [61.594, 3.90006698249, 4.45341812490], [64.973, 1.55845503407, 106.97674337190], [59.913, 0.60110866128, 74.89347315190], [62.000, 4.39369268007, 453.42489381900], [63.361, 4.19159979468, 184.72728735580], [62.301, 3.23773103318, 422.66603761290], [54.427, 3.72545550857, 7.11354700080], [52.474, 6.08562717749, 404.50679034820], [59.073, 1.55568469603, 456.39383923560], [52.597, 3.50492233970, 125.98732389850], [52.835, 5.20100035142, 358.93013930950], [58.123, 5.33480562448, 220.41264243880], [52.909, 4.44819701196, 426.59819087600], [50.934, 0.52638534200, 490.33408917940], [54.968, 1.60146090981, 14.97785352700], [49.491, 4.25534603275, 5.41662597140], [51.303, 0.36772379136, 206.18554843720], [51.821, 1.75832999538, 8.07675484730], [56.964, 0.84114552694, 146.59425171800], [49.109, 0.94061875871, 99.16062095550], [46.361, 5.35115472594, 152.74459087230], [48.023, 1.97249712347, 288.08069400530], [43.772, 3.03713403879, 20.60692781950], [49.493, 5.84619560979, 112.91463420510], [41.987, 0.04620500196, 128.95626931510], [48.628, 3.62817742782, 81.00137369080], [41.472, 2.33730376429, 277.03499374140], [39.983, 5.09525356576, 35.42472265210], [41.948, 2.51050760642, 24.37902238820], [38.325, 3.61946898382, 173.94221952280], [38.385, 2.06003220130, 333.65734504400], [42.597, 1.26088737300, 1514.29129671650], [38.855, 0.74239364306, 347.88443904560], [38.535, 4.95064283065, 92.94084583200], [33.234, 1.38358507432, 74.66972398270], [33.788, 3.68407945156, 66.91729204110], [38.953, 5.49236040328, 200.76892246580], [31.850, 0.53990592534, 203.73786788240], [33.320, 6.26012644668, 1059.38193018920], [30.806, 2.53797566903, 977.48678462110], [29.198, 5.43116906000, 58.10682401090], [30.059, 0.19481555617, 387.24131496080], [28.997, 3.10546504714, 991.71387862270], [35.640, 3.72863820177, 96.87299909510], [27.607, 0.37142052647, 80.19822453870], [32.492, 4.38403518987, 221.37585028530], [27.029, 1.35552416596, 0.96320784650], [31.276, 0.79566430555, 373.01422095920], [31.122, 2.05381353845, 230.56457082540], [25.883, 3.46808071409, 144.14657116320], [30.201, 0.71392007232, 109.94568878850], [24.688, 3.04162764358, 14.01464568050], [27.882, 4.76559523368, 415.55249061210], [25.110, 5.12405829717, 81.37388070630], [25.582, 2.56904073164, 522.57741809380], [24.351, 2.20289059750, 628.85158605010], [25.479, 1.79521877300, 143.62530630140], [24.182, 5.67160913092, 443.86366626340], [25.679, 5.43185950751, 546.95644048200], [24.177, 5.59982039849, 32.19514480460], [24.428, 3.30271734903, 617.80588578620], [23.535, 0.65842590604, 46.20979048510], [22.371, 4.82094751058, 135.54855145410], [27.179, 2.02720001624, 536.80451209540], [22.213, 4.61664624220, 391.17346822390], [21.973, 4.59216260632, 241.61027108930], [20.813, 0.24392941148, 465.95506679120], [27.264, 2.15210992383, 140.00196957900], [21.356, 5.27168432406, 159.12442469020], [23.632, 4.94972840898, 561.18353448360], [24.921, 0.54550733267, 181.75834193920], [23.027, 3.80632203913, 55.13787859430], [19.799, 1.30259938601, 518.64526483070], [19.252, 1.31448491434, 543.02428721890], [19.704, 4.90869636976, 909.81873305460], [20.801, 0.91178207093, 76.47851959670], [19.876, 0.66494008343, 66.70484372000], [18.957, 4.67998817036, 98.89998852460], [25.913, 4.52903186569, 454.90936652730], [21.888, 1.23372931740, 41.10198105440], [18.703, 6.09640927844, 103.09277421860], [18.207, 0.97283864525, 55.65914345610], [21.247, 4.19373732137, 329.72519178090], [19.408, 4.31468230800, 6.21977512350], [18.497, 5.78624335074, 142.44965013380], [22.588, 5.84591645052, 297.64192156090], [16.770, 6.09084656811, 211.81462272970], [16.432, 2.50008469020, 61.28821774860], [20.361, 3.16137245375, 186.21176006410], [15.955, 2.98317221345, 81.89514556810], [18.953, 6.01226591746, 155.78297225810], [17.686, 4.82613965176, 273.10284047830], [15.141, 3.65588411561, 472.17484191470], [18.440, 3.47582817224, 36.64856292950], [16.303, 0.13086415177, 554.06998748280], [18.633, 0.23932740251, 23.57587323610], [14.352, 2.69389896537, 70.11573212130], [15.190, 2.43789398875, 486.40193591630], [14.002, 5.12389205028, 29.20494752860], [15.758, 4.24947053051, 146.38180339690], [14.125, 1.55719788547, 110.20632121940], [17.477, 1.94549668506, 835.03713448730], [13.691, 1.63831110442, 92.04707395470], [13.801, 0.13721153975, 235.39049596580], [13.573, 2.85427895075, 49.50880430180], [12.563, 3.20921738646, 100.38446123290], [12.390, 2.88595800082, 60.55450456570], [14.986, 0.32593957273, 259.50888592310], [12.922, 2.77565630582, 105.49227066360], [12.323, 3.36427641421, 440.68227252570], [15.233, 0.25589845180, 258.87574647670], [12.106, 0.10857558014, 157.63995198190], [12.883, 0.30655541587, 124.29040286910], [10.900, 3.42905554547, 33.13710079170], [11.206, 4.98840478043, 604.47256366190], [10.812, 3.86253020441, 767.36908292080], [11.561, 2.60450144944, 166.82867252200], [10.200, 5.27810824796, 264.50482076920], [10.926, 0.64149188846, 558.00214074590], [12.315, 4.33998516461, 16.67477455640], [9.946, 0.67298666287, 31.49256938900], [12.641, 4.83194943583, 114.39910691340], [10.479, 0.20404797652, 275.55052103310], [11.291, 0.96120625051, 373.90799283650], [12.144, 1.91712815063, 378.64329525170], [12.229, 0.70465454670, 218.40690486870], [10.753, 5.74480767273, 88.11492069160], [9.481, 0.65566927406, 353.30106501700], [11.006, 2.62953946665, 154.01661525950], [9.113, 2.99457723478, 681.54178408960], [10.429, 2.33056994007, 132.88842257820], [9.169, 4.79284571455, 216.48048917570], [9.341, 0.75923548315, 129.91947716160], [8.917, 0.78008399009, 67.35923502580], [8.757, 6.12717748848, 150.52640498110], [9.637, 2.88664912193, 67.88049988760], [10.465, 0.36943456465, 699.70103135430], [9.301, 1.49620591593, 19.64371997300], [9.367, 5.26481516822, 80.71948940050], [10.076, 3.56540311122, 278.51946644970], [9.455, 3.06088968751, 149.67507171920], [9.168, 3.02528121597, 162.09337010680], [8.395, 2.18455001650, 342.25536475310], [9.233, 5.32613442062, 152.01087768940], [9.786, 2.43713607191, 75.30286342910], [10.029, 0.81917102953, 339.28641933650], [9.429, 1.93671715384, 147.11551657980], [7.861, 4.71717822837, 106.01353552540], [8.813, 0.01616162513, 42.58645376270], [7.808, 0.61104170424, 135.33610313300], [8.193, 2.59644466423, 469.13646052890], [10.084, 2.58619215129, 50.40257617910], [8.574, 5.69115937472, 760.25553592000], [7.525, 2.64764195045, 5.93789083320], [8.699, 0.54050826161, 66.18357885820], [8.027, 1.94079002321, 180.27386923090], [7.547, 5.94593031762, 97.41551581630], [7.597, 5.80197738402, 450.97721326420], [8.666, 3.69933873164, 300.61086697750], [7.685, 1.47377256329, 32.24332891440], [8.195, 2.30769657654, 254.94359321360], [8.473, 1.27680705911, 39.35687591520], [7.026, 0.68091865104, 874.39401040250], [8.898, 0.16273040357, 43.12897048390], [7.205, 4.98177531040, 117.91056905120], [7.389, 4.09295183164, 92.30770638560], [7.314, 5.04313738379, 756.32338265690], [8.454, 1.22026161161, 79.44746501330], [6.925, 6.04100189247, 350.33211960040], [8.793, 1.33398658801, 48.75804477640], [7.270, 3.32609286227, 68.18931642830], [6.825, 4.77832275072, 142.66209845490], [6.816, 3.90452052962, 480.77286162380], [7.062, 1.27536949417, 68.56182344380], [7.947, 4.29940380231, 624.91943278700], [6.741, 5.43264472273, 610.69233878540], [6.529, 5.43599941795, 88.79624424780], [7.635, 4.81180007736, 312.45971639350], [7.235, 3.18370421558, 268.43697403230], [8.133, 1.98936178361, 692.58748435350], [6.477, 1.05238958778, 685.47393735270], [6.630, 1.37656948077, 291.26208774300], [6.878, 2.59188446778, 282.66406803390], [7.123, 5.79744758808, 468.24268865160], [6.320, 2.58497126634, 458.09076026500], [6.222, 5.68982546821, 113.87784205160], [7.635, 0.49482302003, 296.15744885260], [8.521, 0.00576688485, 227.31374111850], [6.520, 3.99093726386, 42.53826965290], [6.435, 1.03721543102, 365.90067395840], [6.107, 0.35071886662, 148.59998928810], [8.199, 1.13448902886, 69.15252427480], [6.102, 0.94101111641, 13.33332212430], [5.989, 4.98445156102, 184.09414790940], [6.355, 0.16346166674, 228.27694896500], [7.955, 4.03567630186, 183.24281464750], [5.884, 4.40842406038, 19.12245511120], [5.938, 5.40863870407, 17.52610781830], [5.869, 5.39494525133, 95.38852638680], [5.775, 2.81250784939, 121.84272231430], [6.070, 4.23605170027, 119.50691634410], [6.349, 3.52304701692, 285.63301345050], [5.780, 0.17831551537, 458.84151979040], [5.674, 4.16711163603, 89.75945209430], [5.534, 4.24741728108, 75.53235809270], [5.648, 2.81224199321, 154.97982310600], [6.939, 3.31979953743, 306.83064210100], [5.682, 4.79764449768, 248.72381809010], [6.087, 4.04640130992, 271.40591944890], [6.869, 1.34392408836, 7.86430652620], [5.611, 5.32955957046, 920.86443331850], [6.495, 0.45735814276, 106.27416795630], [5.353, 2.49825965802, 24.11838995730], [6.612, 5.24626646696, 58.31927233200], [5.552, 0.24515487696, 173.68158709190], [5.209, 6.07866998675, 134.06407874580], [5.176, 3.69984512887, 778.41478318470], [5.949, 3.63204266272, 189.72322220190], [6.360, 0.35370738262, 411.62033734900], [5.147, 1.55440402971, 193.65537546500], [6.436, 5.18759014405, 120.99138905240], [6.994, 4.85978914075, 419.48464387520], [5.323, 0.50787742639, 16.46232623530], [5.085, 1.28917723765, 267.47376618580], [5.993, 4.70505267412, 298.23262239190], [5.507, 2.72405080404, 986.08480433020], [6.163, 1.87793216012, 397.39324334740], [4.846, 5.66714115710, 90.82323367730], [4.875, 1.24385851949, 25.60286266560], [5.374, 0.31175745933, 192.69216761850], [5.262, 1.85699096844, 114.94162363460], [5.373, 6.22242588334, 91.45637312370], [5.050, 3.39322756907, 831.10498122420], [4.637, 0.84958882655, 403.02231763990], [6.382, 2.77560901069, 198.32124191100], [4.685, 4.94029403928, 902.70518605380], [5.005, 1.40309022449, 6.15033915430], [5.014, 5.57665259095, 451.94042111070], [4.580, 2.47734499363, 31.23193695810], [5.129, 3.23528704150, 109.31254934210], [4.459, 6.22635092697, 207.88246946660], [5.734, 0.96616252776, 483.22054217860], [4.425, 2.74721673213, 823.99143422340], [4.575, 1.87994871749, 44.72531777680], [4.748, 0.34902594832, 457.87831194390], [4.268, 4.89983575247, 124.50285119020], [4.709, 5.28612293112, 449.28029223480], [5.761, 2.09247769051, 187.69623277240], [4.284, 0.66132439268, 210.33015002140], [4.318, 1.68857333749, 309.27832265580], [4.332, 1.41872733238, 25.12978191360], [4.305, 1.05990546337, 606.76018552230], [4.519, 5.84384426255, 905.88657979150], [3.934, 0.41768897300, 180.16199464630], [3.973, 3.22666150606, 639.89728631400], [4.871, 4.61331971606, 258.02441321480], [4.604, 4.77631056831, 463.50738623640], [3.943, 3.31312639875, 107.49800823370], [4.217, 0.73383451512, 497.44763618020], [4.057, 1.67333716577, 7.42236354150], [3.854, 6.13547145503, 34.20088237470], [4.617, 5.89829880253, 303.86169668440], [5.086, 2.85235518740, 28.31117565130], [5.337, 2.36556705745, 477.80391620720], [4.456, 1.74674336635, 95.97922721780], [4.138, 3.80344455465, 460.53844081980], [3.812, 2.48508006441, 25.27279426550], [4.732, 0.87519409311, 255.05546779820], [3.843, 4.02615028031, 104.00779795530], [3.776, 2.89171052095, 27.08733537390], [4.932, 0.36238909407, 123.53964334370], [4.371, 3.74322467592, 376.19561469690], [3.747, 3.04126115463, 142.14083359310], [4.232, 4.31629167726, 446.31134681820], [3.685, 3.26448469664, 170.76082578510], [3.575, 4.31199276037, 572.22923474750], [3.567, 4.08542270507, 433.71173787680], [4.496, 2.10358455875, 838.21852822500], [3.505, 3.53902384390, 520.12973753900], [3.524, 3.75716903766, 473.06861379200], [3.962, 5.33706246667, 43.28902917830], [3.597, 3.65066955203, 976.00231191280], [3.487, 2.12239114397, 316.39186965660], [3.475, 4.44351326599, 384.05992122310], [3.628, 2.11511417759, 73.18525127440], [3.702, 3.86923731076, 981.63138620530], [3.687, 5.18698183343, 993.19835133100], [3.599, 2.07986409347, 47.69426319340], [3.807, 4.21821126511, 196.62432088160], [4.707, 4.56309173897, 47.06112374700], [4.312, 0.38740046308, 988.53248488500], [3.867, 2.08559458308, 457.35704708210], [4.723, 4.16947683948, 219.89137757700], [3.527, 0.20371576470, 394.35486196160], [3.644, 5.82023483708, 586.31331639720], [3.328, 2.93840719007, 535.91074021810], [3.321, 4.19289134366, 114.13847448250], [4.128, 3.06165703109, 377.15882254340], [3.545, 4.41886084391, 1293.87865427770], [3.295, 2.97049569593, 15.19030184810], [3.337, 6.23473900765, 9947.05568153210], [3.253, 5.22412177835, 425.11371816770], [3.677, 5.31389484415, 141.69889060840], [3.242, 4.68868636498, 978.97125732940], [3.266, 3.57072306171, 17.26547538740], [3.435, 0.52794358986, 141.48644228730], [3.242, 2.62760698007, 6.59228213900], [3.613, 1.94737668557, 661.09491496450], [3.182, 0.36603315110, 449.49274055590], [3.311, 1.25616383318, 233.90602325750], [3.403, 6.03792583170, 199.28444975750], [4.196, 4.26442082589, 381.61224066830], [3.961, 4.53281422377, 916.93228005540], [3.846, 3.76849990033, 8.59801970910], [3.350, 5.63661413371, 444.82687410990], [3.780, 5.35722293289, 328.24071907260], [3.166, 2.16351748263, 983.11585891360], [3.538, 1.89746744103, 280.96714700450], [3.930, 2.09444900058, 653.98136796370], [3.282, 1.91872815218, 2349.32843120380], [3.269, 0.52855777633, 450.45594840240], [3.582, 1.60170266832, 1587.58842257550], [3.522, 2.51782036180, 237.67811782620], [3.024, 3.54567524563, 94.42531854030], [3.528, 4.79818282081, 406.95447090300], [2.996, 2.59155293620, 6133.51265285680], [3.146, 2.18094827839, 216.92243216040], [3.610, 6.15486273902, 171.65459766240], [2.977, 0.69478628170, 294.30046912880], [3.377, 1.21382647091, 162.89651925890], [3.347, 4.14981703949, 214.78356814630], [2.953, 2.18721777019, 597.35901666110], [4.049, 3.15153850922, 833.55266177900], [3.725, 5.84743216544, 6058.73105428950], [3.390, 1.18412112871, 167.72244439930], [3.142, 2.26934209337, 517.16079212240], [4.077, 0.07273073033, 1190.03512053370], [3.020, 2.64998251178, 20.44686912510], [3.926, 1.41612569694, 346.18751801620], [3.110, 1.11431255827, 1044.40407666220], [2.836, 0.62522723719, 749.20983565610], [2.831, 4.78996738581, 820.05928096030], [2.824, 0.87232289414, 30.71067209630], [3.114, 1.79734939525, 414.06801790380], [2.801, 3.99301180541, 10063.72234907640], [3.489, 1.86982946081, 371.52974825090], [3.725, 1.68366366742, 683.98946464440], [3.763, 3.28247771799, 432.81796599950], [3.493, 0.98765698465, 9988.94075050910], [3.523, 5.12512607932, 105.38039607900], [2.839, 4.22662576295, 990.22940591440], [3.432, 2.80483162230, 764.18768918310], [2.733, 0.42373696972, 354.99798604640], [3.146, 5.19208910201, 417.03696332040], [3.041, 5.75641149588, 409.92341631960], [3.379, 5.47448876584, 1396.22066897090], [3.102, 0.41684444780, 521.09294538550], [2.863, 0.41519700992, 894.84087952760], [2.707, 3.60084311477, 621.73803904930], [3.128, 5.23384180625, 424.15051032120], [3.107, 2.44919355737, 4.66586644600], [2.683, 3.88682711832, 133.10087089930], [2.660, 4.78670985324, 362.86229257260], [3.200, 1.88004939357, 331.20966448920], [2.730, 4.12217979791, 600.54041039880], [3.414, 4.93712749827, 1140.38330388000], [2.653, 5.10283251074, 118.02244363580], [3.222, 4.76521772319, 294.67297614430], [3.289, 4.26401031509, 544.50875992720], [3.100, 5.47928527930, 701.18550406260], [2.785, 5.19343849039, 144.89733068860], [2.607, 4.72531286187, 122.47586176070], [2.581, 6.27329466695, 908.33426034630], [3.285, 1.95972622670, 372.42352012820], [2.897, 0.37378090180, 582.38116313410], [2.615, 2.25516923974, 74.99404688840], [3.582, 1.27992264402, 987.56927703850], [3.115, 5.10929689813, 459.05396811150], [2.857, 5.90256930211, 525.23754696970], [2.589, 1.83177157032, 657.16276170140], [2.539, 4.14968938109, 74.73341445750], [2.797, 2.82242772664, 2036.86871481030], [2.688, 2.16500211397, 262.80789973980], [2.744, 1.54445470732, 28.57180808220], [2.539, 0.46036497385, 74.82978267710], [3.322, 3.50108539407, 82.64590509350], [2.810, 6.06709915335, 374.49869366750], [2.504, 3.52394801700, 1183.67233305830], [2.565, 1.64023845161, 73.40900044360], [2.531, 3.50486296784, 293.18850343600], [2.663, 4.23321349902, 421.18156490460], [2.793, 2.00644423849, 75.04223099820], [2.430, 1.56119387576, 136.06981631590], [2.553, 1.25909246207, 670.49608382570], [2.604, 3.87350462519, 74.03083904190], [2.510, 3.35948960782, 464.99185894470], [3.005, 0.81031349171, 73.88782669000], [3.110, 6.14956891318, 118.87377689770], [3.234, 2.45751141361, 98.35747180340], [2.774, 6.26134027482, 1022.31267613440], [2.402, 4.38353347008, 1303.27982313890], [3.296, 3.84350963765, 511.53171782990], [2.800, 2.60339313269, 74.52096613640], [3.005, 0.76247280223, 75.67537044460], [2.434, 4.94784679430, 969.62247809490], [2.632, 0.63557110200, 227.52618943960], [2.669, 0.73340228210, 73.08467753790], [2.465, 1.30648773380, 77.06922042770], [3.237, 3.19110274211, 1887.30551767570], [2.395, 2.76580569447, 768.85355562910], [3.230, 0.01981320255, 881.50755740330], [2.747, 5.59085990261, 388.72578766910], [3.008, 5.65955463660, 1969.20066324380], [3.008, 0.91409756228, 2118.76386037840], [2.465, 0.26629856014, 72.49397670690], [2.629, 4.00618677646, 26.02355379090], [2.272, 2.77069357315, 515.46387109300], [2.360, 4.12736987374, 74.62153987290], [2.255, 3.36574443950, 286.59622129700], [2.211, 5.18239546182, 59.28248017850], [2.994, 2.83179016989, 184.98791978670], [2.492, 1.19872353228, 383.09671337660], [2.355, 0.48259604722, 74.94165726170], [2.185, 6.07997119980, 63.62402371880], [2.228, 1.42452148910, 6219.33995168800], ], # R2 [ [22439.904, 0.69953118760, 74.78159856730], [4727.037, 1.69901641488, 63.73589830340], [1681.903, 4.64833551727, 70.84944530420], [1433.755, 3.52119917947, 149.56319713460], [1649.559, 3.09660078980, 11.04570026390], [770.188, 0.00000000000, 0.00000000000], [461.009, 0.76676632849, 3.93215326310], [500.429, 6.17229032223, 76.26607127560], [390.371, 4.49605283502, 56.62235130260], [389.945, 5.52673426377, 85.82729883120], [292.097, 0.20389012095, 52.69019803950], [272.898, 3.84707823651, 138.51749687070], [286.579, 3.53357683270, 73.29712585900], [205.449, 3.24758017121, 78.71375183040], [219.674, 1.96418942891, 131.40394986990], [215.788, 0.84812474187, 77.96299230500], [128.834, 2.08146849515, 3.18139373770], [148.554, 4.89840863841, 127.47179660680], [117.452, 4.93414907433, 447.79581952650], [112.690, 1.01361852218, 462.02291352810], [98.875, 6.15817742611, 224.34479570190], [91.379, 0.67973399531, 18.15924726470], [89.217, 0.23425778826, 202.25339517410], [88.206, 2.93094837724, 62.25142559510], [114.066, 4.78741873960, 145.63104387150], [103.858, 3.58561789629, 71.60020482960], [61.819, 3.29964272893, 351.81659230870], [57.782, 4.90737420887, 22.09140052780], [64.369, 3.39006689398, 1.48447270830], [71.110, 6.10490061068, 454.90936652730], [50.990, 3.86691997779, 65.22037101170], [63.537, 3.96202309168, 67.66805156650], [58.957, 5.55530463687, 9.56122755560], [48.700, 3.74709235789, 269.92144674060], [43.584, 1.92568752002, 59.80374504030], [42.170, 2.61650997054, 151.04766984290], [42.420, 6.13634453301, 284.14854074220], [44.340, 5.89997845114, 71.81265315070], [37.328, 5.91300114911, 984.60033162190], [36.201, 5.40315761474, 77.75054398390], [41.989, 2.09071623849, 12.53017297220], [31.411, 4.59200004835, 148.07872442630], [31.289, 2.26696307388, 195.13984817330], [27.150, 3.53242984046, 209.36694217490], [28.152, 4.57845964163, 77.22927912210], [26.097, 0.65978256272, 120.35824960600], [24.372, 5.86680440531, 69.36497259590], [23.037, 1.03776963677, 84.34282612290], [22.679, 1.71434243970, 160.60889739850], [27.650, 4.91488946525, 277.03499374140], [20.816, 2.19643268155, 45.57665103870], [19.961, 2.32077356180, 2.44768055480], [16.584, 4.77529536873, 213.29909543800], [16.578, 1.85615182154, 340.77089204480], [17.196, 4.36852462522, 54.17467074780], [16.053, 3.64619586667, 152.74459087230], [14.806, 5.43824503068, 408.43894361130], [13.872, 3.38531100784, 358.93013930950], [13.328, 5.25179190495, 137.03302416240], [13.286, 1.26285812368, 134.58534360760], [12.890, 3.03270380745, 92.94084583200], [12.467, 1.33213558369, 51.20572533120], [13.450, 1.53176996919, 422.66603761290], [16.442, 0.40190549188, 265.98929347750], [11.996, 5.10426418352, 191.20769491020], [12.898, 4.43242192513, 87.31177153950], [11.449, 2.02645622099, 7.11354700080], [11.826, 4.65645290272, 41.64449777560], [12.045, 3.23910807852, 116.42609634290], [11.680, 3.73278249629, 220.41264243880], [11.573, 4.16500659139, 60.55450456570], [10.175, 0.32936886913, 70.32818044240], [11.332, 1.07613885149, 72.33391801250], [9.655, 3.05950236129, 2.96894541660], [9.279, 2.43997351068, 565.11568774670], [8.986, 5.18839740735, 225.82926841020], [10.284, 1.18602582060, 344.70304530790], [8.844, 6.00894470528, 5.41662597140], [8.508, 5.24741470216, 347.88443904560], [8.319, 3.71723808749, 14.97785352700], [8.276, 2.27408171672, 299.12639426920], [8.064, 5.71681525179, 55.13787859430], [7.830, 0.90313686798, 222.86032299360], [8.335, 4.48600419464, 70.11573212130], [8.763, 5.81519440120, 153.49535039770], [8.472, 3.91387041805, 333.65734504400], [9.874, 5.96526143660, 35.16409022120], [9.647, 0.38872626737, 415.55249061210], [7.106, 1.50598488470, 991.71387862270], [6.596, 1.18068235818, 96.87299909510], [8.065, 2.25930653257, 206.18554843720], [6.479, 2.99461362786, 380.12776796000], [9.012, 6.05343622530, 146.38180339690], [6.131, 0.05596259493, 99.16062095550], [5.799, 0.82465326137, 142.44965013380], [5.816, 4.63029217647, 49.50880430180], [5.608, 0.66268449799, 58.10682401090], [5.966, 2.48916255408, 373.01422095920], [5.710, 2.23566160404, 80.19822453870], [5.272, 5.06746739956, 440.68227252570], [5.162, 4.36457872885, 977.48678462110], [5.428, 0.85181859845, 546.95644048200], [5.766, 0.34229025692, 536.80451209540], [5.924, 5.48443563529, 76.47851959670], [5.340, 3.73073116400, 23.57587323610], [5.174, 4.13873402677, 132.88842257820], [5.310, 6.14059082194, 39.61750834610], [5.790, 3.39593613152, 458.09076026500], [5.007, 4.25821412289, 522.57741809380], [4.967, 4.79184817938, 387.24131496080], [5.183, 3.25775152471, 561.18353448360], [4.602, 1.69262282455, 152.53214255120], [5.302, 1.83522660093, 124.29040286910], [5.005, 0.36630565950, 60.76695288680], [4.454, 2.30288945184, 312.45971639350], [4.457, 0.45775730382, 33.13710079170], [5.722, 0.89523844278, 81.89514556810], [5.842, 0.92039543147, 20.60692781950], [5.743, 0.66226484448, 38.13303563780], [4.255, 3.55373860346, 479.28838891550], [4.190, 4.37674804409, 79.23501669220], [4.194, 1.64986267170, 128.95626931510], [5.125, 1.40553011416, 144.14657116320], [4.045, 6.07362424798, 19.64371997300], [3.984, 5.77178406410, 288.08069400530], [5.017, 2.99521887648, 29.20494752860], [3.842, 2.60024827897, 426.59819087600], [3.861, 3.19886211335, 159.12442469020], [3.870, 4.43713601497, 141.69889060840], [5.316, 4.07970979457, 111.43016149680], [4.553, 0.01384318412, 298.23262239190], [3.737, 5.28319518103, 353.30106501700], [3.939, 5.27301148162, 521.09294538550], [3.710, 5.15385470848, 490.33408917940], [4.039, 0.60924359087, 152.01087768940], [3.861, 1.34394383700, 535.32003938710], [4.385, 0.62057680100, 827.17282796110], [3.567, 4.71986443303, 6.90109867970], [3.576, 3.24526237368, 230.56457082540], [3.469, 0.79054323335, 983.11585891360], [4.524, 2.86819565712, 129.91947716160], [3.648, 5.59395544992, 774.48262992160], [3.513, 4.49630054276, 376.19561469690], [3.432, 2.55614913808, 258.87574647670], [4.352, 2.09804374929, 404.50679034820], [3.336, 0.89628904042, 469.13646052890], [3.274, 3.86236880159, 42.53826965290], [3.201, 2.76459652868, 248.72381809010], [3.184, 0.07709843451, 1514.29129671650], [3.783, 5.29835962126, 369.08206769610], [3.266, 2.24754480216, 73.81839072080], [3.055, 2.60120354415, 433.71173787680], [3.051, 4.54953369151, 980.66817835880], [3.062, 1.27089879603, 200.76892246580], [3.055, 1.70878161343, 639.89728631400], [3.110, 3.63187411723, 16.67477455640], [3.472, 4.93521260607, 411.62033734900], [3.531, 4.49372794858, 881.50755740330], [3.284, 5.59170577331, 472.17484191470], [3.015, 6.02967446446, 291.26208774300], [3.467, 2.17484439267, 554.06998748280], [3.138, 0.52367930477, 1094.80665284130], [3.257, 2.49339546514, 451.72797278960], [2.881, 0.50481204892, 305.34616939270], [3.082, 4.20145474081, 146.59425171800], [2.883, 2.44983947531, 135.33610313300], [2.965, 0.39294995530, 25.27279426550], [2.831, 2.52728803131, 867.28046340170], [2.728, 5.29491477549, 125.98732389850], [2.857, 4.71106805785, 218.92816973050], [2.763, 4.27510031656, 350.33211960040], [2.730, 1.98552777251, 82.85835341460], [2.857, 3.08706426922, 216.48048917570], [3.365, 3.67691210011, 661.09491496450], [2.925, 1.43646759644, 381.61224066830], [2.753, 0.39468041761, 33.67961751290], [2.756, 4.62672498840, 1357.61455258110], [3.450, 2.12911756067, 685.47393735270], [2.571, 5.92862393284, 89.75945209430], [2.677, 0.76342313946, 486.40193591630], [2.689, 4.16436463826, 235.39049596580], [2.646, 3.81808560938, 550.88859374510], [3.369, 3.17071565345, 108.46121608020], [2.613, 5.68333838067, 24.37902238820], [2.736, 1.87107584495, 529.69096509460], [2.606, 4.36605237304, 1080.57955883970], [2.407, 3.07343136742, 391.17346822390], [2.446, 5.73846381540, 535.91074021810], [2.334, 5.18878243102, 1059.38193018920], [2.568, 1.09886876369, 913.00012679230], [2.236, 6.10115874045, 140.00196957900], [3.053, 5.35047433775, 681.54178408960], ], # R3 [ [1164.382, 4.73453291602, 74.78159856730], [212.367, 3.34255734999, 63.73589830340], [196.408, 2.98004616318, 70.84944530420], [104.527, 0.95807937648, 11.04570026390], [71.681, 0.02528455665, 56.62235130260], [72.540, 0.99701907912, 149.56319713460], [54.875, 2.59436811267, 3.93215326310], [34.029, 3.81553325635, 76.26607127560], [32.081, 3.59825177840, 131.40394986990], [29.641, 3.44111535957, 85.82729883120], [36.377, 5.65035573017, 77.96299230500], [27.663, 0.42836001470, 3.18139373770], [27.464, 2.55126467481, 52.69019803950], [24.569, 5.14034173566, 78.71375183040], [19.390, 5.13477648625, 18.15924726470], [15.767, 0.37116951743, 447.79581952650], [15.441, 5.57271837433, 462.02291352810], [15.232, 3.85998573509, 73.29712585900], [15.475, 2.97496547327, 145.63104387150], [17.951, 0.00000000000, 0.00000000000], [15.958, 5.19915553904, 71.60020482960], [11.056, 6.03152659562, 138.51749687070], [10.529, 3.58261852497, 224.34479570190], [7.606, 1.44542030704, 1.48447270830], [8.121, 2.61579604319, 22.09140052780], [7.107, 5.43946774526, 269.92144674060], [6.459, 4.37142319461, 284.14854074220], [6.818, 0.01396812984, 151.04766984290], [8.101, 0.29563819537, 127.47179660680], [5.768, 4.22672716593, 373.01422095920], [5.022, 1.84154937974, 202.25339517410], [4.692, 2.78404575440, 120.35824960600], [5.087, 0.77745294804, 62.25142559510], [4.160, 1.83820502779, 72.33391801250], [3.922, 1.88900691473, 209.36694217490], [5.201, 4.15791319343, 195.13984817330], [3.636, 1.99709010456, 65.22037101170], [3.582, 3.92592140377, 124.29040286910], [3.808, 1.04818660873, 92.94084583200], [4.241, 3.95755998904, 9.56122755560], [3.497, 1.54139696251, 148.07872442630], [3.195, 2.98608971329, 387.24131496080], [3.950, 1.85721204932, 152.74459087230], [3.277, 1.40881404192, 351.81659230870], [3.605, 1.17366167402, 153.49535039770], [2.940, 6.03594958459, 12.53017297220], [2.744, 5.64674283515, 134.58534360760], [2.800, 0.79480255927, 572.22923474750], [3.054, 5.84310939105, 160.60889739850], [2.662, 1.98593312104, 450.97721326420], [2.700, 2.77036653988, 213.29909543800], [2.323, 1.67918985468, 358.93013930950], [2.254, 5.77129530133, 84.34282612290], [2.291, 4.81424601600, 536.80451209540], [2.213, 2.20360299816, 465.95506679120], ], # R4 [ [52.996, 3.00838033088, 74.78159856730], [9.887, 1.91399083603, 56.62235130260], [7.008, 5.08677527404, 11.04570026390], [6.728, 5.42924958121, 149.56319713460], [3.703, 5.22728581851, 131.40394986990], [3.361, 1.29695290266, 85.82729883120], [2.664, 0.44064577837, 63.73589830340], [2.309, 0.92380720934, 145.63104387150], [2.383, 6.21390585593, 358.93013930950], [2.288, 2.23425399117, 440.68227252570], [3.093, 3.14159265359, 0.00000000000], ], ] """This table contains Uranus' periodic terms (all of them) from the planetary theory VSOP87 for the radius vector at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in pages 449-451.""" ORBITAL_ELEM = [ [314.055005, 429.8640561, 0.0003039, 0.000000026], # L [19.218446062, -0.0000000372, 0.00000000098, 0.0], # a [0.04638122, -0.000027293, 0.0000000789, 0.00000000024], # e [0.773197, 0.0007744, 0.00003749, -0.000000092], # i [74.005957, 0.5211278, 0.00133947, 0.000018484], # Omega [173.005291, 1.486379, 0.00021406, 0.000000434] # pie ] """This table contains the parameters to compute Uranus's orbital elements for the mean equinox of date. Based in Table 31.A, page 213""" ORBITAL_ELEM_J2000 = [ [314.055005, 428.4669983, -0.00000486, 0.000000006], # L [0.773197, -0.0016869, 0.00000349, 0.000000016], # i [74.005957, 0.0741431, 0.00040539, 0.000000119], # Omega [173.005291, 0.0893212, -0.0000947, 0.000000414] # pie ] """This table contains the parameters to compute Uranus's orbital elements for the standard equinox J2000.0. Based on Table 31.B, page 215""" class Uranus(object): """ Class Uranus models that planet. """ @staticmethod def geometric_heliocentric_position(epoch, tofk5=True): """This method computes the geometric heliocentric position of planet Uranus for a given epoch, using the VSOP87 theory. :param epoch: Epoch to compute Uranus position, as an Epoch object :type epoch: :py:class:`Epoch` :param tofk5: Whether or not the small correction to convert to the FK5 system will be applied or not :type tofk5: bool :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2018, 10, 27.0) >>> l, b, r = Uranus.geometric_heliocentric_position(epoch) >>> print(round(l.to_positive(), 4)) 30.5888 >>> print(round(b, 4)) -0.5315 >>> print(round(r, 5)) 19.86964 """ return geometric_vsop_pos(epoch, VSOP87_L, VSOP87_B, VSOP87_R, tofk5) @staticmethod def apparent_heliocentric_position(epoch): """This method computes the apparent heliocentric position of planet Uranus for a given epoch, using the VSOP87 theory. :param epoch: Epoch to compute Uranus position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. """ return apparent_vsop_pos(epoch, VSOP87_L, VSOP87_B, VSOP87_R) @staticmethod def orbital_elements_mean_equinox(epoch): """This method computes the orbital elements of Uranus for the mean equinox of the date for a given epoch. :param epoch: Epoch to compute orbital elements, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the following six orbital elements: - Mean longitude of the planet (Angle) - Semimajor axis of the orbit (float, astronomical units) - eccentricity of the orbit (float) - inclination on the plane of the ecliptic (Angle) - longitude of the ascending node (Angle) - argument of the perihelion (Angle) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2065, 6, 24.0) >>> l, a, e, i, ome, arg = Uranus.orbital_elements_mean_equinox(epoch) >>> print(round(l, 6)) 235.517526 >>> print(round(a, 8)) 19.21844604 >>> print(round(e, 7)) 0.0463634 >>> print(round(i, 6)) 0.77372 >>> print(round(ome, 5)) 74.34776 >>> print(round(arg, 6)) 99.630865 """ return orbital_elements(epoch, ORBITAL_ELEM, ORBITAL_ELEM) @staticmethod def orbital_elements_j2000(epoch): """This method computes the orbital elements of Uranus for the standard equinox J2000.0 for a given epoch. :param epoch: Epoch to compute orbital elements, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the following six orbital elements: - Mean longitude of the planet (Angle) - Semimajor axis of the orbit (float, astronomical units) - eccentricity of the orbit (float) - inclination on the plane of the ecliptic (Angle) - longitude of the ascending node (Angle) - argument of the perihelion (Angle) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2065, 6, 24.0) >>> l, a, e, i, ome, arg = Uranus.orbital_elements_j2000(epoch) >>> print(round(l, 6)) 234.602641 >>> print(round(a, 8)) 19.21844604 >>> print(round(e, 7)) 0.0463634 >>> print(round(i, 6)) 0.772094 >>> print(round(ome, 5)) 74.05468 >>> print(round(arg, 6)) 99.009058 """ return orbital_elements(epoch, ORBITAL_ELEM, ORBITAL_ELEM_J2000) @staticmethod def geocentric_position(epoch): """This method computes the geocentric position of Uranus (right ascension and declination) for the given epoch, as well as the elongation angle. :param epoch: Epoch to compute geocentric position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the right ascension, the declination and the elongation angle as Angle objects :rtype: tuple :raises: TypeError if input value is of wrong type. >>> epoch = Epoch(1992, 12, 20.0) >>> ra, dec, elon = Uranus.geocentric_position(epoch) >>> print(ra.ra_str(n_dec=1)) 19h 13' 48.7'' >>> print(dec.dms_str(n_dec=1)) -22d 46' 13.0'' >>> print(elon.dms_str(n_dec=1)) 18d 44' 18.7'' """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Compute the heliocentric position of Uranus l, b, r = Uranus.geometric_heliocentric_position(epoch, tofk5=False) # Compute the heliocentric position of the Earth l0, b0, r0 = Earth.geometric_heliocentric_position(epoch, tofk5=False) # Convert to radians lr = l.rad() br = b.rad() l0r = l0.rad() b0r = b0.rad() # Compute first iteration x = r * cos(br) * cos(lr) - r0 * cos(b0r) * cos(l0r) y = r * cos(br) * sin(lr) - r0 * cos(b0r) * sin(l0r) z = r * sin(br) - r0 * sin(b0r) delta = sqrt(x * x + y * y + z * z) tau = 0.0057755183 * delta # Adjust the epoch for light-time epoch -= tau # Compute again Uranus coordinates with this correction l, b, r = Uranus.geometric_heliocentric_position(epoch, tofk5=False) # Compute second iteration lr = l.rad() br = b.rad() x = r * cos(br) * cos(lr) - r0 * cos(b0r) * cos(l0r) y = r * cos(br) * sin(lr) - r0 * cos(b0r) * sin(l0r) z = r * sin(br) - r0 * sin(b0r) # Compute longitude and latitude lamb = atan2(y, x) beta = atan2(z, sqrt(x * x + y * y)) # Now, let's compute the aberration effect t = (epoch - JDE2000) / 36525 e = 0.016708634 + t * (-0.000042037 - t * 0.0000001267) pie = 102.93735 + t * (1.71946 + t * 0.00046) pie = radians(pie) lon = l0 + 180.0 lon = lon.rad() k = 20.49552 # The constant of aberration deltal1 = k * (-cos(lon - lamb) + e * cos(pie - lamb)) / cos(beta) deltab1 = -k * sin(beta) * (sin(lon - lamb) - e * sin(pie - lamb)) deltal1 = Angle(0, 0, deltal1) deltab1 = Angle(0, 0, deltab1) # Correction to FK5 system lamb = Angle(lamb, radians=True) lamb = lamb.to_positive() beta = Angle(beta, radians=True) l_prime = lamb - t * (1.397 + t * 0.00031) deltal2 = Angle(0, 0, -0.09033) a = 0.03916 * (cos(l_prime.rad()) + sin(l_prime.rad())) a = a * tan(b.rad()) deltal2 += Angle(0, 0, a) deltab2 = 0.03916 * (cos(l_prime.rad()) - sin(l_prime.rad())) deltab2 = Angle(0, 0, deltab2) # Apply the corrections lamb = lamb + deltal1 + deltal2 beta = beta + deltab1 + deltab2 # Correction for nutation dpsi = nutation_longitude(epoch) lamb += dpsi e = true_obliquity(epoch) ra, dec = ecliptical2equatorial(lamb, beta, e) # Let's compute the elongation angle lons, lats, rs = Sun.apparent_geocentric_position(epoch) lambr = lamb.rad() lsr = lons.rad() betar = beta.rad() elon = acos(cos(betar) * cos(lambr - lsr)) elon = Angle(elon, radians=True) return ra, dec, elon @staticmethod def conjunction(epoch): """This method computes the time of the conjunction closest to the given epoch. :param epoch: Epoch close to the desired conjunction :type epoch: :py:class:`Epoch` :returns: The time when the conjunction happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(1993, 10, 1.0) >>> conj = Uranus.conjunction(epoch) >>> y, m, d = conj.get_date() >>> print(y) 1994 >>> print(m) 1 >>> print(round(d, 4)) 12.7365 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Uranus' conjunction a = 2451579.489 b = 369.656035 m0 = 31.5219 m1 = 4.333093 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 # Compute a couple auxiliary angles ee = 207.83 + 8.51 * t ff = 108.84 + 419.96 * t # Convert to radians ee = Angle(ee).rad() ff = Angle(ff).rad() corr = (-0.0859 + t * 0.0003 + sin(m) * (-3.8179 + t * (-0.0148 + t * 0.00003)) + cos(m) * (5.1228 + t * (-0.0105 - t * 0.00002)) + sin(2.0 * m) * (-0.0803 + t * 0.0011) + cos(2.0 * m) * (-0.1905 - t * 0.0006) + sin(3.0 * m) * (0.0088 + t * 0.0001) + cos(ee) * (0.885) + cos(ff) * (0.2153)) to_return = jde0 + corr return Epoch(to_return) @staticmethod def opposition(epoch): """This method computes the time of the opposition closest to the given epoch. :param epoch: Epoch close to the desired opposition :type epoch: :py:class:`Epoch` :returns: The time when the opposition happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(1780, 12, 1.0) >>> oppo = Uranus.opposition(epoch) >>> y, m, d = oppo.get_date() >>> print(y) 1780 >>> print(m) 12 >>> print(round(d, 4)) 17.5998 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Uranus' opposition a = 2451764.317 b = 369.656035 m0 = 213.6884 m1 = 4.333093 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 # Compute a couple auxiliary angles ee = 207.83 + 8.51 * t ff = 108.84 + 419.96 * t # Convert to radians ee = Angle(ee).rad() ff = Angle(ff).rad() corr = (0.0844 - t * 0.0006 + sin(m) * (-0.1048 + t * 0.0246) + cos(m) * (-5.1221 + t * (0.0104 + t * 0.00003)) + sin(2.0 * m) * (-0.1428 + t * 0.0005) + cos(2.0 * m) * (-0.0148 - t * 0.0013) + cos(3.0 * m) * (0.0055) + cos(ee) * (0.885) + cos(ff) * (0.2153)) to_return = jde0 + corr return Epoch(to_return) @staticmethod def perihelion_aphelion(epoch, perihelion=True): """This method computes the time of Perihelion (or Aphelion) closer to a given epoch. :param epoch: Epoch close to the desired Perihelion (or Aphelion) :type epoch: :py:class:`Epoch` :param peihelion: If True, the epoch of the closest Perihelion is computed, if False, the epoch of the closest Aphelion is found. :type bool: :returns: The epoch of the desired Perihelion (or Aphelion) :rtype: :py:class:`Epoch` :raises: TypeError if input values are of wrong type. .. note:: The solution provided by this method may have several days of error. >>> epoch = Epoch(1880, 1, 1.0) >>> e = Uranus.perihelion_aphelion(epoch) >>> y, m, d = e.get_date() >>> print(y) 1882 >>> print(m) 3 >>> print(int(d)) 18 >>> epoch = Epoch(2090, 1, 1.0) >>> e = Uranus.perihelion_aphelion(epoch, perihelion=False) >>> y, m, d = e.get_date() >>> print(y) 2092 >>> print(m) 11 >>> print(int(d)) 22 """ if not isinstance(epoch, Epoch): raise TypeError("Invalid input value") # First approximation k = 0.0119 * (epoch.year() - 2051.1) if perihelion: k = round(k) else: k = round(k + 0.5) - 0.5 jde = 2470213.5 + k * (30694.8767 - k * 0.00541) # Compute the epochs 1 year before and after jde_before = jde - 360.0 jde_after = jde + 360.0 # Compute the Sun-Uranus distance for each epoch l, b, r_b = Uranus.geometric_heliocentric_position(Epoch(jde_before)) l, b, r = Uranus.geometric_heliocentric_position(Epoch(jde)) l, b, r_a = Uranus.geometric_heliocentric_position(Epoch(jde_after)) # Call an interpolation object m = Interpolation([jde_before, jde, jde_after], [r_b, r, r_a]) sol = m.minmax() return Epoch(sol) @staticmethod def passage_nodes(epoch, ascending=True): """This function computes the time of passage by the nodes (ascending or descending) of Uranus, nearest to the given epoch. :param epoch: Epoch closest to the node passage :type epoch: :py:class:`Epoch` :param ascending: Whether the time of passage by the ascending (True) or descending (False) node will be computed :type ascending: bool :returns: Tuple containing: - Time of passage through the node (:py:class:`Epoch`) - Radius vector when passing through the node (in AU, float) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(2019, 1, 1) >>> time, r = Uranus.passage_nodes(epoch) >>> year, month, day = time.get_date() >>> print(year) 2028 >>> print(month) 8 >>> print(round(day, 1)) 23.2 >>> print(round(r, 4)) 19.3201 """ if not isinstance(epoch, Epoch): raise TypeError("Invalid input types") # Get the orbital parameters l, a, e, i, ome, arg = Uranus.orbital_elements_mean_equinox(epoch) # Compute the time of passage through perihelion t = Uranus.perihelion_aphelion(epoch) # Get the time of passage through the node time, r = passage_nodes_elliptic(arg, e, a, t, ascending) return time, r @staticmethod def magnitude(sun_dist, earth_dist): """This function computes the approximate magnitude of Uranus. :param sun_dist: Distance from Uranus to Sun, in Astronomical Units :type sun_dist: float :param earth_dist: Distance from Uranus to Earth, in Astronomical Units :type earth_dist: float :returns: Uranus's magnitude :rtype: float :raises: TypeError if input values are of wrong type. """ if not (isinstance(sun_dist, float) and isinstance(earth_dist, float)): raise TypeError("Invalid input types") m = -6.85 + 5.0 * log10(sun_dist * earth_dist) return round(m, 1) def main(): # Let's define a small helper function def print_me(msg, val): print("{}: {}".format(msg, val)) # Let's show some uses of Uranus class print("\n" + 35 * "*") print("*** Use of Uranus class") print(35 * "*" + "\n") # Let's now compute the heliocentric position for a given epoch epoch = Epoch(2018, 10, 27.0) lon, lat, r = Uranus.geometric_heliocentric_position(epoch) print_me("Geometric Heliocentric Longitude", lon.to_positive()) print_me("Geometric Heliocentric Latitude", lat) print_me("Radius vector", r) print("") # Compute the geocentric position for 1992/12/20: epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Uranus.geocentric_position(epoch) print_me("Right ascension", ra.ra_str(n_dec=1)) print_me("Declination", dec.dms_str(n_dec=1)) print_me("Elongation", elon.dms_str(n_dec=1)) print("") # Print mean orbital elements for Uranus at 2065.6.24 epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Uranus.orbital_elements_mean_equinox(epoch) print_me("Mean longitude of the planet", round(l, 6)) # 235.517526 print_me("Semimajor axis of the orbit (UA)", round(a, 8)) # 19.21844604 print_me("Eccentricity of the orbit", round(e, 7)) # 0.0463634 print_me("Inclination on plane of the ecliptic", round(i, 6)) # 0.77372 print_me("Longitude of the ascending node", round(ome, 5)) # 74.34776 print_me("Argument of the perihelion", round(arg, 6)) # 99.630865 print("") # Compute the time of the conjunction close to 1993/10/1 epoch = Epoch(1993, 10, 1.0) conj = Uranus.conjunction(epoch) y, m, d = conj.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Conjunction date", date) # Compute the time of the opposition close to 1780/12/1 epoch = Epoch(1780, 12, 1.0) oppo = Uranus.opposition(epoch) y, m, d = oppo.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Opposition date", date) print("") # Find the epoch of the Perihelion closer to 1780/1/1 epoch = Epoch(1780, 1, 1.0) e = Uranus.perihelion_aphelion(epoch) y, m, d = e.get_date() peri = str(y) + '/' + str(m) + '/' + str(int(d)) print_me("The Perihelion closest to 1780/1/1 happened on", peri) print("") # Compute the time of passage through an ascending node epoch = Epoch(2019, 1, 1) time, r = Uranus.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) print("Time of passage through ascending node: {}/{}/{}".format(y, m, d)) # 2028/8/23.2 print("Radius vector at ascending node: {}".format(round(r, 4))) # 19.3201 if __name__ == "__main__": main() pymeeus-0.3.6/pymeeus/Venus.py000066400000000000000000003534651355545537700164130ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from math import sin, cos, tan, acos, atan2, sqrt, radians, log10 from pymeeus.Angle import Angle from pymeeus.Epoch import Epoch, JDE2000 from pymeeus.Interpolation import Interpolation from pymeeus.Coordinates import ( geometric_vsop_pos, apparent_vsop_pos, orbital_elements, nutation_longitude, true_obliquity, ecliptical2equatorial, passage_nodes_elliptic ) from pymeeus.Earth import Earth from pymeeus.Sun import Sun """ .. module:: Venus :synopsis: Class to model Venus planet :license: GNU Lesser General Public License v3 (LGPLv3) .. moduleauthor:: Dagoberto Salazar """ VSOP87_L = [ # L0 [ [317614666.774, 0.00000000000, 0.00000000000], [1353968.419, 5.59313319619, 10213.28554621100], [89891.645, 5.30650048468, 20426.57109242200], [5477.201, 4.41630652531, 7860.41939243920], [3455.732, 2.69964470778, 11790.62908865880], [2372.061, 2.99377539568, 3930.20969621960], [1317.108, 5.18668219093, 26.29831979980], [1664.069, 4.25018935030, 1577.34354244780], [1438.322, 4.15745043958, 9683.59458111640], [1200.521, 6.15357115319, 30639.85663863300], [761.380, 1.95014702120, 529.69096509460], [707.676, 1.06466707214, 775.52261132400], [584.836, 3.99839884762, 191.44826611160], [769.314, 0.81629615911, 9437.76293488700], [499.915, 4.12340210074, 15720.83878487840], [326.221, 4.59056473097, 10404.73381232260], [429.498, 3.58642859752, 19367.18916223280], [326.967, 5.67736583705, 5507.55323866740], [231.937, 3.16251057072, 9153.90361602180], [179.695, 4.65337915578, 1109.37855209340], [128.263, 4.22604493736, 20.77539549240], [155.464, 5.57043888948, 19651.04848109800], [127.907, 0.96209822685, 5661.33204915220], [105.547, 1.53721191253, 801.82093112380], [85.722, 0.35589249966, 3154.68708489560], [99.121, 0.83288185132, 213.29909543800], [98.804, 5.39389655503, 13367.97263110660], [82.094, 3.21596990826, 18837.49819713819], [88.031, 3.88868860307, 9999.98645077300], [71.577, 0.11145739345, 11015.10647733480], [56.122, 4.24039855475, 7.11354700080], [70.239, 0.67458813282, 23581.25817731760], [50.796, 0.24531603049, 11322.66409830440], [46.111, 5.31576465717, 18073.70493865020], [44.574, 6.06282201966, 40853.14218484400], [42.594, 5.32873337210, 2352.86615377180], [42.635, 1.79955421680, 7084.89678111520], [41.177, 0.36240972161, 382.89653222320], [35.749, 2.70448479296, 10206.17199921020], [33.893, 2.02347322198, 6283.07584999140], [29.138, 3.59230925768, 22003.91463486980], [28.479, 2.22375414002, 1059.38193018920], [29.850, 4.02176977477, 10239.58386601080], [33.252, 2.10025596509, 27511.46787353720], [30.172, 4.94191919890, 13745.34623902240], [29.252, 3.51392387787, 283.85931886520], [24.424, 2.70177493852, 8624.21265092720], [20.274, 3.79493637509, 14143.49524243060], [24.322, 4.27814493315, 5.52292430740], [26.260, 0.54067587552, 17298.18232732620], [20.492, 0.58547075036, 38.02767263580], [18.988, 4.13811500642, 4551.95349705880], [23.739, 4.82870797552, 6872.67311951120], [15.885, 1.50067222283, 8635.94200376320], [19.069, 6.12025580313, 29050.78374334920], [18.269, 3.04740408477, 19999.97290154599], [13.656, 4.41336292334, 3532.06069281140], [17.094, 3.52161526430, 31441.67756975680], [10.955, 2.84562790076, 18307.80723204360], [11.048, 2.58361219075, 9786.68735533500], [9.904, 1.08737710389, 7064.12138562280], [10.576, 0.85419784436, 10596.18207843420], [9.231, 5.52471655579, 12566.15169998280], [11.599, 5.81007422699, 19896.88012732740], [11.807, 1.91250672543, 21228.39202354580], [10.105, 2.34270786693, 10742.97651130560], [8.154, 1.92331359797, 15.25247118500], [8.893, 1.97291388515, 10186.98722641120], [9.352, 4.94508904764, 35371.88726597640], [6.821, 4.39733188968, 8662.24032356300], [6.688, 1.55310437864, 14945.31617355440], [6.413, 2.17677652923, 10988.80815753500], [5.802, 1.93462125906, 3340.61242669980], [5.950, 2.96578175391, 4732.03062734340], [5.275, 5.01877102496, 28286.99048486120], [7.047, 1.00111452053, 632.78373931320], [5.048, 4.27886209626, 29580.47470844380], [6.305, 0.35506331180, 103.09277421860], [5.959, 5.04792949464, 245.83164622940], [4.651, 0.85218058876, 6770.71060124560], [5.580, 0.48723384809, 522.57741809380], [5.327, 3.03115417024, 10021.83728009940], [5.010, 5.77375166500, 28521.09277825460], [4.608, 1.93302108394, 4705.73230754360], [5.526, 3.36797048901, 25158.60171976540], [3.863, 4.89351531412, 25934.12433108940], [5.303, 0.08161426841, 39302.09696219600], [4.254, 5.36046113295, 21535.94964451540], [3.763, 1.05304597315, 19.66976089979], [4.407, 4.02575374517, 74.78159856730], [4.145, 1.14356412295, 9676.48103411560], [4.318, 4.38289970585, 316.39186965660], [3.642, 6.11733529325, 3128.38876509580], [3.238, 5.39551036769, 419.48464387520], [3.909, 4.05263635330, 9690.70812811720], [3.152, 0.72553551731, 16496.36139620240], [3.496, 0.72414615705, 3723.50895892300], [3.755, 3.80208713127, 19786.67380610799], [2.891, 3.33782737770, 32217.20018108080], [3.016, 1.57249112496, 17277.40693183380], [3.825, 0.19612312903, 426.59819087600], [3.798, 0.45524571743, 10316.37832042960], [2.570, 1.20813474107, 13936.79450513400], [2.796, 3.65128969074, 206.18554843720], [2.466, 3.61988676373, 1551.04522264800], [3.108, 1.50325806664, 43232.30665841560], [2.976, 4.79415001304, 29088.81141598500], [2.217, 3.59623681714, 24356.78078864160], [2.227, 4.96059221940, 536.80451209540], [2.397, 3.45249688427, 19374.30270923360], [2.462, 0.53295178258, 19360.07561523199], [2.205, 2.70399309963, 12592.45001978260], [2.230, 3.01413465913, 18875.52586977400], [1.858, 4.06129152783, 2379.16447357160], [1.807, 3.15086214479, 9573.38825989700], [2.238, 5.52216925076, 10138.50394764370], [2.195, 2.32046770554, 8094.52168583260], [2.101, 2.90421302975, 9967.45389998160], [1.916, 4.56513949099, 2218.75710418680], [1.467, 2.42640162465, 10234.06094170340], [1.726, 5.59790693845, 20452.86941222180], [1.455, 2.44757248737, 1589.07289528380], [1.991, 4.04623390359, 31749.23519072640], [1.406, 2.71736996917, 16983.99614745660], [1.658, 0.11252373292, 153.77881048480], [1.851, 2.92898027939, 47162.51635463520], [1.492, 1.07513892753, 9103.90699411760], [1.247, 2.48433565896, 17778.11626694899], [1.549, 4.20553654300, 3442.57494496540], [1.243, 3.95452438599, 170.67287061920], [1.694, 6.20694480406, 33019.02111220460], [1.221, 4.77931820602, 30110.16567353840], [1.206, 0.30531303095, 29864.33402730900], [1.238, 5.05581820608, 20213.27199698400], [1.152, 3.26229919481, 11.72935283600], [1.179, 1.69491074791, 20400.27277262220], [1.165, 2.88995128147, 574.34479833480], [1.306, 0.14519588607, 9146.79006902100], [1.113, 1.52598846804, 10426.58464164900], [1.104, 2.58791423813, 18849.22754997420], [1.045, 0.57539216420, 15874.61759536320], [1.360, 2.41976595457, 38734.37832446560], [0.981, 4.37930727798, 110.20632121940], [1.095, 0.49492867814, 51066.42773105500], [1.146, 4.54241454215, 10220.39909321180], [0.981, 1.65915064733, 10103.07922499160], [1.270, 4.69374306132, 9050.81084180320], [1.065, 4.41645258887, 22805.73556599360], [0.854, 2.34437926957, 6681.22485339960], [1.104, 0.49781459714, 1.48447270830], [1.075, 1.09857593161, 377.37360791580], [1.114, 4.35024775806, 51092.72605085480], [0.829, 5.41196274578, 27991.40181316000], [0.900, 2.74195379617, 41962.52073693740], [1.010, 2.96092073452, 135.62532501000], [0.768, 3.98260860494, 18844.61174413899], [1.018, 1.36891050752, 36949.23080842420], [0.726, 1.67728773965, 21202.09370374600], [0.727, 0.89048212541, 467.96499035440], [0.869, 2.93767679827, 10192.51015071860], [0.696, 5.35698039414, 10063.72234907640], [0.920, 4.17128923588, 18734.40542291960], [0.691, 1.50594097883, 27197.28169366760], [0.835, 0.48050621092, 20618.01935853360], [0.711, 0.19750098222, 18830.38465013739], [0.811, 0.16685071959, 12432.04265039780], [0.756, 3.79022623226, 9161.01716302260], [0.622, 5.33659507738, 9411.46461508720], [0.862, 5.72705356405, 10175.15251057320], [0.853, 0.10404188453, 2107.03450754240], [0.742, 3.96365892051, 813.55028395980], [0.705, 0.71229660616, 220.41264243880], [0.584, 1.71900692700, 36.02786667740], [0.612, 0.36418385449, 949.17560896980], [0.587, 1.58648949290, 6.62855890001], [0.581, 5.49288908804, 6309.37416979120], [0.581, 4.80353237853, 24150.08005134500], [0.516, 6.07328802561, 38.13303563780], [0.627, 5.47281424954, 9580.50180689780], [0.601, 1.40500080774, 1162.47470440780], [0.620, 4.00681042667, 9992.87290377220], [0.611, 3.62010998629, 7255.56965173440], [0.697, 2.22359630727, 348.92442044800], [0.693, 5.77432072851, 55022.93574707440], [0.494, 0.29761886866, 7058.59846131540], [0.563, 0.24172140474, 37410.56723987860], [0.487, 5.86917216517, 10137.01947493540], [0.493, 2.04534833854, 735.87651353180], [0.636, 2.79707392326, 40879.44050464380], [0.519, 4.13945657630, 16522.65971600220], [0.535, 4.60569597820, 19573.37471066999], [0.555, 5.88120421263, 26735.94526221320], [0.440, 5.61490649795, 23958.63178523340], [0.541, 0.62494922735, 10007.09999777380], [0.427, 4.02335620501, 14.22709400160], [0.434, 0.29028429049, 9264.10993724120], [0.451, 1.66320363626, 26087.90314157420], [0.422, 3.38413582674, 10787.63034454580], [0.569, 5.14001758731, 27490.69247804480], [0.421, 4.23407313457, 39793.76025465480], [0.458, 5.28786368820, 49.75702547180], [0.418, 5.69097790790, 14765.23904326980], [0.475, 0.97544690438, 1052.26838318840], [0.387, 4.41665162999, 21.85082932640], [0.523, 2.90512426870, 20235.12282631040], [0.506, 5.26999314618, 29999.95935231900], [0.438, 2.49457071132, 20956.26205751660], [0.530, 0.71368442157, 33794.54372352860], [0.382, 1.92119365480, 3.93215326310], [0.365, 3.81715328784, 20419.45754542119], [0.426, 2.06384083608, 38204.68735937100], [0.496, 0.44077356179, 9835.91193829520], [0.410, 4.93346326003, 19264.09638801420], [0.380, 3.79573358631, 8521.11987670860], [0.334, 5.51158557799, 10251.31321884680], [0.412, 2.56129670728, 77.67377042800], [0.418, 2.37865963521, 32.53255079140], [0.325, 6.03020523465, 18947.70451835760], [0.400, 0.91999360201, 227.47613278900], [0.437, 0.91420135162, 58953.14544329400], [0.360, 0.82477639126, 22.77520145080], [0.413, 4.22381905655, 44809.65020086340], [0.375, 3.15657291896, 19992.85935454519], [0.371, 6.05370874275, 20007.08644854680], [0.361, 5.44371227904, 19470.28193645139], [0.386, 5.28120540405, 47623.85278608960], [0.389, 0.73216672240, 19050.79729257620], [0.320, 2.84811591194, 10199.05845220940], [0.386, 3.88754165531, 1975.49254585600], [0.276, 4.33979180814, 20809.46762464520], [0.276, 0.50647429773, 9830.38901398780], [0.309, 3.79299100668, 18204.71445782499], [0.377, 0.73768791281, 11506.76976979360], [0.322, 0.96138442100, 30666.15495843280], [0.363, 1.30472406690, 9367.20271145980], [0.366, 2.79972786028, 11272.66747640020], [0.271, 4.66141338193, 846.08283475120], [0.259, 0.42031175750, 39264.06928956020], [0.285, 0.40546033634, 30.91412563500], [0.247, 4.80676426942, 36147.40987730040], [0.264, 2.71608177583, 11.04570026390], [0.233, 2.76423842887, 187.92514776260], [0.248, 1.60765612338, 10497.14486507620], [0.271, 0.82348919630, 19793.78735310880], [0.225, 3.80080957016, 8631.32619792800], [0.263, 1.92311689852, 37724.75341974820], [0.214, 5.01663795092, 639.89728631400], [0.289, 0.12342601246, 20277.00789528740], [0.210, 0.12771800254, 29.82143814880], [0.227, 4.18036609801, 17468.85519794540], [0.274, 2.34929343000, 62883.35513951360], [0.260, 5.65254501655, 48739.85989708300], [0.271, 4.95325404028, 4214.06901508480], [0.219, 2.08775228014, 194.97138446060], [0.191, 2.49267248333, 568.82187402740], [0.250, 1.52909737354, 6037.24420376200], [0.231, 5.23674429498, 491.66329245880], [0.182, 4.98046042571, 18418.01355326299], [0.188, 2.82273639603, 1385.89527633620], [0.204, 4.09939796199, 14919.01785375460], [0.176, 3.82400982460, 9360.08916445900], [0.198, 2.76491873243, 10217.21769947410], [0.168, 5.19268384202, 1066.49547719000], [0.199, 1.95301487982, 7564.83072073800], [0.171, 2.59623459612, 20405.79569692960], [0.172, 5.29332132623, 11764.33076885900], [0.165, 2.88557908025, 10207.76262190360], [0.164, 3.25435371801, 3914.95722503460], [0.200, 3.82443218090, 18314.92077904440], [0.169, 1.78341902878, 31022.75317085620], [0.179, 0.90840065587, 7880.08915333899], [0.163, 2.79665037814, 41.55079098480], [0.154, 3.90796293476, 30213.25844775700], [0.153, 0.07463240782, 28528.20632525540], [0.194, 5.95838706838, 8617.09910392640], [0.171, 4.58206324409, 20447.34648791440], [0.150, 2.11647586229, 17248.42530185440], [0.149, 2.17259986320, 9929.42622734580], [0.191, 0.82310353823, 52670.06959330260], [0.148, 2.94315921485, 41654.96311596780], [0.149, 4.49798039726, 30831.30490474460], [0.184, 2.46923348701, 34596.36465465240], [0.146, 2.69452930300, 43071.89928903080], [0.159, 2.11137713570, 19317.19254032860], [0.154, 2.76536164654, 28513.97923125379], [0.140, 4.94595038686, 9256.99639024040], [0.141, 2.57248458154, 13553.89797291080], [0.137, 1.66482327575, 2636.72547263700], [0.140, 5.23039605990, 22645.32819660879], [0.132, 5.35690599728, 19624.75016129820], [0.140, 2.90637712614, 48947.66387067660], [0.129, 3.95303623681, 32858.61374281979], [0.156, 6.01143316387, 29057.89729034999], [0.134, 5.75241675118, 68050.42387851159], [0.154, 3.66827363753, 276.74577186440], [0.176, 3.77298381177, 66813.56483573320], [0.126, 5.00217740223, 27461.71084806540], [0.135, 1.34807013920, 53285.18483524180], [0.150, 0.25029475344, 290.97286586600], [0.152, 3.13035670092, 29043.67019634839], [0.169, 5.04348109430, 73.29712585900], [0.166, 5.39219948035, 41236.03871706720], [0.163, 5.59796070987, 7576.56007357400], [0.126, 0.77391784606, 49.99662190420], [0.163, 0.44241846674, 20350.30502114640], [0.136, 3.09066368912, 418.92439890060], [0.154, 0.47086190960, 28418.00000403600], [0.120, 0.88536981986, 29573.36116144300], [0.132, 1.48009769040, 17085.95866572220], [0.126, 1.39497760964, 966.97087743560], [0.143, 3.84026797958, 14128.24277124560], [0.147, 2.11627427804, 34363.36559755600], [0.106, 2.04696932293, 37674.99639427640], [0.106, 1.43873202489, 27682.14074415640], [0.149, 0.09286508794, 8144.27871130440], [0.103, 0.01992041470, 18300.69368504279], [0.121, 3.57602835443, 45.14121963660], [0.125, 0.11630302078, 149.56319713460], [0.102, 4.17947097730, 2333.19639287200], [0.099, 1.51324741657, 10419.47109464820], [0.133, 3.02183293676, 76251.32777062019], [0.136, 4.17517197268, 3646.35037735440], [0.123, 0.44045588682, 515.46387109300], [0.113, 5.69261397718, 10110.19277199240], [0.098, 6.23797900467, 202.25339517410], [0.099, 3.75627530197, 59728.66805461800], [0.101, 4.62832557536, 65236.22129328540], [0.111, 1.25947267588, 10846.06928552420], [0.110, 5.87455577536, 38500.27603107220], [0.128, 6.01024562160, 90394.82301305079], [0.091, 1.77665981007, 1539.31586981200], [0.092, 0.99804571578, 95.97922721780], [0.120, 3.93060866244, 38526.57435087200], [0.117, 2.24143299549, 56600.27928952220], [0.118, 6.09121325940, 29786.66025688100], [0.098, 4.60938156207, 11787.10597030980], [0.097, 3.92727733144, 11794.15220700780], [0.093, 5.23395435043, 14169.79356223040], [0.096, 5.27525709038, 8734.41897214660], [0.094, 0.18166654805, 67589.08744705719], [0.110, 4.96279287076, 48417.97290558199], [0.086, 0.39533409505, 3956.50801601940], [0.085, 5.69642646462, 37703.97802425580], [0.114, 5.19676285428, 70743.77453195279], [0.081, 5.51324815184, 412.37109687440], [0.089, 2.13409771828, 44768.09940987860], [0.084, 6.02475904578, 10632.77019008620], [0.085, 4.60912614442, 45585.17281218740], [0.078, 4.47358603432, 114.43928868521], [0.097, 4.02223363535, 10218.80847051840], [0.081, 1.03870237004, 9793.80090233580], [0.092, 0.80301220092, 24383.07910844140], [0.087, 2.15124790938, 28313.28880466100], [0.075, 5.17868679355, 63658.87775083760], [0.078, 5.81927313665, 567.71863773040], [0.075, 1.72618192481, 19580.48825767080], [0.071, 0.10259261764, 90695.75207512038], [0.077, 6.16012067704, 1573.82042409880], [0.076, 5.12884307551, 49515.38250840700], [0.069, 0.29569499484, 10175.25787357520], [0.061, 4.80385549281, 19889.76658032659], [0.060, 4.56685040226, 30426.55754319500], [0.062, 4.16222812699, 42430.48572729180], [0.050, 6.17899839001, 22779.43724619380], [0.048, 1.52546758016, 20639.87018786000], [0.046, 4.41738494249, 34570.06633485260], [0.037, 4.69675087759, 44007.82926973960], ], # L1 [ [1021352943052.898, 0.00000000000, 0.00000000000], [95707.712, 2.46424448979, 10213.28554621100], [14444.977, 0.51624564679, 20426.57109242200], [213.374, 1.79547929368, 30639.85663863300], [151.669, 6.10635282369, 1577.34354244780], [173.904, 2.65535879443, 26.29831979980], [82.233, 5.70234133730, 191.44826611160], [69.734, 2.68136034979, 9437.76293488700], [52.408, 3.60013087656, 775.52261132400], [38.318, 1.03379038025, 529.69096509460], [29.633, 1.25056322354, 5507.55323866740], [25.056, 6.10664792855, 10404.73381232260], [17.772, 6.19369798901, 1109.37855209340], [16.510, 2.64330452640, 7.11354700080], [14.230, 5.45138233941, 9153.90361602180], [12.607, 1.24464400689, 40853.14218484400], [11.627, 4.97604495371, 213.29909543800], [12.563, 1.88122199199, 382.89653222320], [8.869, 0.95282732248, 13367.97263110660], [7.374, 4.39476760580, 10206.17199921020], [6.552, 2.28168808058, 2352.86615377180], [6.255, 4.08056644034, 3154.68708489560], [6.697, 5.05673427795, 801.82093112380], [4.084, 4.12103826030, 18837.49819713819], [4.882, 3.44515199115, 11015.10647733480], [3.549, 6.19934345402, 5.52292430740], [3.448, 1.77405651704, 11322.66409830440], [4.290, 0.08154809210, 6283.07584999140], [3.694, 2.48453945256, 5661.33204915220], [3.555, 1.48036949420, 1059.38193018920], [3.023, 2.24092938317, 18073.70493865020], [3.000, 0.39169917698, 15.25247118500], [2.563, 0.35147506973, 22003.91463486980], [2.774, 1.45683830639, 10239.58386601080], [2.951, 5.34618097429, 7084.89678111520], [2.344, 2.36652432105, 17298.18232732620], [2.405, 2.36085282088, 10596.18207843420], [1.720, 4.72129626061, 10186.98722641120], [2.209, 2.07730338665, 8635.94200376320], [2.122, 4.47091605309, 8624.21265092720], [1.527, 0.67146857292, 14143.49524243060], [1.473, 2.59350470099, 7064.12138562280], [1.311, 0.90408820221, 12566.15169998280], [1.474, 5.92236241437, 9786.68735533500], [1.237, 2.59740787132, 4551.95349705880], [1.219, 2.83617320088, 9676.48103411560], [1.116, 3.83715584719, 21228.39202354580], [1.006, 4.26200749078, 426.59819087600], [1.150, 2.35531987378, 9690.70812811720], [1.219, 2.27324315182, 522.57741809380], [1.150, 0.81088598778, 10742.97651130560], [1.101, 3.74248783564, 18307.80723204360], [1.031, 2.03889374176, 38.02767263580], [0.971, 6.10590045414, 3532.06069281140], [0.844, 4.75124127613, 10988.80815753500], [0.908, 1.06613723738, 10021.83728009940], [0.824, 0.23090829723, 28286.99048486120], [0.821, 2.60456032773, 19.66976089979], [0.728, 0.10716917942, 4705.73230754360], [0.744, 3.33129778857, 536.80451209540], [0.816, 1.27303930175, 19896.88012732740], [0.929, 1.08024621325, 11790.62908865880], [0.797, 2.23891816523, 3723.50895892300], [0.704, 5.95307260017, 20.77539549240], [0.665, 0.21346689192, 7860.41939243920], [0.733, 2.22147883292, 19360.07561523199], [0.702, 1.76206343944, 19374.30270923360], [0.575, 2.38792087791, 6770.71060124560], [0.538, 1.52023264138, 25934.12433108940], [0.690, 4.01873754171, 19651.04848109800], [0.532, 4.41576130890, 574.34479833480], [0.540, 2.15936134728, 16496.36139620240], [0.576, 5.41170044566, 206.18554843720], [0.482, 0.40815793538, 3340.61242669980], [0.501, 3.08578363577, 245.83164622940], [0.488, 5.22311611589, 25158.60171976540], [0.450, 0.21279844600, 11.72935283600], [0.432, 1.32004964493, 103.09277421860], [0.434, 5.91094755233, 19786.67380610799], [0.564, 0.38776462529, 19367.18916223280], [0.421, 2.71057839701, 13936.79450513400], [0.549, 6.08792865644, 3930.20969621960], [0.478, 4.70234715828, 14945.31617355440], [0.408, 4.80890663927, 32217.20018108080], [0.404, 2.85003595942, 29864.33402730900], [0.407, 2.94002049006, 10220.39909321180], [0.359, 0.72354778897, 419.48464387520], [0.449, 1.44520508753, 8662.24032356300], [0.353, 2.22195492336, 51066.42773105500], [0.324, 1.40308439067, 29580.47470844380], [0.443, 1.93864353398, 9146.79006902100], [0.314, 0.96837035284, 20618.01935853360], [0.324, 5.10759068171, 24356.78078864160], [0.324, 1.80146948625, 18830.38465013739], [0.370, 6.16895004656, 2218.75710418680], [0.278, 2.20429108375, 18844.61174413899], [0.286, 3.08459438435, 17277.40693183380], [0.383, 0.13890934755, 4732.03062734340], [0.292, 0.43528982259, 29088.81141598500], [0.273, 5.84415407168, 9573.38825989700], [0.324, 2.14144542781, 9999.98645077300], [0.264, 5.20407029554, 220.41264243880], [0.254, 0.34411959301, 28521.09277825460], [0.300, 3.76014360906, 8094.52168583260], [0.301, 3.64457981649, 20400.27277262220], [0.287, 1.84003536598, 1589.07289528380], [0.206, 0.97167234723, 10234.06094170340], [0.212, 0.24173677600, 36.02786667740], [0.216, 5.88618923030, 18875.52586977400], [0.198, 1.89506914939, 20452.86941222180], [0.258, 6.27611355094, 1551.04522264800], [0.197, 2.09222675324, 9683.59458111640], [0.217, 5.79472589364, 9103.90699411760], [0.188, 0.39123199129, 19573.37471066999], [0.195, 6.23142464829, 30110.16567353840], [0.187, 5.49670351645, 170.67287061920], [0.178, 4.90042854659, 10787.63034454580], [0.188, 1.62614804098, 9161.01716302260], [0.211, 2.71884568392, 15720.83878487840], [0.177, 1.88170417337, 33019.02111220460], [0.209, 2.66033422116, 3442.57494496540], [0.164, 4.92240093026, 10426.58464164900], [0.186, 5.13678812068, 7255.56965173440], [0.177, 5.70206821967, 9992.87290377220], [0.214, 2.70027196648, 3128.38876509580], [0.208, 3.38876526854, 17778.11626694899], [0.147, 4.25008782855, 16983.99614745660], [0.148, 3.46404418130, 21202.09370374600], [0.189, 1.43553862242, 2379.16447357160], [0.139, 2.99154379541, 110.20632121940], [0.159, 5.23851679605, 10007.09999777380], [0.136, 0.88942869764, 22805.73556599360], [0.155, 5.90500835975, 12592.45001978260], [0.151, 0.03422618975, 27991.40181316000], [0.153, 4.01743770323, 33794.54372352860], [0.121, 0.51392111799, 21535.94964451540], [0.109, 2.25388616761, 26735.94526221320], [0.109, 0.78612823474, 6681.22485339960], [0.122, 4.84805105466, 19992.85935454519], [0.112, 3.31796669604, 36949.23080842420], [0.106, 3.34507236765, 10103.07922499160], [0.114, 4.36384000196, 20007.08644854680], [0.098, 5.07711736751, 135.62532501000], [0.120, 5.41870615047, 37724.75341974820], [0.103, 2.62610244425, 20213.27199698400], [0.085, 5.04808202087, 9830.38901398780], [0.103, 2.01549383816, 45585.17281218740], [0.088, 2.62613816931, 21.85082932640], [0.084, 3.50355880173, 639.89728631400], [0.099, 0.61079620895, 41654.96311596780], [0.088, 3.63836700262, 49515.38250840700], [0.098, 2.42401801881, 23581.25817731760], [0.081, 0.46468679835, 77.67377042800], [0.092, 4.82530051729, 29043.67019634839], [0.102, 4.27051236894, 15874.61759536320], [0.090, 4.34075776744, 29057.89729034999], [0.081, 0.01896422336, 24150.08005134500], [0.093, 1.79250830018, 12432.04265039780], [0.087, 5.25157021446, 14128.24277124560], [0.089, 5.65756996753, 377.37360791580], [0.097, 5.67942873241, 227.47613278900], [0.076, 2.93363913259, 38204.68735937100], [0.091, 2.60544242067, 1052.26838318840], [0.087, 3.82284200928, 27511.46787353720], [0.073, 4.75280755154, 40879.44050464380], [0.067, 3.54815262526, 30666.15495843280], [0.067, 5.81350818057, 20809.46762464520], [0.064, 4.24772678145, 153.77881048480], [0.064, 2.99454749109, 27197.28169366760], [0.070, 4.03868009742, 56600.27928952220], [0.071, 4.33628806850, 39264.06928956020], [0.069, 1.73648747605, 37410.56723987860], [0.065, 1.08206062736, 68050.42387851159], [0.062, 4.77698454650, 3914.95722503460], [0.061, 4.96121014691, 34596.36465465240], [0.063, 5.04865067599, 53445.59220462660], [0.058, 3.74010494151, 1066.49547719000], [0.057, 5.39355890141, 20419.45754542119], [0.057, 3.59399518494, 735.87651353180], [0.065, 2.10322000074, 74.78159856730], [0.073, 1.31083648835, 11272.66747640020], [0.055, 1.33161298098, 18300.69368504279], [0.065, 4.21150522641, 49.75702547180], [0.061, 5.66161679402, 17468.85519794540], [0.053, 4.30231233835, 18849.22754997420], [0.055, 2.63906959481, 52670.06959330260], [0.050, 5.69803054279, 39793.76025465480], [0.049, 0.77345264124, 35371.88726597640], [0.048, 6.00565977593, 283.85931886520], [0.047, 2.63299859494, 51868.24866217880], [0.046, 0.05105081843, 38526.57435087200], [0.050, 4.37549274002, 28513.97923125379], [0.046, 2.93422086586, 27682.14074415640], [0.051, 5.45979584751, 60530.48898574180], [0.045, 5.59492908223, 467.96499035440], [0.045, 2.34680401001, 9411.46461508720], [0.045, 0.02999265111, 44809.65020086340], [0.043, 5.62725673544, 14.22709400160], [0.047, 3.73567275749, 64460.69868196140], [0.046, 0.12586526756, 57375.80190084620], [0.044, 2.03114426076, 18314.92077904440], [0.039, 0.99375127466, 94138.32702008578], [0.053, 0.41974404621, 30831.30490474460], [0.055, 1.38351566741, 38500.27603107220], [0.041, 4.47012768909, 40077.61957352000], [0.041, 0.36665992484, 19999.97290154599], [0.040, 3.06358586355, 813.55028395980], [0.040, 2.16802870803, 59728.66805461800], [0.037, 1.08739100421, 17085.95866572220], [0.039, 1.31040309875, 48739.85989708300], [0.036, 1.43280677914, 42456.78404709160], [0.037, 0.14190533464, 29050.78374334920], [0.037, 3.66792179278, 20956.26205751660], [0.025, 3.38876180652, 7058.59846131540], [0.031, 6.16829805337, 10192.51015071860], ], # L2 [ [54127.076, 0.00000000000, 0.00000000000], [3891.460, 0.34514360047, 10213.28554621100], [1337.880, 2.02011286082, 20426.57109242200], [23.836, 2.04592119012, 26.29831979980], [19.331, 3.53527371458, 30639.85663863300], [9.984, 3.97130221102, 775.52261132400], [7.046, 1.51962593409, 1577.34354244780], [6.014, 0.99926757893, 191.44826611160], [3.163, 4.36095475762, 9437.76293488700], [2.125, 2.65810625752, 40853.14218484400], [1.934, 3.39287946981, 382.89653222320], [1.460, 6.04899046273, 529.69096509460], [1.346, 2.94633106219, 5507.55323866740], [1.025, 1.40598904981, 10404.73381232260], [1.221, 3.73339139385, 3154.68708489560], [1.033, 3.52858472904, 11015.10647733480], [0.955, 5.11133878923, 801.82093112380], [0.742, 1.49198584483, 1109.37855209340], [0.525, 3.32087042103, 213.29909543800], [0.578, 0.92614279843, 10239.58386601080], [0.602, 5.19220099775, 7084.89678111520], [0.431, 2.67159914364, 13367.97263110660], [0.389, 4.14116341739, 8635.94200376320], [0.355, 1.12061570874, 9153.90361602180], [0.301, 3.90047984197, 10596.18207843420], [0.212, 5.32697688872, 18837.49819713819], [0.260, 0.22761369281, 2352.86615377180], [0.243, 4.70747902991, 6283.07584999140], [0.196, 4.10467294392, 11790.62908865880], [0.194, 6.01197759470, 7860.41939243920], [0.140, 4.97015671653, 14143.49524243060], [0.134, 4.10529011674, 17298.18232732620], [0.119, 3.39375528828, 11322.66409830440], [0.126, 0.09854516140, 18073.70493865020], [0.122, 5.92478855457, 574.34479833480], [0.107, 0.35660030184, 1059.38193018920], [0.108, 2.25352052666, 12566.15169998280], [0.093, 5.48716819776, 10021.83728009940], [0.084, 4.89744332968, 18307.80723204360], [0.074, 2.35354025573, 426.59819087600], [0.093, 4.99316908815, 14945.31617355440], [0.069, 3.86409065860, 51066.42773105500], [0.082, 5.36280178643, 10186.98722641120], [0.077, 3.75728548372, 3723.50895892300], [0.063, 5.39882267787, 21228.39202354580], [0.056, 4.11564786973, 7064.12138562280], [0.056, 6.26920407723, 32217.20018108080], [0.060, 5.02186497542, 19367.18916223280], [0.058, 5.13263709670, 20400.27277262220], [0.051, 4.52870390511, 22003.91463486980], [0.041, 3.83822107919, 16496.36139620240], [0.041, 3.36020411807, 4705.73230754360], [0.043, 5.98371820588, 15720.83878487840], [0.047, 0.18498155367, 18875.52586977400], [0.038, 0.52232581277, 1551.04522264800], [0.039, 5.05391675878, 10742.97651130560], [0.036, 3.16242472203, 20452.86941222180], [0.035, 5.17462577483, 29088.81141598500], [0.035, 3.47325394141, 24356.78078864160], [0.031, 4.74511706231, 28521.09277825460], [0.029, 0.19383091192, 19896.88012732740], [0.033, 1.80059867635, 20618.01935853360], [0.024, 0.14022912457, 21202.09370374600], [0.022, 4.73565067573, 10988.80815753500], [0.018, 0.74039763161, 25158.60171976540], [0.019, 1.53770232218, 28286.99048486120], [0.014, 1.49084059765, 30110.16567353840], [0.013, 4.72171283479, 29864.33402730900], [0.013, 5.79700427846, 29580.47470844380], [0.014, 3.69205225010, 27511.46787353720], ], # L3 [ [135.742, 4.80389020993, 10213.28554621100], [77.846, 3.66876371591, 20426.57109242200], [26.023, 0.00000000000, 0.00000000000], [1.214, 5.31970006917, 30639.85663863300], [0.254, 4.15021671822, 40853.14218484400], [0.008, 5.55523563261, 51066.42773105500], [0.008, 1.40501229148, 1577.34354244780], [0.006, 1.27791479726, 10404.73381232260], [0.006, 5.76447068962, 10239.58386601080], ], # L4 [ [114.016, 3.14159265359, 0.00000000000], [3.209, 5.20514170164, 20426.57109242200], [1.714, 2.51099591706, 10213.28554621100], [0.050, 0.71356059861, 30639.85663863300], [0.023, 5.68127607034, 40853.14218484400], ], # L5 [ [0.874, 3.14159265359, 0.00000000000], [0.117, 0.54643013000, 20426.57109242200], [0.118, 1.90548541922, 10213.28554621100], [0.002, 1.07734277826, 40853.14218484400], [0.002, 1.89460223529, 30639.85663863300], ], ] """This table contains Venus's periodic terms (all of them) from the planetary theory VSOP87 for the heliocentric longitude at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in pages 418-420.""" VSOP87_B = [ # B0 [ [5923638.472, 0.26702775813, 10213.28554621100], [40107.978, 1.14737178106, 20426.57109242200], [32814.918, 3.14159265359, 0.00000000000], [1011.392, 1.08946123021, 30639.85663863300], [149.458, 6.25390296069, 18073.70493865020], [137.788, 0.86020146523, 1577.34354244780], [129.973, 3.67152483651, 9437.76293488700], [119.507, 3.70468812804, 2352.86615377180], [107.971, 4.53903677647, 22003.91463486980], [92.029, 1.53954562706, 9153.90361602180], [52.982, 2.28138172277, 5507.55323866740], [45.617, 0.72319641722, 10239.58386601080], [38.855, 2.93437865147, 10186.98722641120], [43.491, 6.14015776699, 11790.62908865880], [41.700, 5.99126845246, 19896.88012732740], [39.644, 3.86842095901, 8635.94200376320], [39.175, 3.94960351174, 529.69096509460], [33.320, 4.83194909595, 14143.49524243060], [23.711, 2.90646621218, 10988.80815753500], [23.500, 2.00770618322, 13367.97263110660], [21.809, 2.69701424951, 19651.04848109800], [20.653, 0.98666685459, 775.52261132400], [16.976, 4.13711782135, 10021.83728009940], [17.835, 5.96268643102, 25934.12433108940], [14.949, 5.61075168206, 10404.73381232260], [18.579, 1.80529277514, 40853.14218484400], [15.407, 3.29563855296, 11015.10647733480], [12.936, 5.42651448496, 29580.47470844380], [11.962, 3.57604253827, 10742.97651130560], [11.827, 1.19070919600, 8624.21265092720], [11.466, 5.12780364967, 6283.07584999140], [9.484, 2.75167834335, 191.44826611160], [13.129, 5.70735942511, 9683.59458111640], [8.583, 0.43182249199, 9786.68735533500], [9.763, 0.14614896296, 20618.01935853360], [8.148, 1.30548515603, 15720.83878487840], [6.050, 6.26541665966, 11322.66409830440], [5.955, 4.92235372433, 1059.38193018920], [6.983, 3.44920932146, 17298.18232732620], [6.228, 1.13312070908, 29864.33402730900], [6.186, 4.92498052443, 19367.18916223280], [6.155, 2.42413946900, 4705.73230754360], [5.204, 3.42528906628, 9103.90699411760], [6.000, 3.57639095526, 3154.68708489560], [4.796, 3.86676184909, 7860.41939243920], [5.289, 4.99182712443, 7084.89678111520], [4.070, 5.58798144740, 12566.15169998280], [3.942, 5.68758787835, 10206.17199921020], [3.797, 3.89520601076, 10192.51015071860], [3.798, 6.06410995916, 10234.06094170340], [3.579, 0.73789669235, 4551.95349705880], [3.641, 2.61501257205, 15874.61759536320], [3.266, 0.97517223854, 23581.25817731760], [2.813, 0.29951755546, 9411.46461508720], [3.048, 2.51085146990, 33794.54372352860], [2.559, 4.58043833032, 801.82093112380], [2.462, 5.05790874754, 29050.78374334920], [2.593, 5.73113176751, 20213.27199698400], [2.625, 4.24272906574, 213.29909543800], [2.246, 0.82112963936, 28286.99048486120], [2.229, 2.22457598233, 10426.58464164900], [1.742, 1.48394229233, 7058.59846131540], [1.660, 5.42775825275, 32217.20018108080], [1.491, 4.64883377941, 1109.37855209340], [2.010, 0.75702888128, 9999.98645077300], [1.562, 3.93962080463, 37724.75341974820], [1.538, 2.17309577080, 21535.94964451540], [1.546, 4.70759186462, 14945.31617355440], [1.200, 1.48282382657, 9830.38901398780], [1.224, 5.55090394449, 5661.33204915220], [1.111, 1.20276209213, 9573.38825989700], [1.064, 1.98891375536, 26.29831979980], [1.041, 5.38535116069, 7.11354700080], [1.036, 1.16719443387, 8662.24032356300], [1.143, 3.20596958337, 3532.06069281140], [1.201, 0.81913312536, 8094.52168583260], [1.005, 2.38429892132, 27511.46787353720], [1.047, 4.56525030769, 20419.45754542119], [0.968, 6.18496721871, 25158.60171976540], [1.044, 1.98055689074, 10596.18207843420], [0.962, 0.48573513747, 23958.63178523340], [0.846, 0.01566400887, 3128.38876509580], [0.792, 5.39686899735, 24356.78078864160], [0.858, 5.34692750735, 41654.96311596780], [0.757, 6.25904553773, 20452.86941222180], [0.801, 4.62406152514, 9929.42622734580], [0.802, 5.37234892520, 10497.14486507620], [0.750, 3.85219782842, 21228.39202354580], [0.700, 1.98097957188, 3930.20969621960], [0.719, 6.11596800207, 10218.80847051840], [0.672, 6.23429601219, 14765.23904326980], [0.639, 5.37566437358, 1589.07289528380], [0.605, 2.42330391120, 10251.31321884680], [0.726, 6.16683781802, 18875.52586977400], [0.613, 5.99731180690, 4732.03062734340], [0.720, 3.84286345199, 10207.76262190360], [0.637, 6.17053891156, 10220.39909321180], [0.515, 1.03001478293, 22779.43724619380], [0.574, 0.43813688572, 17085.95866572220], [0.510, 1.41065159851, 9161.01716302260], [0.569, 3.34601425125, 3340.61242669980], [0.608, 1.25236241968, 10175.25787357520], [0.524, 2.39794248670, 26087.90314157420], [0.542, 1.34665646732, 29088.81141598500], [0.527, 4.01994270827, 18849.22754997420], [0.569, 1.65498800378, 39264.06928956020], [0.518, 4.96996115446, 30213.25844775700], [0.514, 5.78413007838, 12592.45001978260], [0.538, 4.56198493922, 10063.72234907640], [0.484, 4.18538027381, 14919.01785375460], [0.493, 4.79939382739, 9146.79006902100], [0.427, 3.76876868949, 11272.66747640020], [0.495, 0.49175293655, 45585.17281218740], [0.494, 3.74345863918, 31441.67756975680], [0.524, 0.97991794166, 30110.16567353840], [0.483, 1.87898057316, 51066.42773105500], [0.505, 3.70047474212, 20400.27277262220], [0.351, 4.34026574490, 10137.01947493540], [0.355, 5.56672554631, 18837.49819713819], [0.328, 3.78427378910, 6681.22485339960], [0.349, 4.20550749672, 20956.26205751660], [0.333, 4.44969281739, 28521.09277825460], [0.296, 2.83205515646, 17277.40693183380], [0.311, 2.57334132897, 20809.46762464520], [0.294, 0.75089224483, 3149.16416058820], [0.377, 3.98143308775, 21202.09370374600], [0.272, 5.56183082489, 16496.36139620240], [0.314, 0.02584607093, 13745.34623902240], [0.263, 0.55328410985, 36147.40987730040], [0.286, 5.16408902215, 426.59819087600], [0.279, 4.29871615943, 19999.97290154599], [0.280, 1.92925047377, 49515.38250840700], [0.265, 4.81168402147, 20235.12282631040], [0.273, 5.12740051559, 35371.88726597640], [0.306, 5.28903794869, 382.89653222320], [0.223, 2.50591724074, 26709.64694241340], [0.235, 5.96522395118, 10198.03307502600], [0.234, 3.52866583267, 10228.53801739600], [0.224, 6.24561979789, 7064.12138562280], [0.251, 2.84739274245, 33019.02111220460], [0.196, 1.50610393790, 31749.23519072640], [0.192, 1.69321442572, 13341.67431130680], [0.180, 6.19353087076, 39793.76025465480], [0.199, 1.16433321880, 22805.73556599360], [0.180, 3.72646417141, 1551.04522264800], [0.173, 3.35235705827, 53445.59220462660], [0.195, 1.51901264131, 43232.30665841560], [0.174, 2.84049662693, 9967.45389998160], [0.163, 4.29160537719, 36949.23080842420], [0.169, 0.37000676558, 10459.11719244040], [0.137, 5.61149803116, 10529.67741586760], [0.139, 0.87847805052, 16522.65971600220], [0.139, 4.12576475427, 36301.18868778519], [0.127, 5.14447758616, 5481.25491886760], [0.131, 3.11317801589, 9896.89367655440], [0.131, 0.89697384735, 3442.57494496540], [0.121, 1.32802112907, 38734.37832446560], [0.122, 1.59017183044, 10110.19277199240], [0.123, 2.33714216061, 10316.37832042960], [0.133, 2.90682399304, 9793.80090233580], [0.111, 2.52077634760, 13936.79450513400], [0.120, 0.36076947165, 536.80451209540], [0.115, 2.53355582059, 26735.94526221320], [0.108, 2.65839634325, 10232.95530711079], [0.108, 0.55230439694, 10193.61578531121], [0.138, 1.06919239240, 65236.22129328540], [0.101, 3.17012502017, 19317.19254032860], [0.127, 5.63110477712, 10288.06714477830], [0.127, 3.86278127025, 10138.50394764370], [0.137, 2.93350659460, 47162.51635463520], [0.095, 5.03917884334, 52175.80628314840], [0.094, 0.71308489207, 38500.27603107220], [0.092, 5.46204624886, 11764.33076885900], [0.096, 1.52914774412, 9690.70812811720], [0.101, 0.83318284426, 6489.77658728800], [0.115, 3.76443612245, 522.57741809380], [0.089, 2.53312656681, 10735.86296430480], [0.082, 0.85628515615, 2379.16447357160], [0.103, 5.22683237620, 103.09277421860], [0.090, 2.12423586627, 28313.28880466100], [0.090, 0.39668501735, 9580.50180689780], [0.074, 6.02680095550, 3723.50895892300], [0.081, 5.25045057985, 10419.47109464820], [0.080, 4.23724598221, 10007.09999777380], [0.091, 2.48874147947, 10846.06928552420], [0.085, 3.82784790321, 51868.24866217880], [0.081, 2.26235214191, 3903.91137641980], [0.097, 0.77295091600, 18307.80723204360], [0.094, 0.17063414792, 6872.67311951120], [0.080, 5.62254102739, 29999.95935231900], [0.068, 2.71762936670, 16983.99614745660], [0.066, 0.76731351736, 20.77539549240], [0.075, 0.36155638007, 39302.09696219600], [0.075, 2.27327165974, 8521.11987670860], [0.058, 2.14482855875, 8631.32619792800], [0.064, 5.83569051301, 2118.76386037840], [0.058, 2.98524209824, 19889.76658032659], [0.054, 1.78260668333, 40077.61957352000], [0.055, 4.70485939861, 639.89728631400], [0.060, 5.89661892920, 41962.52073693740], [0.066, 2.24746237999, 74.78159856730], [0.061, 3.40726181591, 27490.69247804480], [0.051, 3.07811180039, 24150.08005134500], [0.057, 2.30081371235, 20529.66386664059], [0.052, 2.37192464233, 29573.36116144300], [0.052, 4.76610409132, 57375.80190084620], [0.047, 1.61630288856, 30831.30490474460], [0.054, 5.89684197257, 19903.99367432819], [0.040, 5.32101847424, 42430.48572729180], [0.051, 5.29186795569, 29587.58825544460], ], # B1 [ [513347.602, 1.80364310797, 10213.28554621100], [4380.100, 3.38615711591, 20426.57109242200], [196.586, 2.53001197486, 30639.85663863300], [199.162, 0.00000000000, 0.00000000000], [14.031, 2.27087044687, 9437.76293488700], [12.958, 1.50735622957, 18073.70493865020], [11.941, 5.60462450426, 1577.34354244780], [10.324, 5.24224313355, 2352.86615377180], [9.294, 6.07545631303, 22003.91463486980], [7.441, 1.50257909439, 11790.62908865880], [8.031, 0.29371105198, 9153.90361602180], [7.514, 5.08081885990, 10186.98722641120], [4.669, 3.87801635015, 10239.58386601080], [4.399, 3.58872736593, 40853.14218484400], [3.975, 1.28397121206, 10404.73381232260], [4.657, 0.75073886819, 5507.55323866740], [3.783, 4.33004753984, 19651.04848109800], [3.390, 4.88976070903, 10988.80815753500], [3.555, 1.25927550356, 19896.88012732740], [3.479, 5.50797002160, 529.69096509460], [2.884, 0.08549582037, 14143.49524243060], [1.786, 0.37134513186, 13367.97263110660], [1.600, 1.68378002982, 20618.01935853360], [1.539, 1.21683853657, 25934.12433108940], [1.341, 2.90077139758, 15720.83878487840], [0.993, 1.74681248965, 11322.66409830440], [1.165, 6.13437155401, 7860.41939243920], [1.115, 0.66743690380, 29580.47470844380], [0.923, 2.25384969096, 10021.83728009940], [0.965, 1.36425494833, 9683.59458111640], [0.973, 0.39071758442, 6283.07584999140], [0.805, 0.53331923557, 8624.21265092720], [0.913, 0.76046003719, 8635.94200376320], [0.991, 0.55319879330, 19367.18916223280], [0.609, 2.62364470139, 23581.25817731760], [0.532, 5.10925676528, 9786.68735533500], [0.476, 6.17672999981, 11015.10647733480], [0.472, 1.69672629200, 17298.18232732620], [0.503, 2.65840772485, 29864.33402730900], [0.456, 5.01205315518, 10742.97651130560], [0.478, 3.94100005156, 775.52261132400], [0.477, 3.71554345922, 10596.18207843420], [0.347, 2.34551062680, 9411.46461508720], [0.458, 2.31894399069, 9999.98645077300], [0.374, 3.76878356974, 21228.39202354580], [0.440, 4.33400244581, 15874.61759536320], [0.349, 1.31468836511, 10234.06094170340], [0.310, 5.45422332781, 10192.51015071860], [0.346, 0.94242286364, 1059.38193018920], [0.308, 4.90145899142, 3930.20969621960], [0.331, 4.89498986674, 10206.17199921020], [0.269, 2.39650266204, 801.82093112380], [0.269, 0.00589873499, 9830.38901398780], [0.261, 3.48196147279, 7058.59846131540], [0.290, 0.10953964861, 29050.78374334920], [0.283, 6.12133736787, 20419.45754542119], [0.232, 3.07845850030, 12566.15169998280], [0.265, 4.02431894973, 33794.54372352860], [0.220, 2.37315851889, 4551.95349705880], [0.247, 3.07626728158, 28286.99048486120], [0.202, 3.56872121409, 21535.94964451540], [0.225, 5.76888896320, 213.29909543800], [0.217, 0.88382111135, 20213.27199698400], [0.172, 6.12653050186, 9161.01716302260], [0.195, 5.47240855400, 37724.75341974820], [0.153, 4.07656151671, 27511.46787353720], [0.174, 1.33676849359, 32217.20018108080], [0.157, 5.98474214437, 26.29831979980], [0.163, 5.45519134760, 10426.58464164900], [0.129, 2.08748660996, 3128.38876509580], [0.131, 1.51959002513, 10218.80847051840], [0.139, 4.42330401713, 10220.39909321180], [0.126, 2.62296638037, 22779.43724619380], [0.146, 4.69869606856, 25158.60171976540], [0.172, 6.13435208788, 18837.49819713819], [0.157, 5.44507403858, 4705.73230754360], [0.117, 6.18296175153, 20400.27277262220], [0.164, 3.30849473132, 51066.42773105500], [0.113, 3.64412860654, 7.11354700080], [0.109, 5.21220660788, 8662.24032356300], [0.133, 1.78047296245, 191.44826611160], [0.117, 0.14681677884, 9146.79006902100], [0.116, 0.61940521198, 41654.96311596780], [0.096, 1.49631428731, 7084.89678111520], [0.096, 1.21744230443, 10198.03307502600], [0.082, 1.45863866349, 10207.76262190360], [0.085, 6.04057728058, 21202.09370374600], [0.083, 0.19985600927, 14919.01785375460], [0.077, 5.50132310610, 5661.33204915220], [0.077, 2.00173927326, 10228.53801739600], [0.093, 1.85466268819, 45585.17281218740], [0.066, 3.25826124156, 1109.37855209340], [0.089, 0.64100435648, 3154.68708489560], [0.061, 3.80043027736, 11272.66747640020], [0.077, 1.85516358950, 3532.06069281140], [0.062, 0.81341290651, 382.89653222320], [0.072, 2.35312965005, 9103.90699411760], [0.053, 3.21969389511, 20452.86941222180], [0.067, 1.42090542131, 24356.78078864160], [0.056, 2.97733070198, 30110.16567353840], [0.051, 4.22406663447, 20809.46762464520], [0.058, 6.20761936031, 29088.81141598500], [0.061, 3.27309494322, 49515.38250840700], [0.046, 5.49443476235, 31441.67756975680], [0.050, 4.16651052942, 13341.67431130680], [0.047, 1.25473247769, 33019.02111220460], [0.047, 2.03402044389, 23958.63178523340], [0.036, 5.24409311105, 3149.16416058820], [0.038, 4.15337829669, 18849.22754997420], [0.042, 0.43005959574, 1589.07289528380], [0.041, 1.21289342964, 12592.45001978260], [0.038, 5.91928287144, 28521.09277825460], [0.033, 3.98241699279, 4732.03062734340], [0.035, 2.24417218267, 16496.36139620240], [0.040, 6.13293942728, 26087.90314157420], [0.044, 1.78123294860, 426.59819087600], [0.041, 3.16744909855, 39264.06928956020], [0.033, 4.96183427323, 536.80451209540], [0.034, 0.12963030501, 30213.25844775700], [0.036, 5.41167321573, 522.57741809380], [0.027, 4.44250239485, 17277.40693183380], [0.034, 5.94541303751, 9929.42622734580], [0.033, 0.40689057274, 10497.14486507620], [0.023, 2.59067946967, 10175.25787357520], [0.022, 0.69625017371, 19999.97290154599], [0.023, 3.76162101633, 10251.31321884680], [0.023, 0.62711494266, 35371.88726597640], [0.022, 4.64142978776, 19889.76658032659], [0.020, 4.01315480107, 26709.64694241340], [0.020, 4.03344400680, 29573.36116144300], [0.023, 0.90416640595, 8094.52168583260], [0.022, 1.92092469688, 17085.95866572220], [0.019, 5.04938942644, 6681.22485339960], ], # B2 [ [22377.665, 3.38509143877, 10213.28554621100], [281.739, 0.00000000000, 0.00000000000], [173.164, 5.25563766915, 20426.57109242200], [26.945, 3.87040891568, 30639.85663863300], [1.174, 0.09768632072, 10186.98722641120], [0.685, 3.19139067811, 11790.62908865880], [0.788, 4.36515965295, 10239.58386601080], [0.592, 5.22270440328, 40853.14218484400], [0.515, 6.12821215207, 10988.80815753500], [0.538, 0.57550272342, 2352.86615377180], [0.540, 3.11657836329, 18073.70493865020], [0.454, 2.79306867629, 10404.73381232260], [0.374, 6.10468482446, 9437.76293488700], [0.431, 4.00778431184, 1577.34354244780], [0.360, 6.01747842320, 19651.04848109800], [0.375, 1.31319959789, 22003.91463486980], [0.354, 5.12509281266, 9153.90361602180], [0.150, 4.58623687118, 15720.83878487840], [0.164, 5.41790158607, 5507.55323866740], [0.159, 2.78191550878, 19896.88012732740], [0.157, 0.65774905071, 529.69096509460], [0.155, 2.54824315372, 9683.59458111640], [0.109, 2.01866665583, 14143.49524243060], [0.106, 2.28289033017, 6283.07584999140], [0.115, 3.23636374193, 20618.01935853360], [0.128, 5.32400510939, 13367.97263110660], [0.087, 3.28265082435, 11322.66409830440], [0.090, 5.23585072275, 10596.18207843420], [0.055, 4.82369879741, 7058.59846131540], [0.044, 0.58444963462, 10206.17199921020], [0.044, 2.34401612969, 19367.18916223280], [0.038, 4.55053233088, 9999.98645077300], [0.039, 5.84340580032, 10220.39909321180], [0.036, 4.41006216127, 51066.42773105500], [0.039, 3.14348236386, 9411.46461508720], [0.033, 4.55748660340, 10742.97651130560], [0.037, 2.79630938717, 25934.12433108940], [0.034, 0.55287110072, 11015.10647733480], [0.034, 2.25809144959, 29580.47470844380], [0.038, 1.88638747393, 801.82093112380], [0.034, 1.22706917271, 10021.83728009940], [0.027, 4.83867137637, 9830.38901398780], [0.027, 4.31140179350, 23581.25817731760], [0.027, 2.17187621336, 8635.94200376320], [0.020, 5.66581696952, 21228.39202354580], [0.024, 2.17208107850, 18849.22754997420], [0.020, 5.29318634138, 775.52261132400], [0.019, 2.73486845601, 3128.38876509580], [0.013, 3.40362915274, 1059.38193018920], [0.014, 0.05074160195, 7860.41939243920], [0.014, 5.43035907265, 26.29831979980], [0.012, 3.24834347355, 9103.90699411760], [0.013, 5.04826725887, 7.11354700080], [0.015, 1.42027402522, 29050.78374334920], [0.010, 4.98138067490, 10426.58464164900], [0.011, 0.85773045784, 17298.18232732620], [0.011, 4.23048200054, 29864.33402730900], [0.010, 0.26447399758, 3930.20969621960], [0.011, 1.46728576671, 20419.45754542119], ], # B3 [ [646.671, 4.99166565277, 10213.28554621100], [19.952, 3.14159265359, 0.00000000000], [5.540, 0.77376923951, 20426.57109242200], [2.526, 5.44493763020, 30639.85663863300], [0.079, 1.51447613604, 10186.98722641120], [0.056, 0.63647808442, 40853.14218484400], [0.058, 5.70731176550, 10239.58386601080], [0.031, 4.72523061067, 11790.62908865880], [0.026, 1.02068113372, 10988.80815753500], [0.025, 5.60599130442, 9437.76293488700], [0.017, 2.05293621864, 2352.86615377180], [0.011, 4.33056892256, 10404.73381232260], [0.009, 1.36283915068, 19651.04848109800], [0.007, 4.69592781899, 18073.70493865020], [0.006, 2.97926526705, 22003.91463486980], ], # B4 [ [14.102, 0.31537190181, 10213.28554621100], [0.190, 2.35466404492, 20426.57109242200], [0.164, 0.74476215141, 30639.85663863300], [0.214, 3.14159265359, 0.00000000000], [0.004, 2.34190883009, 40853.14218484400], ], # B5 [ [0.239, 2.05201727566, 10213.28554621100], [0.039, 0.00000000000, 0.00000000000], [0.011, 3.82500275251, 20426.57109242200], [0.009, 2.32953116868, 30639.85663863300], ], ] """This table contains Venus's periodic terms (all of them) from the planetary theory VSOP87 for the heliocentric latitude at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in page 420.""" VSOP87_R = [ # R0 [ [72334820.905, 0.00000000000, 0.00000000000], [489824.185, 4.02151832268, 10213.28554621100], [1658.058, 4.90206728012, 20426.57109242200], [1632.093, 2.84548851892, 7860.41939243920], [1378.048, 1.12846590600, 11790.62908865880], [498.399, 2.58682187717, 9683.59458111640], [373.958, 1.42314837063, 3930.20969621960], [263.616, 5.52938185920, 9437.76293488700], [237.455, 2.55135903978, 15720.83878487840], [221.983, 2.01346776772, 19367.18916223280], [119.467, 3.01975365264, 10404.73381232260], [125.896, 2.72769833559, 1577.34354244780], [76.178, 1.59577224486, 9153.90361602180], [85.336, 3.98607953754, 19651.04848109800], [74.347, 4.11957854039, 5507.55323866740], [41.904, 1.64273363458, 18837.49819713819], [42.493, 3.81864530735, 13367.97263110660], [39.430, 5.39019422358, 23581.25817731760], [29.042, 5.67739528728, 5661.33204915220], [27.555, 5.72392407794, 775.52261132400], [27.283, 4.82151812709, 11015.10647733480], [31.274, 2.31806719544, 9999.98645077300], [19.700, 4.96157560245, 11322.66409830440], [19.809, 0.53189326492, 27511.46787353720], [13.567, 3.75530870628, 18073.70493865020], [12.921, 1.13381083556, 10206.17199921020], [16.215, 0.56453834290, 529.69096509460], [11.821, 5.09025877427, 3154.68708489560], [11.728, 0.23432298744, 7084.89678111520], [13.079, 5.24353197586, 17298.18232732620], [13.180, 3.37207825651, 13745.34623902240], [9.097, 3.07004895769, 1109.37855209340], [10.818, 2.45024712908, 10239.58386601080], [11.438, 4.56838894696, 29050.78374334920], [8.377, 5.78327612352, 30639.85663863300], [8.193, 1.95023111860, 22003.91463486980], [9.308, 1.61615909286, 2352.86615377180], [10.652, 1.95528396140, 31441.67756975680], [10.357, 1.20234990061, 15874.61759536320], [9.585, 1.46639856228, 19999.97290154599], [6.506, 2.17390732263, 14143.49524243060], [7.562, 1.13789564977, 8624.21265092720], [6.434, 0.84419623033, 6283.07584999140], [5.898, 0.01093731110, 8635.94200376320], [5.632, 3.94956548631, 12566.15169998280], [5.523, 1.27394296557, 18307.80723204360], [4.488, 2.47835729057, 191.44826611160], [4.529, 4.73027770400, 19896.88012732740], [6.193, 3.25881250939, 6872.67311951120], [6.070, 0.35337419942, 21228.39202354580], [4.315, 2.59737099519, 4551.95349705880], [6.005, 3.37874723475, 35371.88726597640], [3.852, 1.01162850357, 9786.68735533500], [4.033, 0.00050855580, 801.82093112380], [3.920, 5.56542869407, 10596.18207843420], [2.709, 5.80195530112, 7064.12138562280], [3.216, 0.39767254848, 10186.98722641120], [3.089, 6.26174762876, 14945.31617355440], [2.982, 4.21196716354, 28521.09277825460], [3.284, 0.70709821006, 10742.97651130560], [3.484, 4.79878191875, 39302.09696219600], [3.172, 1.80518954174, 25158.60171976540], [2.463, 0.68708153678, 10988.80815753500], [2.374, 3.77948685343, 21535.94964451540], [2.198, 2.82996372521, 8662.24032356300], [1.958, 5.41763804167, 16496.36139620240], [1.876, 2.63426768393, 29580.47470844380], [1.902, 2.85782199133, 3532.06069281140], [1.706, 3.67573010379, 26.29831979980], [1.817, 0.41611036449, 4705.73230754360], [1.858, 1.50368318296, 10021.83728009940], [2.087, 6.22112874639, 43232.30665841560], [1.950, 2.21447019683, 19786.67380610799], [1.497, 0.00134773824, 17277.40693183380], [1.819, 3.23144993268, 29088.81141598500], [1.423, 5.85979618707, 9676.48103411560], [1.223, 5.55818994329, 6770.71060124560], [1.140, 5.92088900094, 13936.79450513400], [1.484, 2.47665429253, 31749.23519072640], [1.185, 1.42087628351, 4732.03062734340], [1.323, 2.48821075422, 9690.70812811720], [1.249, 1.88323673734, 19374.30270923360], [1.270, 5.24647873116, 19360.07561523199], [1.402, 5.17536780118, 10316.37832042960], [1.042, 3.05454698508, 25934.12433108940], [1.174, 1.42913732999, 18875.52586977400], [1.278, 1.35747287297, 47162.51635463520], [0.917, 6.26337648765, 20618.01935853360], [0.905, 1.12740203561, 12592.45001978260], [1.093, 4.64451720605, 33019.02111220460], [1.014, 1.09259406433, 1059.38193018920], [0.783, 2.02118183873, 24356.78078864160], [0.779, 0.41585274010, 3340.61242669980], [0.700, 1.14936815714, 16983.99614745660], [0.878, 0.87852464964, 38734.37832446560], [0.623, 0.89976912165, 17778.11626694899], [0.608, 1.58476225197, 9573.38825989700], [0.800, 3.94213003073, 10138.50394764370], [0.760, 1.31851313748, 9967.45389998160], [0.802, 2.78173370208, 51092.72605085480], [0.664, 4.45864682400, 3128.38876509580], [0.674, 5.11214939998, 382.89653222320], [0.530, 0.85392938403, 10234.06094170340], [0.509, 3.56809374595, 28286.99048486120], [0.600, 4.25927726907, 41962.52073693740], [0.601, 5.78144137895, 213.29909543800], [0.595, 2.83045104588, 22805.73556599360], [0.673, 6.06079908421, 36949.23080842420], [0.535, 5.85422519711, 9103.90699411760], [0.544, 5.44806074800, 3723.50895892300], [0.492, 3.83802404893, 27991.40181316000], [0.635, 0.76494024849, 8094.52168583260], [0.434, 6.22214487735, 27197.28169366760], [0.459, 3.55062885479, 20213.27199698400], [0.398, 6.16269975784, 10426.58464164900], [0.378, 2.41665947591, 18844.61174413899], [0.421, 4.86552697954, 9146.79006902100], [0.500, 4.20351458644, 55022.93574707440], [0.404, 4.95834410782, 37410.56723987860], [0.402, 2.97963246945, 10220.39909321180], [0.464, 2.59869499733, 18734.40542291960], [0.352, 0.08963076359, 10103.07922499160], [0.348, 4.90260339364, 18830.38465013739], [0.338, 3.22520096478, 24150.08005134500], [0.375, 6.17532088136, 26087.90314157420], [0.425, 1.20052578280, 40879.44050464380], [0.408, 3.12833060705, 9050.81084180320], [0.385, 1.94284690176, 283.85931886520], [0.337, 4.87838699272, 12432.04265039780], [0.326, 4.27369741426, 26735.94526221320], [0.309, 0.50597475053, 38204.68735937100], [0.329, 3.88430599153, 29864.33402730900], [0.313, 1.36138752543, 10192.51015071860], [0.347, 3.58439807209, 27490.69247804480], [0.251, 3.78618457047, 10063.72234907640], [0.244, 3.83523342668, 9411.46461508720], [0.281, 4.50895206233, 32217.20018108080], [0.237, 0.87748812245, 6681.22485339960], [0.315, 5.62657778233, 58953.14544329400], [0.311, 4.15626121491, 10175.15251057320], [0.247, 2.53637594113, 16522.65971600220], [0.219, 5.08729383251, 7058.59846131540], [0.291, 3.72567217056, 29999.95935231900], [0.267, 2.97685503991, 19573.37471066999], [0.280, 3.70200084294, 47623.85278608960], [0.239, 3.94545782067, 9580.50180689780], [0.246, 2.18244883930, 9161.01716302260], [0.253, 2.69506547016, 3442.57494496540], [0.265, 2.62811801237, 44809.65020086340], [0.194, 4.78926136175, 33794.54372352860], [0.187, 3.65620881095, 20452.86941222180], [0.224, 2.43601863127, 9992.87290377220], [0.193, 2.55112161845, 2379.16447357160], [0.201, 1.90356905733, 1551.04522264800], [0.176, 4.29837616553, 10137.01947493540], [0.184, 6.16061560223, 36147.40987730040], [0.175, 2.71984797040, 20809.46762464520], [0.186, 2.55098927966, 14919.01785375460], [0.161, 4.13272567123, 23958.63178523340], [0.221, 4.83552377614, 20277.00789528740], [0.160, 1.81472642729, 10787.63034454580], [0.199, 5.74259798330, 30666.15495843280], [0.160, 4.46270605493, 18947.70451835760], [0.187, 2.98688597588, 2218.75710418680], [0.189, 5.34607810282, 10007.09999777380], [0.198, 0.77846666692, 62883.35513951360], [0.144, 5.00261963924, 9264.10993724120], [0.171, 2.05212624568, 7255.56965173440], [0.188, 4.08173534559, 48739.85989708300], [0.146, 3.94191715702, 6309.37416979120], [0.146, 5.06313558118, 39264.06928956020], [0.135, 5.93689169614, 37724.75341974820], [0.139, 2.81266025896, 20.77539549240], [0.177, 5.16224804657, 9835.91193829520], [0.119, 1.37254262864, 40077.61957352000], [0.120, 0.21443767468, 31022.75317085620], [0.128, 2.92458887798, 7.11354700080], [0.150, 5.73646272556, 632.78373931320], [0.106, 0.62224833817, 11272.66747640020], [0.114, 2.63301326520, 17468.85519794540], [0.123, 6.22518843711, 53285.18483524180], [0.107, 1.17258978900, 43071.89928903080], [0.103, 1.09613781581, 41654.96311596780], [0.109, 2.01412667085, 20419.45754542119], [0.102, 4.23406964348, 10251.31321884680], [0.116, 1.27731728606, 10199.05845220940], [0.103, 5.25887538465, 9830.38901398780], [0.112, 2.24436894064, 18204.71445782499], [0.111, 2.23547857955, 8521.11987670860], [0.118, 0.23754207200, 10497.14486507620], [0.123, 0.88054816668, 34596.36465465240], [0.102, 4.39438646620, 18300.69368504279], [0.131, 6.01711652115, 9367.20271145980], [0.100, 5.00532389609, 10175.25787357520], [0.107, 0.41270197502, 40853.14218484400], [0.132, 5.45008342761, 11506.76976979360], [0.098, 1.07722950958, 13553.89797291080], [0.094, 2.91720097590, 44007.82926973960], [0.097, 1.04004223634, 68050.42387851159], [0.127, 2.20215372683, 66813.56483573320], [0.111, 1.57823839032, 29043.67019634839], [0.118, 2.33268176890, 18314.92077904440], [0.090, 2.42353056125, 32858.61374281979], [0.109, 3.82796787296, 19470.28193645139], [0.111, 4.47666957576, 29057.89729034999], [0.101, 3.41528493660, 19264.09638801420], [0.092, 3.66289799512, 22645.32819660879], [0.094, 6.07530805791, 10846.06928552420], [0.114, 4.02718653431, 7576.56007357400], [0.087, 6.01842459303, 17085.95866572220], [0.109, 5.46886607309, 52670.06959330260], [0.107, 0.54805946713, 34363.36559755600], [0.108, 5.44460610707, 19050.79729257620], [0.076, 6.15177368654, 27682.14074415640], [0.107, 4.80525404063, 8144.27871130440], [0.073, 1.60549217847, 20956.26205751660], [0.097, 5.13542051130, 22779.43724619380], [0.068, 2.31300447144, 8631.32619792800], [0.091, 4.28652743953, 10110.19277199240], [0.093, 5.27290609264, 522.57741809380], [0.071, 3.65565961690, 11764.33076885900], [0.089, 1.79712963206, 45585.17281218740], [0.067, 2.25900071584, 9360.08916445900], [0.085, 0.67062144972, 56600.27928952220], [0.080, 1.58278081077, 19992.85935454519], [0.065, 6.23472325597, 10419.47109464820], [0.064, 0.53356325917, 17248.42530185440], [0.085, 4.52011215904, 29786.66025688100], [0.068, 4.48235266554, 10632.77019008620], [0.064, 4.33495700921, 47938.03896595920], [0.071, 3.03858484137, 11787.10597030980], [0.087, 4.81823063172, 2107.03450754240], [0.070, 2.35648061034, 11794.15220700780], [0.080, 2.33248094128, 38526.57435087200], [0.070, 3.70454061100, 8734.41897214660], [0.077, 4.49569185467, 20007.08644854680], [0.072, 1.19410424468, 10217.21769947410], [0.068, 2.01841060183, 14128.24277124560], [0.064, 5.39293951654, 7880.08915333899], [0.066, 3.20467071127, 14765.23904326980], [0.080, 3.41620457770, 48417.97290558199], [0.080, 3.39651161571, 245.83164622940], [0.066, 5.85414440204, 9793.80090233580], [0.082, 3.62592908644, 70743.77453195279], [0.058, 4.95174942212, 30110.16567353840], [0.079, 6.24161471033, 6037.24420376200], [0.069, 5.50183658445, 19793.78735310880], [0.056, 1.24148350566, 10207.76262190360], [0.070, 2.45123308846, 10218.80847051840], [0.064, 5.53983104501, 10735.86296430480], [0.054, 3.62259713240, 27461.71084806540], [0.073, 1.75882480924, 1589.07289528380], [0.075, 3.38244819846, 4214.06901508480], [0.054, 0.64971567468, 9929.42622734580], [0.054, 3.40959637230, 18418.01355326299], [0.056, 3.65815006538, 14169.79356223040], [0.056, 0.71243223808, 9896.89367655440], [0.052, 1.33348131940, 20400.27277262220], [0.067, 3.12806595400, 5481.25491886760], [0.058, 0.54482893546, 28313.28880466100], [0.054, 0.15603935681, 19580.48825767080], [0.051, 3.37515473510, 9256.99639024040], [0.063, 3.38848970950, 49515.38250840700], [0.069, 4.90917651401, 63498.47038145279], [0.057, 5.07437742030, 18521.10632748160], [0.050, 1.59156823654, 18631.31264870099], [0.054, 6.25816208666, 37674.99639427640], [0.057, 5.48065460919, 24383.07910844140], [0.045, 1.10466490660, 10408.25693067160], [0.051, 3.61196470313, 426.59819087600], [0.057, 2.09567711267, 60530.48898574180], [0.060, 5.94659889997, 13897.66359620120], [0.051, 5.47238517720, 57837.13833230060], [0.051, 2.32438478428, 19779.56025910719], [0.052, 3.23766328818, 18940.59097135679], [0.043, 5.74921510909, 51868.24866217880], [0.048, 1.12206254877, 9779.57380833420], [0.058, 3.08646083897, 12074.48840752400], [0.046, 4.07536026888, 7863.94251078820], [0.045, 4.75746520642, 7856.89627409019], [0.054, 4.43528236634, 8617.09910392640], [0.050, 3.70569982975, 42456.78404709160], [0.044, 1.29248911155, 69166.43098950500], [0.046, 0.41229872114, 7564.83072073800], [0.044, 6.17937388307, 13341.67431130680], [0.053, 4.71388531889, 53445.59220462660], [0.041, 3.48003037828, 37895.42629036740], [0.040, 1.23305546260, 10228.53801739600], [0.053, 5.04979874661, 74673.98422817240], [0.039, 1.36646013032, 21202.09370374600], [0.039, 2.15376025201, 8947.71806758460], [0.041, 6.17532984460, 65236.22129328540], [0.052, 1.29052331493, 90394.82301305079], [0.039, 0.70253732683, 18093.37469954999], [0.052, 1.18164377451, 10211.80107350270], [0.047, 1.78672260794, 10401.21069397360], [0.040, 3.66961416802, 10198.03307502600], [0.051, 2.71698589018, 94325.03270927040], [0.036, 1.25091711620, 10323.49186743040], [0.049, 1.21335959420, 9721.62225375220], [0.042, 6.05968230173, 105460.99111839019], [0.046, 5.06978748275, 20350.30502114640], [0.040, 1.97645050921, 32243.49850088060], [0.036, 4.96702216961, 36301.18868778519], [0.037, 5.29642935562, 38.02767263580], [0.039, 0.52064327313, 26709.64694241340], [0.035, 2.34112124655, 58946.51688439399], [0.034, 1.82989750626, 17675.02349273040], [0.034, 0.76493664110, 55798.45835839840], [0.035, 1.09353675147, 69159.80243060499], [0.031, 5.59148330297, 10639.88373708700], [0.032, 3.32960781870, 71519.29714327680], [0.031, 5.98191446392, 24341.52831745660], [0.031, 0.68615213145, 10202.23984594710], [0.030, 4.42039942947, 10459.11719244040], [0.029, 1.30367701539, 20103.06567576459], [0.031, 4.51793347997, 2957.71589447660], [0.035, 4.05634321290, 19903.99367432819], [0.030, 1.32113757427, 574.34479833480], [0.029, 3.36506645849, 10288.06714477830], [0.029, 1.40019042576, 9988.94075050910], [0.032, 0.21932095318, 24978.52458948080], [0.034, 5.22945947227, 8673.96967639900], [0.039, 4.50883171158, 16004.69810374360], [0.028, 2.32945945641, 11392.48008525060], [0.034, 3.92498967835, 536.80451209540], [0.032, 5.46972716255, 64607.84893354619], [0.028, 2.38858990128, 20235.12282631040], [0.030, 3.34585843979, 39793.76025465480], [0.026, 5.36096904409, 1478.86657406440], ], # R1 [ [34551.039, 0.89198710598, 10213.28554621100], [234.203, 1.77224942714, 20426.57109242200], [233.998, 3.14159265359, 0.00000000000], [23.864, 1.11274502648, 9437.76293488700], [10.568, 4.59168210921, 1577.34354244780], [9.124, 4.53540907003, 10404.73381232260], [6.599, 5.97703999838, 5507.55323866740], [4.667, 3.87683960551, 9153.90361602180], [3.840, 5.66196924375, 13367.97263110660], [2.666, 2.82413291285, 10206.17199921020], [2.194, 2.05314419626, 775.52261132400], [2.094, 2.55137285015, 18837.49819713819], [1.782, 2.64808558644, 30639.85663863300], [1.845, 1.87612936641, 11015.10647733480], [1.303, 0.20613045603, 11322.66409830440], [1.169, 0.79431893441, 17298.18232732620], [1.001, 6.16555101536, 10239.58386601080], [0.915, 4.59854496966, 1109.37855209340], [0.884, 0.66706834422, 18073.70493865020], [0.849, 5.58641571940, 12566.15169998280], [1.071, 4.94792017474, 6283.07584999140], [0.887, 2.47785193216, 3154.68708489560], [0.904, 0.81413053841, 10596.18207843420], [0.818, 0.90016838097, 5661.33204915220], [0.845, 5.48504338112, 529.69096509460], [0.824, 3.74837629121, 7084.89678111520], [0.652, 5.07444932607, 22003.91463486980], [0.847, 0.44119876869, 8635.94200376320], [0.638, 4.10125791268, 191.44826611160], [0.615, 3.14417599741, 10186.98722641120], [0.527, 5.86792949279, 2352.86615377180], [0.520, 5.33201358267, 14143.49524243060], [0.576, 2.25212731258, 21228.39202354580], [0.662, 2.86880467345, 8624.21265092720], [0.554, 2.17186191243, 18307.80723204360], [0.515, 4.34331395104, 9786.68735533500], [0.501, 5.56479589366, 10742.97651130560], [0.426, 1.02161443120, 7064.12138562280], [0.418, 1.26803034691, 9676.48103411560], [0.391, 0.78974645621, 9690.70812811720], [0.334, 3.18175822557, 10988.80815753500], [0.375, 0.66142254036, 19360.07561523199], [0.364, 0.19369831864, 19374.30270923360], [0.313, 1.09734397626, 4551.95349705880], [0.330, 0.58817502306, 16496.36139620240], [0.339, 5.76768761396, 10021.83728009940], [0.291, 3.65846764668, 25158.60171976540], [0.223, 4.33581625553, 19786.67380610799], [0.266, 3.57408827667, 801.82093112380], [0.274, 5.73346687248, 11790.62908865880], [0.275, 5.65814317085, 19896.88012732740], [0.212, 4.27038489878, 4705.73230754360], [0.230, 6.13406345590, 1059.38193018920], [0.204, 4.87348390351, 7860.41939243920], [0.241, 1.13551531894, 26.29831979980], [0.206, 0.31907973682, 382.89653222320], [0.216, 2.54741101724, 19651.04848109800], [0.212, 3.15264941106, 14945.31617355440], [0.163, 1.13604744392, 13936.79450513400], [0.151, 5.11341268743, 28521.09277825460], [0.151, 0.81278755582, 6770.71060124560], [0.150, 5.02227334847, 29088.81141598500], [0.146, 1.37568138685, 10220.39909321180], [0.127, 4.49298610074, 3532.06069281140], [0.121, 6.26589208179, 29580.47470844380], [0.147, 6.16092774714, 8662.24032356300], [0.114, 0.00114012635, 25934.12433108940], [0.115, 3.56897715344, 24356.78078864160], [0.124, 0.67547060274, 3723.50895892300], [0.145, 0.36415036222, 9146.79006902100], [0.104, 4.27865011376, 9573.38825989700], [0.136, 5.09581116181, 19367.18916223280], [0.102, 1.53637788668, 17277.40693183380], [0.117, 0.57543238496, 9999.98645077300], [0.092, 0.22936081655, 18830.38465013739], [0.112, 4.04771058036, 9103.90699411760], [0.098, 3.78447692407, 213.29909543800], [0.085, 5.84471458481, 10234.06094170340], [0.079, 0.64440357793, 18844.61174413899], [0.084, 0.56950139213, 9683.59458111640], [0.107, 1.77067111589, 17778.11626694899], [0.081, 6.19048382717, 20618.01935853360], [0.087, 0.15771136594, 33019.02111220460], [0.082, 4.80683817059, 3930.20969621960], [0.086, 2.21505615071, 8094.52168583260], [0.064, 2.69215119482, 16983.99614745660], [0.069, 0.83385751986, 3128.38876509580], [0.081, 4.88025042367, 4732.03062734340], [0.059, 3.34348033725, 10787.63034454580], [0.061, 0.04044699966, 9161.01716302260], [0.064, 4.13127333938, 9992.87290377220], [0.060, 6.24603986632, 32217.20018108080], [0.054, 3.38449893196, 10426.58464164900], [0.054, 5.15939119644, 28286.99048486120], [0.063, 4.32339245083, 12592.45001978260], [0.060, 4.48753846170, 18875.52586977400], [0.057, 3.64912085313, 10007.09999777380], [0.049, 5.10267262491, 19573.37471066999], [0.047, 5.79444960738, 68050.42387851159], [0.052, 3.56658420552, 7255.56965173440], [0.050, 1.61783309819, 36949.23080842420], [0.053, 2.64370544855, 15874.61759536320], [0.040, 3.93466530964, 20419.45754542119], [0.051, 0.79154899901, 23581.25817731760], [0.038, 1.77428239418, 10103.07922499160], [0.049, 1.12423644455, 3442.57494496540], [0.040, 5.22874487975, 21535.94964451540], [0.038, 1.12473430132, 7.11354700080], [0.038, 0.11510547453, 11272.66747640020], [0.036, 2.02476324983, 7058.59846131540], [0.047, 0.05589432390, 12432.04265039780], [0.034, 3.45481114998, 9830.38901398780], [0.045, 4.59817214088, 10192.51015071860], [0.037, 4.93959675364, 3340.61242669980], [0.044, 0.70533027806, 20213.27199698400], [0.034, 2.16487642765, 64460.69868196140], [0.031, 1.57612397319, 36147.40987730040], [0.028, 2.56454760402, 94138.32702008578], [0.033, 1.08907268562, 29864.33402730900], [0.029, 0.59718407064, 59728.66805461800], [0.031, 3.04423979263, 40879.44050464380], [0.035, 0.32247158762, 1589.07289528380], [0.031, 3.27727318906, 19992.85935454519], [0.027, 5.83705748551, 17085.95866572220], [0.032, 2.64260788260, 41962.52073693740], [0.028, 4.90613317287, 29050.78374334920], [0.025, 4.55050389739, 14919.01785375460], [0.028, 3.58851614957, 40853.14218484400], [0.029, 2.79705093386, 20007.08644854680], [0.033, 0.93862065616, 15720.83878487840], [0.024, 2.74970637101, 18947.70451835760], [0.024, 4.38966861409, 46386.99374331120], [0.024, 0.73361964525, 9411.46461508720], [0.028, 4.19559784013, 37674.99639427640], [0.023, 1.00023735538, 22779.43724619380], [0.026, 0.46990555736, 13745.34623902240], [0.028, 4.65181292126, 1551.04522264800], [0.025, 4.18690270765, 44007.82926973960], [0.022, 0.98102807789, 426.59819087600], [0.030, 1.24986033487, 27461.71084806540], [0.027, 3.94986823486, 17468.85519794540], [0.021, 6.09897508157, 18300.69368504279], [0.025, 4.75875623888, 27991.40181316000], [0.022, 2.95281481673, 40077.61957352000], [0.028, 6.12038264955, 38500.27603107220], [0.022, 4.11184201321, 19779.56025910719], [0.027, 3.72446446080, 19793.78735310880], [0.020, 4.27086627368, 31441.67756975680], [0.022, 4.99040169444, 31022.75317085620], [0.023, 1.33505132122, 65236.22129328540], [0.021, 4.46897353468, 53285.18483524180], [0.020, 4.15140915983, 2218.75710418680], [0.025, 2.18447182965, 27511.46787353720], [0.019, 1.43653410349, 27197.28169366760], [0.027, 1.22555218015, 42430.48572729180], [0.019, 3.65054338893, 49515.38250840700], [0.022, 5.88380811711, 10218.80847051840], [0.018, 2.29853355765, 19264.09638801420], [0.017, 5.44429906531, 6681.22485339960], [0.020, 3.68116637773, 14128.24277124560], [0.021, 4.30316190532, 44809.65020086340], [0.020, 2.48583613985, 33794.54372352860], [0.017, 3.02735393984, 28528.20632525540], [0.019, 5.92656850674, 22805.73556599360], [0.022, 5.30827572791, 10207.76262190360], [0.020, 0.75829381378, 18314.92077904440], [0.017, 5.63315744126, 16522.65971600220], [0.016, 1.71021408448, 536.80451209540], [0.015, 5.27016880041, 53445.59220462660], [0.017, 5.61443395877, 47938.03896595920], [0.015, 5.81110284451, 43071.89928903080], [0.015, 4.96237667003, 19999.97290154599], [0.018, 0.55618686515, 14765.23904326980], [0.014, 3.48144272414, 29786.66025688100], [0.015, 5.84132627836, 10228.53801739600], [0.016, 1.05720065324, 26735.94526221320], [0.014, 6.08462030302, 35371.88726597640], [0.014, 2.84532871890, 574.34479833480], [0.015, 5.34517715140, 10198.03307502600], [0.013, 0.45004137509, 20452.86941222180], ], # R2 [ [1406.587, 5.06366395190, 10213.28554621100], [15.529, 5.47321687981, 20426.57109242200], [13.059, 0.00000000000, 0.00000000000], [1.099, 2.78883988292, 9437.76293488700], [0.488, 6.27806914496, 1577.34354244780], [0.361, 6.11914188253, 10404.73381232260], [0.310, 1.38984998403, 5507.55323866740], [0.389, 1.95017779915, 11015.10647733480], [0.372, 2.33222828423, 775.52261132400], [0.207, 5.63406721595, 10239.58386601080], [0.168, 1.10765197296, 13367.97263110660], [0.175, 6.16674652950, 30639.85663863300], [0.168, 3.64495311632, 7084.89678111520], [0.120, 5.85815843789, 9153.90361602180], [0.160, 2.21564938463, 3154.68708489560], [0.118, 2.62358866565, 8635.94200376320], [0.112, 2.36235956804, 10596.18207843420], [0.092, 0.72664449269, 12566.15169998280], [0.067, 3.76089669118, 18837.49819713819], [0.065, 2.47983709990, 11790.62908865880], [0.048, 4.26620187144, 2352.86615377180], [0.048, 5.50898189550, 191.44826611160], [0.048, 2.54730918293, 17298.18232732620], [0.046, 3.40293459332, 14143.49524243060], [0.041, 1.83997113019, 11322.66409830440], [0.037, 6.17871126027, 1109.37855209340], [0.039, 4.77190210316, 18073.70493865020], [0.035, 3.10133256432, 4705.73230754360], [0.046, 3.30090415967, 6283.07584999140], [0.034, 3.91721765773, 10021.83728009940], [0.034, 3.24663787383, 22003.91463486980], [0.042, 3.39360926939, 14945.31617355440], [0.044, 4.42979374073, 7860.41939243920], [0.034, 2.16381407025, 16496.36139620240], [0.031, 0.45714618479, 26.29831979980], [0.035, 3.62868651241, 801.82093112380], [0.032, 1.84138997078, 382.89653222320], [0.025, 3.32908650295, 18307.80723204360], [0.026, 3.64313769818, 29088.81141598500], [0.029, 3.82967178810, 10186.98722641120], [0.022, 3.17741520378, 28521.09277825460], [0.021, 2.52643834111, 529.69096509460], [0.025, 5.71401244457, 21202.09370374600], [0.021, 3.77813434325, 21228.39202354580], [0.019, 5.24505118517, 19896.88012732740], [0.018, 4.62463651925, 19651.04848109800], [0.016, 3.35893297896, 28286.99048486120], [0.015, 5.05571633205, 33019.02111220460], [0.014, 2.83786355803, 19786.67380610799], [0.014, 1.79922718553, 9830.38901398780], [0.014, 3.14801263138, 19367.18916223280], [0.014, 3.57896195191, 10988.80815753500], [0.013, 3.06303088617, 10742.97651130560], [0.013, 5.43981998532, 25158.60171976540], [0.015, 4.83166312889, 18875.52586977400], [0.012, 2.54141086214, 7064.12138562280], [0.012, 4.45255110769, 15720.83878487840], [0.010, 1.87933121728, 24356.78078864160], [0.011, 2.58708635685, 9103.90699411760], [0.010, 2.17901309900, 3723.50895892300], [0.008, 3.63520673832, 1059.38193018920], [0.008, 4.67523115598, 25934.12433108940], [0.009, 5.97856553283, 9683.59458111640], ], # R3 [ [49.582, 3.22263554520, 10213.28554621100], [0.831, 3.21219077104, 20426.57109242200], [0.112, 3.14159265359, 0.00000000000], [0.013, 3.77448689585, 30639.85663863300], [0.009, 4.19802043629, 10239.58386601080], [0.006, 0.20714935358, 10186.98722641120], [0.005, 0.68781956122, 8635.94200376320], ], # R4 [ [0.573, 0.92229697820, 10213.28554621100], [0.040, 0.95468912157, 20426.57109242200], [0.006, 3.14159265359, 0.00000000000], ], # R5 [ [0.045, 0.30032866722, 10213.28554621100], [0.002, 5.29627718483, 20426.57109242200], ], ] """This table contains Venus's periodic terms (all of them) from the planetary theory VSOP87 for the radius vector at the equinox of date (taken from the 'D' solution). In Meeus' book a shortened version can be found in pages 420-421.""" ORBITAL_ELEM = [ [181.979801, 58519.2130302, 0.00031014, 0.000000015], # L [0.72332982, 0.0, 0.0, 0.0], # a [0.00677192, -0.000047765, 0.0000000981, 0.00000000046], # e [3.394662, 0.0010037, -0.00000088, -0.000000007], # i [76.67992, 0.9011206, 0.00040618, -0.000000093], # Omega [131.563703, 1.4022288, -0.00107618, -0.000005678] # pie ] """This table contains the parameters to compute Venus' orbital elements for the mean equinox of date. Based in Table 31.A, page 212""" ORBITAL_ELEM_J2000 = [ [181.979801, 58517.815676, 0.00000165, -0.000000002], # L [3.394662, -0.0008568, -0.00003244, 0.000000009], # i [76.67992, -0.2780134, -0.00014257, -0.000000164], # Omega [131.563703, 0.0048746, -0.00138467, -0.000005695] # pie ] """This table contains the parameters to compute Venus' orbital elements for the standard equinox J2000.0. Based on Table 31.B, page 214""" class Venus(object): """ Class Venus models that planet. """ @staticmethod def geometric_heliocentric_position(epoch, tofk5=True): """This method computes the geometric heliocentric position of planet Venus for a given epoch, using the VSOP87 theory. :param epoch: Epoch to compute Venus position, as an Epoch object :type epoch: :py:class:`Epoch` :param tofk5: Whether or not the small correction to convert to the FK5 system will be applied or not :type tofk5: bool :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input value is of wrong type. >>> epoch = Epoch(1992, 12, 20.0) >>> l, b, r = Venus.geometric_heliocentric_position(epoch, tofk5=False) >>> print(round(l, 5)) 26.11412 >>> print(round(b, 4)) -2.6206 >>> print(round(r, 6)) 0.724602 """ return geometric_vsop_pos(epoch, VSOP87_L, VSOP87_B, VSOP87_R, tofk5) @staticmethod def apparent_heliocentric_position(epoch): """This method computes the apparent heliocentric position of planet Venus for a given epoch, using the VSOP87 theory. :param epoch: Epoch to compute Venus position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input value is of wrong type. """ return apparent_vsop_pos(epoch, VSOP87_L, VSOP87_B, VSOP87_R) @staticmethod def orbital_elements_mean_equinox(epoch): """This method computes the orbital elements of Venus for the mean equinox of the date for a given epoch. :param epoch: Epoch to compute orbital elements, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the following six orbital elements: - Mean longitude of the planet (Angle) - Semimajor axis of the orbit (float, astronomical units) - eccentricity of the orbit (float) - inclination on the plane of the ecliptic (Angle) - longitude of the ascending node (Angle) - argument of the perihelion (Angle) :rtype: tuple :raises: TypeError if input value is of wrong type. >>> epoch = Epoch(2065, 6, 24.0) >>> l, a, e, i, ome, arg = Venus.orbital_elements_mean_equinox(epoch) >>> print(round(l, 6)) 338.646306 >>> print(round(a, 8)) 0.72332982 >>> print(round(e, 7)) 0.0067407 >>> print(round(i, 6)) 3.395319 >>> print(round(ome, 5)) 77.27012 >>> print(round(arg, 6)) 55.211257 """ return orbital_elements(epoch, ORBITAL_ELEM, ORBITAL_ELEM) @staticmethod def orbital_elements_j2000(epoch): """This method computes the orbital elements of Venus for the standard equinox J2000.0 for a given epoch. :param epoch: Epoch to compute orbital elements, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the following six orbital elements: - Mean longitude of the planet (Angle) - Semimajor axis of the orbit (float, astronomical units) - eccentricity of the orbit (float) - inclination on the plane of the ecliptic (Angle) - longitude of the ascending node (Angle) - argument of the perihelion (Angle) :rtype: tuple :raises: TypeError if input value is of wrong type. >>> epoch = Epoch(2065, 6, 24.0) >>> l, a, e, i, ome, arg = Venus.orbital_elements_j2000(epoch) >>> print(round(l, 6)) 337.731227 >>> print(round(a, 8)) 0.72332982 >>> print(round(e, 7)) 0.0067407 >>> print(round(i, 6)) 3.394087 >>> print(round(ome, 5)) 76.49782 >>> print(round(arg, 6)) 55.068476 """ return orbital_elements(epoch, ORBITAL_ELEM, ORBITAL_ELEM_J2000) @staticmethod def geocentric_position(epoch): """This method computes the geocentric position of Venus (right ascension and declination) for the given epoch, as well as the elongation angle. :param epoch: Epoch to compute geocentric position, as an Epoch object :type epoch: :py:class:`Epoch` :returns: A tuple containing the right ascension, the declination and the elongation angle as Angle objects :rtype: tuple :raises: TypeError if input value is of wrong type. >>> epoch = Epoch(1992, 12, 20.0) >>> ra, dec, elon = Venus.geocentric_position(epoch) >>> print(ra.ra_str(n_dec=1)) 21h 4' 41.5'' >>> print(dec.dms_str(n_dec=1)) -18d 53' 16.8'' >>> print(elon.dms_str(n_dec=1)) 44d 46' 8.9'' """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Compute the heliocentric position of Venus l, b, r = Venus.geometric_heliocentric_position(epoch, tofk5=False) # Compute the heliocentric position of the Earth l0, b0, r0 = Earth.geometric_heliocentric_position(epoch, tofk5=False) # Convert to radians lr = l.rad() br = b.rad() l0r = l0.rad() b0r = b0.rad() # Compute first iteration x = r * cos(br) * cos(lr) - r0 * cos(b0r) * cos(l0r) y = r * cos(br) * sin(lr) - r0 * cos(b0r) * sin(l0r) z = r * sin(br) - r0 * sin(b0r) delta = sqrt(x * x + y * y + z * z) tau = 0.0057755183 * delta # Adjust the epoch for light-time epoch -= tau # Compute again Venus coordinates with this correction l, b, r = Venus.geometric_heliocentric_position(epoch, tofk5=False) # Compute second iteration lr = l.rad() br = b.rad() x = r * cos(br) * cos(lr) - r0 * cos(b0r) * cos(l0r) y = r * cos(br) * sin(lr) - r0 * cos(b0r) * sin(l0r) z = r * sin(br) - r0 * sin(b0r) # Compute longitude and latitude lamb = atan2(y, x) beta = atan2(z, sqrt(x * x + y * y)) # Now, let's compute the aberration effect t = (epoch - JDE2000) / 36525 e = 0.016708634 + t * (-0.000042037 - t * 0.0000001267) pie = 102.93735 + t * (1.71946 + t * 0.00046) pie = radians(pie) lon = l0 + 180.0 lon = lon.rad() k = 20.49552 # The constant of aberration deltal1 = k * (-cos(lon - lamb) + e * cos(pie - lamb)) / cos(beta) deltab1 = -k * sin(beta) * (sin(lon - lamb) - e * sin(pie - lamb)) deltal1 = Angle(0, 0, deltal1) deltab1 = Angle(0, 0, deltab1) # Correction to FK5 system lamb = Angle(lamb, radians=True) lamb = lamb.to_positive() beta = Angle(beta, radians=True) l_prime = lamb - t * (1.397 + t * 0.00031) deltal2 = Angle(0, 0, -0.09033) a = 0.03916 * (cos(l_prime.rad()) + sin(l_prime.rad())) a = a * tan(b.rad()) deltal2 += Angle(0, 0, a) deltab2 = 0.03916 * (cos(l_prime.rad()) - sin(l_prime.rad())) deltab2 = Angle(0, 0, deltab2) # Apply the corrections lamb = lamb + deltal1 + deltal2 beta = beta + deltab1 + deltab2 # Correction for nutation dpsi = nutation_longitude(epoch) lamb += dpsi e = true_obliquity(epoch) ra, dec = ecliptical2equatorial(lamb, beta, e) # Let's compute the elongation angle lons, lats, rs = Sun.apparent_geocentric_position(epoch) lambr = lamb.rad() lsr = lons.rad() betar = beta.rad() elon = acos(cos(betar) * cos(lambr - lsr)) elon = Angle(elon, radians=True) return ra, dec, elon @staticmethod def inferior_conjunction(epoch): """This method computes the time of the inferior conjunction closest to the given epoch. :param epoch: Epoch close to the desired inferior conjunction :type epoch: :py:class:`Epoch` :returns: The time when the inferior conjunction happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(1882, 12, 1.0) >>> conjunction = Venus.inferior_conjunction(epoch) >>> y, m, d = conjunction.get_date() >>> print(y) 1882 >>> print(m) 12 >>> print(round(d, 1)) 6.7 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Venus' inferior conjunction a = 2451996.706 b = 583.921361 m0 = 82.7311 m1 = 215.513058 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 corr = (-0.0096 + t * (0.0002 - t * 0.00001) + sin(m) * (2.0009 + t * (-0.0033 - t * 0.00001)) + cos(m) * (0.598 + t * (-0.0104 + t * 0.00001)) + sin(2.0 * m) * (0.0967 + t * (-0.0018 - t * 0.00003)) + cos(2.0 * m) * (0.0913 + t * (0.0009 - t * 0.00002)) + sin(3.0 * m) * (0.0046 - t * 0.0002) + cos(3.0 * m) * (0.0079 + t * 0.0001)) to_return = jde0 + corr return Epoch(to_return) @staticmethod def superior_conjunction(epoch): """This method computes the time of the superior conjunction closest to the given epoch. :param epoch: Epoch close to the desired superior conjunction :type epoch: :py:class:`Epoch` :returns: The time when the superior conjunction happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(1993, 10, 1.0) >>> conjunction = Venus.superior_conjunction(epoch) >>> y, m, d = conjunction.get_date() >>> print(y) 1994 >>> print(m) 1 >>> print(round(d, 2)) 17.05 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Venus' superior conjunction a = 2451704.746 b = 583.921361 m0 = 154.9745 m1 = 215.513058 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 corr = (0.0099 + t * (-0.0002 - t * 0.00001) + sin(m) * (4.1991 + t * (-0.0121 - t * 0.00003)) + cos(m) * (-0.6095 + t * (0.0102 - t * 0.00002)) + sin(2.0 * m) * (0.25 + t * (-0.0028 - t * 0.00003)) + cos(2.0 * m) * (0.0063 + t * (0.0025 - t * 0.00002)) + sin(3.0 * m) * (0.0232 + t * (-0.0005 - t * 0.00001)) + cos(3.0 * m) * (0.0031 + t * 0.0004)) to_return = jde0 + corr return Epoch(to_return) @staticmethod def western_elongation(epoch): """This method computes the time of the western elongation closest to the given epoch, as well as the corresponding maximum elongation angle. :param epoch: Epoch close to the desired western elongation :type epoch: :py:class:`Epoch` :returns: A tuple with the time when the western elongation happens, as an Epoch, and the maximum elongation angle, as an Angle :rtype: tuple :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(2019, 1, 1.0) >>> time, elongation = Venus.western_elongation(epoch) >>> y, m, d = time.get_date() >>> print(y) 2019 >>> print(m) 1 >>> print(round(d, 4)) 6.1895 >>> print(round(elongation, 4)) 46.9571 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Venus' inferior conjunction a = 2451996.706 b = 583.921361 m0 = 82.7311 m1 = 215.513058 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 corr = (70.7462 - t * t * 0.00001 + sin(m) * (1.1218 + t * (-0.0025 - t * 0.00001)) + cos(m) * (0.4538 - t * 0.0066) + sin(2.0 * m) * (0.132 + t * (0.002 - t * 0.00003)) + cos(2.0 * m) * (-0.0702 + t * (0.0022 + t * 0.00004)) + sin(3.0 * m) * (0.0062 - t * 0.0001) + cos(3.0 * m) * (0.0015 - t * t * 0.00001)) elon = (46.3245 + sin(m) * (-0.5366 + t * (-0.0003 + t * 0.00001)) + cos(m) * (0.3097 + t * (0.0016 - t * 0.00001)) + sin(2.0 * m) * (-0.0163) + cos(2.0 * m) * (-0.0075 + t * 0.0001)) elon = Angle(elon).to_positive() to_return = jde0 + corr return Epoch(to_return), elon @staticmethod def eastern_elongation(epoch): """This method computes the time of the eastern elongation closest to the given epoch, as well as the corresponding maximum elongation angle. :param epoch: Epoch close to the desired eastern elongation :type epoch: :py:class:`Epoch` :returns: A tuple with the time when the eastern elongation happens, as an Epoch, and the maximum elongation angle, as an Angle :rtype: tuple :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(2019, 10, 1.0) >>> time, elongation = Venus.eastern_elongation(epoch) >>> y, m, d = time.get_date() >>> print(y) 2020 >>> print(m) 3 >>> print(round(d, 4)) 24.9179 >>> print(round(elongation, 4)) 46.078 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Venus' inferior conjunction a = 2451996.706 b = 583.921361 m0 = 82.7311 m1 = 215.513058 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 corr = (-70.76 + t * (0.0002 - t * 0.00001) + sin(m) * (1.0282 + t * (-0.001 - t * 0.00001)) + cos(m) * (0.2761 - t * 0.006) + sin(2.0 * m) * (-0.0438 + t * (-0.0023 + t * 0.00002)) + cos(2.0 * m) * (0.166 + t * (-0.0037 - t * 0.00004)) + sin(3.0 * m) * (0.0036 + t * 0.0001) + cos(3.0 * m) * (-0.0011 + t * t * 0.00001)) elon = (46.3173 + t * 0.0001 + sin(m) * (0.6916 - t * 0.0024) + cos(m) * (0.6676 - t * 0.0045) + sin(2.0 * m) * (0.0309 - t * 0.0002) + cos(2.0 * m) * (0.0036 - t * 0.0001)) elon = Angle(elon).to_positive() to_return = jde0 + corr return Epoch(to_return), elon @staticmethod def station_longitude_1(epoch): """This method computes the time of the 1st station in longitude (i.e. when the planet is stationary and begins to move westward - retrograde - among the starts) closest to the given epoch. :param epoch: Epoch close to the desired inferior conjunction :type epoch: :py:class:`Epoch` :returns: Time when the 1st station in longitude happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(2018, 12, 1.0) >>> sta1 = Venus.station_longitude_1(epoch) >>> y, m, d = sta1.get_date() >>> print(y) 2018 >>> print(m) 10 >>> print(round(d, 4)) 5.7908 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Venus' inferior conjunction a = 2451996.706 b = 583.921361 m0 = 82.7311 m1 = 215.513058 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 corr = (-21.0672 + t * (0.0002 - t * 0.00001) + sin(m) * (1.9396 + t * (-0.0029 - t * 0.00001)) + cos(m) * (1.0727 - t * 0.0102) + sin(2.0 * m) * (0.0404 + t * (-0.0023 - t * 0.00001)) + cos(2.0 * m) * (0.1305 + t * (-0.0004 - t * 0.00003)) + sin(3.0 * m) * (-0.0007 - t * 0.0002) + cos(3.0 * m) * (0.0098)) to_return = jde0 + corr return Epoch(to_return) @staticmethod def station_longitude_2(epoch): """This method computes the time of the 1st station in longitude (i.e. when the planet is stationary and begins to move eastward - prograde - among the starts) closest to the given epoch. :param epoch: Epoch close to the desired inferior conjunction :type epoch: :py:class:`Epoch` :returns: Time when the 2nd station in longitude happens, as an Epoch :rtype: :py:class:`Epoch` :raises: TypeError if input value is of wrong type. :raises: ValueError if input epoch outside the -2000/4000 range. >>> epoch = Epoch(2018, 12, 1.0) >>> sta2 = Venus.station_longitude_2(epoch) >>> y, m, d = sta2.get_date() >>> print(y) 2018 >>> print(m) 11 >>> print(round(d, 4)) 16.439 """ # First check that input value is of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input type") # Check that the input epoch is within valid range y = epoch.year() if y < -2000.0 or y > 4000.0: raise ValueError("Epoch outside the -2000/4000 range") # Set some specific constants for Venus' inferior conjunction a = 2451996.706 b = 583.921361 m0 = 82.7311 m1 = 215.513058 k = round((365.2425 * y + 1721060.0 - a) / b) jde0 = a + k * b m = m0 + k * m1 m = Angle(m).to_positive() m = m.rad() t = (jde0 - 2451545.0) / 36525.0 corr = (21.0623 - t * t * 0.00001 + sin(m) * (1.9913 + t * (-0.004 - t * 0.00001)) + cos(m) * (-0.0407 - t * 0.0077) + sin(2.0 * m) * (0.1351 + t * (-0.0009 - t * 0.00004)) + cos(2.0 * m) * (0.0303 + t * 0.0019) + sin(3.0 * m) * (0.0089 - t * 0.0002) + cos(3.0 * m) * (0.0043 + t * 0.0001)) to_return = jde0 + corr return Epoch(to_return) @staticmethod def perihelion_aphelion(epoch, perihelion=True): """This method computes the time of Perihelion (or Aphelion) closer to a given epoch. :param epoch: Epoch close to the desired Perihelion (or Aphelion) :type epoch: :py:class:`Epoch` :param peihelion: If True, the epoch of the closest Perihelion is computed, if False, the epoch of the closest Aphelion is found. :type bool: :returns: The epoch of the desired Perihelion (or Aphelion) :rtype: :py:class:`Epoch` :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(1978, 10, 15.0) >>> e = Venus.perihelion_aphelion(epoch) >>> y, m, d, h, mi, s = e.get_full_date() >>> print(y) 1978 >>> print(m) 12 >>> print(d) 31 >>> print(h) 4 >>> epoch = Epoch(1979, 2, 1.0) >>> e = Venus.perihelion_aphelion(epoch, perihelion=False) >>> y, m, d, h, mi, s = e.get_full_date() >>> print(y) 1979 >>> print(m) 4 >>> print(d) 22 >>> print(h) 12 """ if not isinstance(epoch, Epoch): raise TypeError("Invalid input value") # First approximation k = 1.62549 * (epoch.year() - 2000.53) if perihelion: k = round(k) else: k = round(k + 0.5) - 0.5 jde = 2451738.233 + k * (224.7008188 - k * 0.0000000327) # Compute the epochs half a day before and after jde_before = jde - 0.5 jde_after = jde + 0.5 # Compute the Sun-Venus distance for each epoch l, b, r_b = Venus.geometric_heliocentric_position(Epoch(jde_before)) l, b, r = Venus.geometric_heliocentric_position(Epoch(jde)) l, b, r_a = Venus.geometric_heliocentric_position(Epoch(jde_after)) # Call an interpolation object m = Interpolation([jde_before, jde, jde_after], [r_b, r, r_a]) sol = m.minmax() return Epoch(sol) @staticmethod def passage_nodes(epoch, ascending=True): """This function computes the time of passage by the nodes (ascending or descending) of Venus, nearest to the given epoch. :param epoch: Epoch closest to the node passage :type epoch: :py:class:`Epoch` :param ascending: Whether the time of passage by the ascending (True) or descending (False) node will be computed :type ascending: bool :returns: Tuple containing: - Time of passage through the node (:py:class:`Epoch`) - Radius vector when passing through the node (in AU, float) :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(1979, 1, 1) >>> time, r = Venus.passage_nodes(epoch) >>> year, month, day = time.get_date() >>> print(year) 1978 >>> print(month) 11 >>> print(round(day, 1)) 27.4 >>> print(round(r, 4)) 0.7205 """ if not isinstance(epoch, Epoch): raise TypeError("Invalid input types") # Get the orbital parameters l, a, e, i, ome, arg = Venus.orbital_elements_mean_equinox(epoch) # Compute the time of passage through perihelion t = Venus.perihelion_aphelion(epoch) # Get the time of passage through the node time, r = passage_nodes_elliptic(arg, e, a, t, ascending) return time, r @staticmethod def illuminated_fraction(epoch): """This function computes an approximation of the illuminated fraction of Venus disk, as seen from Earth. :param epoch: Epoch to compute the illuminated fraction :type epoch: :py:class:`Epoch` :returns: Illuminated fraction of Venus disk :rtype: float :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(1992, 12, 20) >>> k = Venus.illuminated_fraction(epoch) >>> print(round(k, 2)) 0.64 """ if not isinstance(epoch, Epoch): raise TypeError("Invalid input types") t = (epoch.jde() - 2451545.0) / 36525.0 v = Angle(261.51 + 22518.443 * t) m = Angle(177.53 + 35999.050 * t) n = Angle(50.42 + 58517.811 * t) w = Angle(v + 1.91 * sin(m.rad()) + 0.78 * sin(n.rad())) delta2 = abs(1.52321 + 1.44666 * cos(w.rad())) delta = sqrt(delta2) k = ((0.72333 + delta) * (0.72333 + delta) - 1.0) / (2.89332 * delta) return k @staticmethod def magnitude(sun_dist, earth_dist, phase_angle): """This function computes the approximate magnitude of Venus. :param sun_dist: Distance from Venus to the Sun, in Astronomical Units :type sun_dist: float :param earth_dist: Distance from Venus to Earth, in Astronomical Units :type earth_dist: float :param phase_angle: Venus phase angle :type phase_angle: float, :py:class:`Angle` :returns: Venus' magnitude :rtype: float :raises: TypeError if input values are of wrong type. >>> sun_dist = 0.724604 >>> earth_dist = 0.910947 >>> phase_angle = Angle(72.96) >>> m = Venus.magnitude(sun_dist, earth_dist, phase_angle) >>> print(m) -3.8 """ if not (isinstance(sun_dist, float) and isinstance(earth_dist, float) and isinstance(phase_angle, (float, Angle))): raise TypeError("Invalid input types") i = float(phase_angle) m = (-4.0 + 5.0 * log10(sun_dist * earth_dist) + 0.01322 * i + 0.0000004247 * i * i * i) return round(m, 1) def main(): # Let's define a small helper function def print_me(msg, val): print("{}: {}".format(msg, val)) # Let's show some uses of Venus class print("\n" + 35 * "*") print("*** Use of Venus class") print(35 * "*" + "\n") # Let's now compute the heliocentric position for a given epoch epoch = Epoch(1992, 12, 20.0) lon, lat, r = Venus.geometric_heliocentric_position(epoch) print_me("Geometric Heliocentric Longitude", lon.to_positive()) print_me("Geometric Heliocentric Latitude", lat) print_me("Radius vector", r) print("") # Compute the geocentric position for 1992/12/20: epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Venus.geocentric_position(epoch) print_me("Right ascension", ra.ra_str(n_dec=1)) print_me("Declination", dec.dms_str(n_dec=1)) print_me("Elongation", elon.dms_str(n_dec=1)) print("") # Print mean orbital elements for Venus at 2065.6.24 epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Venus.orbital_elements_mean_equinox(epoch) print_me("Mean longitude of the planet", round(l, 6)) # 338.646306 print_me("Semimajor axis of the orbit (UA)", round(a, 8)) # 0.72332982 print_me("Eccentricity of the orbit", round(e, 7)) # 0.0067407 print_me("Inclination on plane of the ecliptic", round(i, 6)) # 3.395319 print_me("Longitude of the ascending node", round(ome, 5)) # 77.27012 print_me("Argument of the perihelion", round(arg, 6)) # 55.211257 print("") # Compute the time of the inferior conjunction close to 1882/12/1.0 epoch = Epoch(1882, 12, 1.0) conjunction = Venus.inferior_conjunction(epoch) y, m, d = conjunction.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Inferior conjunction date", date) # Compute the time of the superior conjunction close to 1993/10/1 epoch = Epoch(1993, 10, 1.0) conjunction = Venus.superior_conjunction(epoch) y, m, d = conjunction.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Superior conjunction date", date) print("") # Compute the time and angle of the western elongation close to 2019/1/1 epoch = Epoch(2019, 1, 1.0) time, elongation = Venus.western_elongation(epoch) y, m, d = time.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Western elongation date", date) elong = round(elongation, 4) print_me("Maximum western elongation angle", elong) print("") # Compute the time and angle of the eastern elongation close to 2019/10/1 epoch = Epoch(2019, 10, 1.0) time, elongation = Venus.eastern_elongation(epoch) y, m, d = time.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Eastern elongation date", date) elong = round(elongation, 4) print_me("Maximum eastern elongation angle", elong) print("") # Compute the time of the station in longitude #1 close to 2018/12/1 epoch = Epoch(2018, 12, 1.0) sta1 = Venus.station_longitude_1(epoch) y, m, d = sta1.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Date of station in longitude #1", date) # Compute the time of the station in longitude #2 close to 2018/12/1 epoch = Epoch(2018, 12, 1.0) sta2 = Venus.station_longitude_2(epoch) y, m, d = sta2.get_date() d = round(d, 4) date = "{}/{}/{}".format(y, m, d) print_me("Date of station in longitude #2", date) print("") # Find the epoch of the Perihelion closer to 1978/10/15 epoch = Epoch(1978, 10, 15.0) e = Venus.perihelion_aphelion(epoch) y, m, d, h, mi, s = e.get_full_date() peri = str(y) + '/' + str(m) + '/' + str(d) + ' at ' + str(h) + ' hours' print_me("The Perihelion closest to 1978/10/15 happened on", peri) print("") # Compute the time of passage through an ascending node epoch = Epoch(1979, 1, 1) time, r = Venus.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) print("Time of passage through ascending node: {}/{}/{}".format(y, m, d)) # 1978/11/27.4 print("Radius vector at ascending node: {}".format(round(r, 4))) # 0.7205 print("") # Compute the (approximate) illuminated fraction of Venus disk for an Epoch epoch = Epoch(1992, 12, 20) k = Venus.illuminated_fraction(epoch) print_me("Approximate illuminated fraction of Venus", round(k, 2)) # 0.64 # Compute the magnitude of Venus sun_dist = 0.724604 earth_dist = 0.910947 phase_angle = Angle(72.96) m = Venus.magnitude(sun_dist, earth_dist, phase_angle) print_me("Venus' magnitude", round(m, 1)) # -3.8 if __name__ == "__main__": main() pymeeus-0.3.6/pymeeus/__init__.py000066400000000000000000000000001355545537700170200ustar00rootroot00000000000000pymeeus-0.3.6/pymeeus/base.py000066400000000000000000000077101355545537700162120ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from math import floor """ .. module:: base :synopsis: Basic routines and constants used by the pymeeus module :license: GNU Lesser General Public License v3 (LGPLv3) .. moduleauthor:: Dagoberto Salazar """ TOL = 1e-10 """Internal tolerance being used by default""" def machine_accuracy(): """This function computes the accuracy of the computer being used. This function returns a tuple containing the number of significant bits in the mantissa of a floating number, and the number of significant digits in a decimal number. :returns: Number of significant bits, and of significant digits :rtype: tuple """ j = 0.0 x = 2.0 while x + 1.0 != x: j += 1.0 x *= 2.0 return (j, int(j * 0.30103)) def get_ordinal_suffix(ordinal): """Method to get the suffix of a given ordinal number, like 1'st', 2'nd', 15'th', etc. :param ordinal: Ordinal number :type ordinal: int :returns: Suffix corresponding to input ordinal number :rtype: str :raises: TypeError if input type is invalid. >>> get_ordinal_suffix(40) 'th' >>> get_ordinal_suffix(101) 'st' >>> get_ordinal_suffix(2) 'nd' >>> get_ordinal_suffix(19) 'th' >>> get_ordinal_suffix(23) 'rd' """ if not isinstance(ordinal, (int, float)): raise TypeError("Invalid input type") else: ordinal = int(floor(ordinal)) unit = ordinal % 10 if unit == 1 and ordinal != 11: return "st" elif unit == 2 and ordinal != 12: return "nd" elif unit == 3 and ordinal != 13: return "rd" else: return "th" def iint(number): """This method behaves in the same way as the **INT()** function described by Meeus in his book: Greatest integer which is not greater than number. :param number: Number or expresion :type number: int, float :returns: Greatest integer which is not greater than number :rtype: int :raises: TypeError if input type is invalid. >>> iint(19) 19 >>> iint(19.95) 19 >>> iint(-2.4) -3 """ if not isinstance(number, (int, float)): raise TypeError("Invalid input type") else: return int(floor(number)) def main(): # Let's define a small helper function def print_me(msg, val): print("{}: {}".format(msg, val)) # Let's print the tolerance print_me("The default value for the tolerance is", TOL) # Find the accuracy of this computer j, d = machine_accuracy() print_me("Number of significant BITS in the mantissa\t", j) print_me("Number of significant DIGITS in a decimal number", d) print("") print_me("The suffix for ordinal 2 is", get_ordinal_suffix(2)) print_me("The suffix for ordinal 11 is", get_ordinal_suffix(11)) print_me("The suffix for ordinal 12 is", get_ordinal_suffix(12)) print_me("The suffix for ordinal 13 is", get_ordinal_suffix(13)) print_me("The suffix for ordinal 14 is", get_ordinal_suffix(14)) print_me("The suffix for ordinal 16 is", get_ordinal_suffix(16)) print_me("The suffix for ordinal 23 is", get_ordinal_suffix(23)) if __name__ == "__main__": main() pymeeus-0.3.6/setup.cfg000066400000000000000000000000461355545537700150530ustar00rootroot00000000000000[egg_info] tag_build = tag_date = 0 pymeeus-0.3.6/setup.py000066400000000000000000000025071355545537700147500ustar00rootroot00000000000000try: from setuptools import setup except ImportError: from distutils.core import setup from os import path here = path.abspath(path.dirname(__file__)) # Get the long description from the relevant file with open(path.join(here, 'README.rst')) as f: long_description = f.read() config = { 'name': 'PyMeeus', 'version': '0.3.6', 'description': 'Python implementation of Jean Meeus astronomical routines', 'long_description': long_description, 'keywords': 'Meeus astronomy module library', 'license': 'LGPLv3', 'author': 'Dagoberto Salazar', 'author_email': 'dagoberto.salazar@gmail.com', 'url': 'https://github.com/architest/pymeeus', 'download_url': 'https://github.com/architest/pymeeus', # 'install_requires': ['nose', 'pypandoc'], 'packages': ['pymeeus'], # 'scripts': ['example.py'], 'py_modules': ['base'], 'classifiers': [ 'Development Status :: 4 - Beta', 'Environment :: Console', 'Intended Audience :: Developers', 'Intended Audience :: Education', 'Intended Audience :: Science/Research', 'License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)', 'Operating System :: OS Independent', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3.6', 'Topic :: Scientific/Engineering :: Astronomy' ] } setup(**config) pymeeus-0.3.6/tests/000077500000000000000000000000001355545537700143745ustar00rootroot00000000000000pymeeus-0.3.6/tests/__init__.py000066400000000000000000000000001355545537700164730ustar00rootroot00000000000000pymeeus-0.3.6/tests/test_angle.py000066400000000000000000000516731355545537700171070ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from math import pi from pymeeus.base import TOL from pymeeus.Angle import Angle # Angle class def test_angle_constructor(): """Tests the constructor of Angle class""" a = Angle(23.44694444) assert abs(a._deg - 23.44694444) < TOL, \ "ERROR: 1st constructor test, degrees value doesn't match" b = Angle(-23.44694444) assert abs(b._deg - (-23.44694444)) < TOL, \ "ERROR: 2nd constructor test, degrees value doesn't match" c = Angle(383.44694444) assert abs(c._deg - 23.44694444) < TOL, \ "ERROR: 3rd constructor test, degrees value doesn't match" d = Angle(-383.44694444) assert abs(d._deg - (-23.44694444)) < TOL, \ "ERROR: 4th constructor test, degrees value doesn't match" e = Angle(-23.0, 26.0, 48.999983999) assert abs(e._deg - (-23.44694444)) < TOL, \ "ERROR: 5th constructor test, degrees value doesn't match" f = Angle(23.0, -30.0) assert abs(f._deg - (-23.5)) < TOL, \ "ERROR: 6th constructor test, degrees value doesn't match" g = Angle((-23.0, 26.0, 48.999983999)) assert abs(g._deg - (-23.44694444)) < TOL, \ "ERROR: 7th constructor test, degrees value doesn't match" h = Angle([-23.0, 26.0, 48.999983999]) assert abs(h._deg - (-23.44694444)) < TOL, \ "ERROR: 8th constructor test, degrees value doesn't match" i = Angle(1.0, radians=True) assert abs(i._deg - 57.29577951308232) < TOL, \ "ERROR: 9th constructor test, degrees value doesn't match" j = Angle((23.0, 26.0, 48.999983999, -1.0)) assert abs(j._deg - (-23.44694444)) < TOL, \ "ERROR: 10th constructor test, degrees value doesn't match" k = Angle(23.0, 26.0, 48.999983999, -7.4) assert abs(k._deg - (-23.44694444)) < TOL, \ "ERROR: 11th constructor test, degrees value doesn't match" m = Angle([23.0, -26.0, 48.999983999, -4.5]) assert abs(m._deg - (-23.44694444)) < TOL, \ "ERROR: 12th constructor test, degrees value doesn't match" def test_angle_set_radians(): """Tests the set_radians() method of Angle class""" a = Angle() a.set_radians(pi) # Input is in radians assert abs(a() - 180.0) < TOL, \ "ERROR: 1st set_radians() test, degrees value doesn't match" def test_angle_set_ra(): """Tests the set_ra() method of Angle class""" a = Angle() a.set_ra(9.248833333333) # Input is in RA assert abs(a._deg - 138.7325) < TOL, \ "ERROR: 1st set_ra() test, degrees value doesn't match" a.set_ra(-9.248833333333) assert abs(a._deg - (-138.7325)) < TOL, \ "ERROR: 2nd set_ra() test, degrees value doesn't match" a.set_ra(9, 14, 55.8) assert abs(a._deg - 138.7325) < TOL, \ "ERROR: 3rd set_ra() test, degrees value doesn't match" a.set_ra((9, 14, 55.8, -1.0)) assert abs(a._deg - (-138.7325)) < TOL, \ "ERROR: 4th set_ra() test, degrees value doesn't match" def test_angle_deg2dms(): """Tests deg2dms() static method of Angle class""" (d, m, s, sign) = Angle.deg2dms(23.44694444) assert abs(d - 23.0) < TOL, \ "ERROR: In 1st deg2dms() test, degrees value doesn't match" assert abs(m - 26.0) < TOL, \ "ERROR: In 1st deg2dms() test, minutes value doesn't match" assert abs(s - 48.9999839999999) < TOL, \ "ERROR: In 1st deg2dms() test, seconds value doesn't match" assert abs(sign - 1.0) < TOL, \ "ERROR: In 1st deg2dms() test, sign value doesn't match" (d, m, s, sign) = Angle.deg2dms(-23.44694444) assert abs(d - 23.0) < TOL, \ "ERROR: In 2nd deg2dms() test, degrees value doesn't match" assert abs(m - 26.0) < TOL, \ "ERROR: In 2nd deg2dms() test, minutes value doesn't match" assert abs(s - 48.9999839999999) < TOL, \ "ERROR: In 2nd deg2dms() test, seconds value doesn't match" assert abs(sign - (-1.0)) < TOL, \ "ERROR: In 2nd deg2dms() test, sign value doesn't match" def test_angle_dms2deg(): """Tests dms2deg() static method of Angle class""" d = Angle.dms2deg(23.0, 26.0, 48.999984) assert abs(d - 23.44694444) < TOL, \ "ERROR: In 1st dms2deg() test, degrees value doesn't match" d = Angle.dms2deg(-23.0, 26.0, 48.999984) assert abs(d - (-23.44694444)) < TOL, \ "ERROR: In 2nd dms2deg() test, degrees value doesn't match" d = Angle.dms2deg(0.0, -26.0, 48.999984) assert abs(d - (-0.44694444)) < TOL, \ "ERROR: In 3rd dms2deg() test, degrees value doesn't match" def test_angle_reduce_deg(): """Tests reduce_deg() static method of Angle class""" d = Angle.reduce_deg(745.67) assert abs(d - 25.67) < TOL, \ "ERROR: In 1st reduce_deg() test, degrees value doesn't match" d = Angle.reduce_deg(-360.86) assert abs(d - (-0.86)) < TOL, \ "ERROR: In 2nd reduce_deg() test, degrees value doesn't match" def test_angle_reduce_dms(): """Tests reduce_dms() static method of Angle class""" (d, m, s, sign) = Angle.reduce_dms(383.0, 26.0, 48.999984) assert abs(d - 23.0) < TOL, \ "ERROR: In 1st reduce_dms() test, degrees value doesn't match" assert abs(m - 26.0) < TOL, \ "ERROR: In 1st reduce_dms() test, minutes value doesn't match" assert abs(s - 48.999984) < TOL, \ "ERROR: In 1st reduce_dms() test, seconds value doesn't match" assert abs(sign - 1.0) < TOL, \ "ERROR: In 1st reduce_dms() test, sign value doesn't match" (d, m, s, sign) = Angle.reduce_dms(-1103.6, 86.5, 168.84) assert abs(d - 25.0) < TOL, \ "ERROR: In 2nd reduce_dms() test, degrees value doesn't match" assert abs(m - 5.0) < TOL, \ "ERROR: In 2nd reduce_dms() test, minutes value doesn't match" assert abs(s - 18.8399999997) < TOL, \ "ERROR: In 2nd reduce_dms() test, seconds value doesn't match" assert abs(sign - (-1.0)) < TOL, \ "ERROR: In 2nd reduce_dms() test, sign value doesn't match" (d, m, s, sign) = Angle.reduce_dms(0.0, -206.71) assert abs(d - 3.0) < TOL, \ "ERROR: In 3rd reduce_dms() test, degrees value doesn't match" assert abs(m - 26.0) < TOL, \ "ERROR: In 3rd reduce_dms() test, minutes value doesn't match" assert abs(s - 42.6) < TOL, \ "ERROR: In 3rd reduce_dms() test, seconds value doesn't match" assert abs(sign - (-1.0)) < TOL, \ "ERROR: In 3rd reduce_dms() test, sign value doesn't match" def test_angle_dms_str(): """Tests dms_str() method of Angle class""" a = Angle(0, -46.25, 0.0) result = a.dms_str() assert result == "-46' 15.0''", \ "ERROR: In 1st dms_str() test, the output value doesn't match" result = a.dms_str(False) assert result == "0:-46:15.0", \ "ERROR: In 2nd dms_str() test, the output value doesn't match" def test_angle_ra_str(): """Tests ra_str() method of Angle class""" a = Angle(138.75) result = a.ra_str() assert result == "9h 15' 0.0''", \ "ERROR: In 1st ra_str() test, the output value doesn't match" result = a.ra_str(False) assert result == "9:15:0.0", \ "ERROR: In 2nd ra_str() test, the output value doesn't match" def test_angle_get_ra(): """Tests get_ra() method of Angle class""" a = Angle(138.75) assert abs(a.get_ra() - 9.25) < TOL, \ "ERROR: In 1st get_ra() test, the output value doesn't match" def test_angle_call(): """Tests the __call__() method of Angle class""" type_ok = False a = Angle(40, -46.25, 0.0) if isinstance(a(), (int, float)): # Test the returned type type_ok = True assert type_ok, "ERROR: In 1st __call__() test, type doesn't match" assert abs(a() - (-40.770833333333)) < TOL, \ "ERROR: In 2nd __call__() test, degrees value doesn't match" def test_angle_str(): """Tests the __str__() method of Angle class""" type_ok = False a = Angle(40, -46.5, 0.0) if isinstance(a.__str__(), str): # Test the returned type type_ok = True assert type_ok, "ERROR: In 1st __str__() test, type doesn't match" assert a.__str__() == "-40.775", \ "ERROR: In 2nd __str__() test, degrees value doesn't match" def test_angle_rad(): """Tests the rad() method of Angle class""" a = Angle(180.0) assert abs(a.rad() - pi) < TOL, \ "ERROR: In 1st rad() test, radians value doesn't match" def test_angle_to_positive(): """Tests the to_positive() method""" a = Angle(-87.32) b = Angle(87.32) assert abs(a.to_positive()() - 272.68) < TOL, \ "ERROR: In 1st to_positive() test, value doesn't match" assert abs(b.to_positive()() - 87.32) < TOL, \ "ERROR: In 2nd to_positive() test, value doesn't match" def test_angle_ne(): """Tests the 'is not equal' operator of Angles""" # NOTE: Test 'is not equal' also tests 'is equal' operator # Default tolerance for Angles is 1E-10 a = Angle(152.7) b = Angle(152.7000000001) assert (a != b), \ "ERROR: In 1st __ne__() test, Angles are different but taken as equal" a = Angle(-13, 30) b = Angle(-13.50000000001) assert not (a != b), \ "ERROR: In 2nd __ne__() test, Angles are equal but taken as different" def test_angle_ge(): """Tests the 'is greater or equal' operator of Angles""" # NOTE: Test of 'is greater or equal' also test 'is less than' operator a = Angle(152.7) b = Angle(152.70000001) assert not (a >= b), \ "ERROR: In 1st __ge__() test, Angles values don't match operator" a = Angle(-13, 30) b = Angle(-13.5) assert (a >= b), \ "ERROR: In 2nd __ne__() test, Angles values don't match operator" def test_angle_le(): """Tests the 'is less or equal' operator of Angles""" # NOTE: Test of 'is less or equal' also test 'is greater than' operator a = Angle(152.7) b = Angle(152.70000001) assert (a <= b), \ "ERROR: In 1st __le__() test, Angles values don't match operator" a = Angle(-13, 30) b = Angle(-13.5) assert (a <= b), \ "ERROR: In 2nd __le__() test, Angles values don't match operator" def test_angle_neg(): """Tests the negation of Angles""" a = Angle(152.7) b = -a assert abs(b() - (-152.7)) < TOL, \ "ERROR: In 1st __neg__() test, degrees value doesn't match" a = Angle(-13, 30) b = -a assert abs(b() - 13.5) < TOL, \ "ERROR: In 2nd __neg__() test, degrees value doesn't match" def test_angle_abs(): """Tests the absolute value of Angles""" a = Angle(152.7) b = abs(a) assert abs(b() - 152.7) < TOL, \ "ERROR: In 1st __abs__() test, degrees value doesn't match" a = Angle(-13, 30) b = abs(a) assert abs(b() - 13.5) < TOL, \ "ERROR: In 2nd __abs__() test, degrees value doesn't match" def test_angle_mod(): """Tests the module of Angles""" a = Angle(152.7) b = a % 50 assert abs(b() - 2.7) < TOL, \ "ERROR: In 1st __mod__() test, degrees value doesn't match" a = Angle(-13, 30) b = a % 7 assert abs(b() - (-6.5)) < TOL, \ "ERROR: In 2nd __mod__() test, degrees value doesn't match" def test_angle_add(): """Tests the addition between Angles""" a = Angle(180.0) b = Angle(13, 30) c = a + b assert abs(c() - 193.5) < TOL, \ "ERROR: In 1st __add__() test, degrees value doesn't match" b.set(-13, 30) c = a + b assert abs(c() - 166.5) < TOL, \ "ERROR: In 2nd __add__() test, degrees value doesn't match" c = a + 11.5 assert abs(c() - 191.5) < TOL, \ "ERROR: In 3rd __add__() test, degrees value doesn't match" def test_angle_sub(): """Tests the subtraction between Angles""" a = Angle(180.0) b = Angle(13, 30) c = a - b assert abs(c() - 166.5) < TOL, \ "ERROR: In 1st __sub__() test, degrees value doesn't match" b.set(-13, 30) c = a - b assert abs(c() - 193.5) < TOL, \ "ERROR: In 2nd __sub__() test, degrees value doesn't match" c = a - 11.5 assert abs(c() - 168.5) < TOL, \ "ERROR: In 3rd __sub__() test, degrees value doesn't match" def test_angle_mul(): """Tests the multiplication between Angles""" a = Angle(150.0) b = Angle(5.0) c = a * b assert abs(c() - 30.0) < TOL, \ "ERROR: In 1st __mul__() test, degrees value doesn't match" b.set(-5.0) c = a * b assert abs(c() - (-30.0)) < TOL, \ "ERROR: In 2nd __mul__() test, degrees value doesn't match" c = a * 2.5 assert abs(c() - 15.0) < TOL, \ "ERROR: In 3rd __mul__() test, degrees value doesn't match" def test_angle_div(): """Tests the division between Angles""" # NOTE: This also tests method self.__truediv__() a = Angle(150.0) b = Angle(6.0) c = a / b assert abs(c() - 25.0) < TOL, \ "ERROR: In 1st __div__() test, degrees value doesn't match" b.set(-6.0) c = a / b assert abs(c() - (-25.0)) < TOL, \ "ERROR: In 2nd __div__() test, degrees value doesn't match" c = a / 1.5 assert abs(c() - 100.0) < TOL, \ "ERROR: In 3rd __div__() test, degrees value doesn't match" def test_angle_pow(): """Tests the power operation in Angles""" a = Angle(13, 30) b = a ** 3 assert abs(b() - 300.375) < TOL, \ "ERROR: In 1st __pow__() test, degrees value doesn't match" b.set(-2.0) c = a ** b assert abs(c() - 0.005486968449931413) < TOL, \ "ERROR: In 2nd __pow__() test, degrees value doesn't match" def test_angle_imod(): """Tests the accumulative module between Angles""" a = Angle(152.7) a %= 50 assert abs(a() - 2.7) < TOL, \ "ERROR: In 1st __imod__() test, degrees value doesn't match" a = Angle(-13, 30) a %= 7 assert abs(a() - (-6.5)) < TOL, \ "ERROR: In 2nd __imod__() test, degrees value doesn't match" def test_angle_iadd(): """Tests the accumulative addition between Angles""" a = Angle(180.0) b = Angle(13, 30) a += b assert abs(a() - 193.5) < TOL, \ "ERROR: In 1st __iadd__() test, degrees value doesn't match" b.set(-10, 30) a += b assert abs(a() - 183.0) < TOL, \ "ERROR: In 2nd __iadd__() test, degrees value doesn't match" a += 37.5 assert abs(a() - 220.5) < TOL, \ "ERROR: In 3rd __iadd__() test, degrees value doesn't match" def test_angle_isub(): """Tests the accumulative subtraction between Angles""" a = Angle(180.0) b = Angle(13, 30) a -= b assert abs(a() - 166.5) < TOL, \ "ERROR: In 1st __isub__() test, degrees value doesn't match" b.set(-10, 30) a -= b assert abs(a() - 177.0) < TOL, \ "ERROR: In 2nd __isub__() test, degrees value doesn't match" a -= 37.5 assert abs(a() - 139.5) < TOL, \ "ERROR: In 3rd __isub__() test, degrees value doesn't match" def test_angle_imul(): """Tests the accumulative multiplication between Angles""" a = Angle(150.0) b = Angle(5.0) a *= b assert abs(a() - 30.0) < TOL, \ "ERROR: In 1st __imul__() test, degrees value doesn't match" b.set(-5.0) a *= b assert abs(a() - (-150.0)) < TOL, \ "ERROR: In 2nd __imul__() test, degrees value doesn't match" a *= 2.5 assert abs(a() - (-15.0)) < TOL, \ "ERROR: In 3rd __imul__() test, degrees value doesn't match" def test_angle_idiv(): """Tests the accumulative division between Angles""" # NOTE: This also tests method self.__itruediv__() a = Angle(150.0) b = Angle(6.0) a /= b assert abs(a() - 25.0) < TOL, \ "ERROR: In 1st __idiv__() test, degrees value doesn't match" b.set(-20.0) a /= b assert abs(a() - (-1.25)) < TOL, \ "ERROR: In 2nd __idiv__() test, degrees value doesn't match" a /= 1.5 assert abs(a() - (-0.833333333333333)) < TOL, \ "ERROR: In 3rd __idiv__() test, degrees value doesn't match" def test_angle_ipow(): """Tests the accumulative power operation in Angles""" a = Angle(13, 30) a **= 3 assert abs(a() - 300.375) < TOL, \ "ERROR: In 1st __ipow__() test, degrees value doesn't match" b = Angle(-2.0) a **= b assert abs(a() - 1.108338532999e-05) < TOL, \ "ERROR: In 2nd __ipow__() test, degrees value doesn't match" def test_angle_rmod(): """Tests the module operation between Angles by the right""" a = Angle(25.0) b = Angle(163.0) c = a.__rmod__(b) assert abs(c() - 13.0) < TOL, \ "ERROR: In 1st __rmod__() test, degrees value doesn't match" b.set(-78.0) c = a.__rmod__(b) assert abs(c() - (-3.0)) < TOL, \ "ERROR: In 2nd __rmod__() test, degrees value doesn't match" c = 31.5 % a assert abs(c() - 6.5) < TOL, \ "ERROR: In 3rd __rmod__() test, degrees value doesn't match" def test_angle_radd(): """Tests the addition between Angles by the right""" a = Angle(180.0) b = Angle(13, 30) c = a.__radd__(b) assert abs(c() - 193.5) < TOL, \ "ERROR: In 1st __radd__() test, degrees value doesn't match" b.set(-13, 30) c = a.__radd__(b) assert abs(c() - 166.5) < TOL, \ "ERROR: In 2nd __radd__() test, degrees value doesn't match" c = 11.5 + a assert abs(c() - 191.5) < TOL, \ "ERROR: In 3rd __radd__() test, degrees value doesn't match" def test_angle_rsub(): """Tests the subtraction between Angles by the right""" a = Angle(180.0) b = Angle(-13, 30) c = a.__rsub__(b) assert abs(c() - (-193.5)) < TOL, \ "ERROR: In 1st __rsub__() test, degrees value doesn't match" b.set(13, 30) c = a.__rsub__(b) assert abs(c() - (-166.5)) < TOL, \ "ERROR: In 2nd __rsub__() test, degrees value doesn't match" c = 11.5 - a assert abs(c() - (-168.5)) < TOL, \ "ERROR: In 3rd __rsub__() test, degrees value doesn't match" def test_angle_rmul(): """Tests the multiplication between Angles by the right""" a = Angle(150.0) b = Angle(5.0) c = a.__rmul__(b) assert abs(c() - 30.0) < TOL, \ "ERROR: In 1st __rmul__() test, degrees value doesn't match" b.set(-5.0) c = a.__rmul__(b) assert abs(c() - (-30.0)) < TOL, \ "ERROR: In 2nd __rmul__() test, degrees value doesn't match" c = 2.5 * a assert abs(c() - 15.0) < TOL, \ "ERROR: In 3rd __rmul__() test, degrees value doesn't match" def test_angle_rdiv(): """Tests the division between Angles by the right""" a = Angle(150.0) b = Angle(5.0) c = b.__rdiv__(a) assert abs(c() - 30.0) < TOL, \ "ERROR: In 1st __rdiv__() test, degrees value doesn't match" b.set(-5.0) a = b.__rdiv__(c) assert abs(a() - (-6.0)) < TOL, \ "ERROR: In 2nd __rdiv__() test, degrees value doesn't match" c = -24.0 / a assert abs(c() - 4.0) < TOL, \ "ERROR: In 3rd __rdiv__() test, degrees value doesn't match" def test_angle_rpow(): """Tests the power operation between Angles by the right""" a = Angle(15.0) b = Angle(3.0) c = b.__rpow__(a) assert abs(c() - 135.0) < TOL, \ "ERROR: In 1st __rpow__() test, degrees value doesn't match" b.set(-2.0) a = b.__rpow__(c) assert abs(a() - 5.48697e-05) < TOL, \ "ERROR: In 2nd __rpow__() test, degrees value doesn't match" c = -10.0 ** b assert abs(c() - (-0.01)) < TOL, \ "ERROR: In 3rd __rpow__() test, degrees value doesn't match" def test_angle_float(): """Tests the 'float()' operation on Angles""" a = Angle(15, 30) assert abs(float(a) - 15.5) < TOL, \ "ERROR: In 1st __float__() test, degrees value doesn't match" def test_angle_int(): """Tests the 'int()' operation on Angles""" a = Angle(15, 30) assert abs(int(a) - 15) < TOL, \ "ERROR: In 1st __int__() test, degrees value doesn't match" def test_angle_round(): """Tests the 'round()' operation on Angles""" a = Angle(1.0, radians=True) # NOTE: The 'float(round(x))' hack makes this test work in Python 2 and 3 assert abs(float(round(a)) - 57.0) < TOL, \ "ERROR: In 1st __round__() test, degrees value doesn't match" assert abs(float(round(a, 3)) - 57.296) < TOL, \ "ERROR: In 2nd __round__() test, degrees value doesn't match" assert abs(float(round(a, 7)) - 57.2957795) < TOL, \ "ERROR: In 3rd __round__() test, degrees value doesn't match" pymeeus-0.3.6/tests/test_coordinates.py000066400000000000000000000677641355545537700203430ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from math import cos from pymeeus.base import TOL from pymeeus.Coordinates import mean_obliquity, true_obliquity, \ nutation_longitude, nutation_obliquity, precession_equatorial, \ precession_ecliptical, motion_in_space, equatorial2ecliptical, \ ecliptical2equatorial, equatorial2horizontal, horizontal2equatorial, \ equatorial2galactic, galactic2equatorial, ecliptic_horizon, \ parallactic_angle, ecliptic_equator, diurnal_path_horizon, \ times_rise_transit_set, refraction_apparent2true, \ refraction_true2apparent, angular_separation, \ minimum_angular_separation, relative_position_angle, \ planetary_conjunction, planet_star_conjunction, planet_stars_in_line, \ straight_line, circle_diameter, apparent_position, \ orbital_equinox2equinox, kepler_equation, velocity, \ velocity_perihelion, velocity_aphelion, length_orbit, \ passage_nodes_elliptic, passage_nodes_parabolic, phase_angle, \ illuminated_fraction from pymeeus.Angle import Angle from pymeeus.Epoch import Epoch, JDE2000 # Coordinates module def test_coordinates_mean_obliquity(): """Tests the mean_obliquity() method of Coordinates module""" e0 = mean_obliquity(1987, 4, 10) a = e0.dms_tuple() assert abs(a[0] - 23.0) < TOL, \ "ERROR: 1st mean_obliquity() test, 'degrees' value doesn't match" assert abs(a[1] - 26.0) < TOL, \ "ERROR: 2nd mean_obliquity() test, 'minutes' value doesn't match" assert abs(round(a[2], 3) - 27.407) < TOL, \ "ERROR: 3rd mean_obliquity() test, 'seconds value doesn't match" assert abs(a[3] - 1.0) < TOL, \ "ERROR: 4th mean_obliquity() test, 'sign' value doesn't match" def test_coordinates_true_obliquity(): """Tests the true_obliquity() method of Coordinates module""" epsilon = true_obliquity(1987, 4, 10) a = epsilon.dms_tuple() assert abs(a[0] - 23.0) < TOL, \ "ERROR: 1st true_obliquity() test, 'degrees' value doesn't match" assert abs(a[1] - 26.0) < TOL, \ "ERROR: 2nd true_obliquity() test, 'minutes' value doesn't match" assert abs(round(a[2], 3) - 36.849) < TOL, \ "ERROR: 3rd true_obliquity() test, 'seconds value doesn't match" assert abs(a[3] - 1.0) < TOL, \ "ERROR: 4th true_obliquity() test, 'sign' value doesn't match" def test_coordinates_nutation_longitude(): """Tests the nutation_longitude() method of Coordinates module""" dpsi = nutation_longitude(1987, 4, 10) a = dpsi.dms_tuple() assert abs(a[0] - 0.0) < TOL, \ "ERROR: 1st nutation_longitude() test, 'degrees' value doesn't match" assert abs(a[1] - 0.0) < TOL, \ "ERROR: 2nd nutation_longitude() test, 'minutes' value doesn't match" assert abs(round(a[2], 3) - 3.788) < TOL, \ "ERROR: 3rd nutation_longitude() test, 'seconds value doesn't match" assert abs(a[3] - (-1.0)) < TOL, \ "ERROR: 4th nutation_longitude() test, 'sign' value doesn't match" def test_coordinates_nutation_obliquity(): """Tests the nutation_obliquity() method of Coordinates module""" depsilon = nutation_obliquity(1987, 4, 10) a = depsilon.dms_tuple() assert abs(a[0] - 0.0) < TOL, \ "ERROR: 1st nutation_obliquity() test, 'degrees' value doesn't match" assert abs(a[1] - 0.0) < TOL, \ "ERROR: 2nd nutation_obliquity() test, 'minutes' value doesn't match" assert abs(round(a[2], 3) - 9.443) < TOL, \ "ERROR: 3rd nutation_obliquity() test, 'seconds value doesn't match" assert abs(a[3] - 1.0) < TOL, \ "ERROR: 4th nutation_obliquity() test, 'sign' value doesn't match" def test_coordinates_precession_equatorial(): """Tests the precession_equatorial() method of Coordinates module""" start_epoch = JDE2000 final_epoch = Epoch(2028, 11, 13.19) alpha0 = Angle(2, 44, 11.986, ra=True) delta0 = Angle(49, 13, 42.48) pm_ra = Angle(0, 0, 0.03425, ra=True) pm_dec = Angle(0, 0, -0.0895) alpha, delta = precession_equatorial(start_epoch, final_epoch, alpha0, delta0, pm_ra, pm_dec) assert alpha.ra_str(False, 3) == "2:46:11.331", \ "ERROR: 1st precession_equatorial test, right ascension doesn't match" assert delta.dms_str(False, 2) == "49:20:54.54", \ "ERROR: 2nd precession_equatorial() test, 'declination' doesn't match" def test_coordinates_precession_ecliptical(): """Tests the precession_ecliptical() method of Coordinates module""" start_epoch = JDE2000 final_epoch = Epoch(-214, 6, 30.0) lon0 = Angle(149.48194) lat0 = Angle(1.76549) lon, lat = precession_ecliptical(start_epoch, final_epoch, lon0, lat0) assert abs(round(lon(), 3) - 118.704) < TOL, \ "ERROR: 1st precession_ecliptical() test, 'longitude' doesn't match" assert abs(round(lat(), 3) - 1.615) < TOL, \ "ERROR: 2nd precession_ecliptical() test, 'latitude' doesn't match" def test_coordinates_motion_in_space(): """Tests the motion_in_space() method of Coordinates module""" ra = Angle(6, 45, 8.871, ra=True) dec = Angle(-16.716108) pm_ra = Angle(0, 0, -0.03847, ra=True) pm_dec = Angle(0, 0, -1.2053) dist = 2.64 vel = -7.6 alpha, delta = motion_in_space(ra, dec, dist, vel, pm_ra, pm_dec, -2000.0) assert alpha.ra_str(False, 2) == "6:46:25.09", \ "ERROR: 1st motion_in_space() test, 'right ascension' doesn't match" assert delta.dms_str(False, 1) == "-16:3:0.8", \ "ERROR: 2nd motion_in_space() test, 'declination' doesn't match" alpha, delta = motion_in_space(ra, dec, dist, vel, pm_ra, pm_dec, -3000.0) assert alpha.ra_str(False, 2) == "6:47:2.67", \ "ERROR: 3rd motion_in_space() test, 'right ascension' doesn't match" assert delta.dms_str(False, 1) == "-15:43:12.3", \ "ERROR: 4th motion_in_space() test, 'declination' doesn't match" alpha, delta = motion_in_space(ra, dec, dist, vel, pm_ra, pm_dec, -12000.0) assert alpha.ra_str(False, 2) == "6:52:25.72", \ "ERROR: 5th motion_in_space() test, 'right ascension' doesn't match" assert delta.dms_str(False, 1) == "-12:50:6.7", \ "ERROR: 6th motion_in_space() test, 'declination' doesn't match" def test_coordinates_equatorial2ecliptical(): """Tests the equatorial2ecliptical() method of Coordinates module""" ra = Angle(7, 45, 18.946, ra=True) dec = Angle(28, 1, 34.26) epsilon = Angle(23.4392911) lon, lat = equatorial2ecliptical(ra, dec, epsilon) assert abs(round(lon(), 5) - 113.21563) < TOL, \ "ERROR: 1st equatorial2ecliptical() test, 'longitude' doesn't match" assert abs(round(lat(), 5) - 6.68417) < TOL, \ "ERROR: 2nd equatorial2ecliptical() test, 'latitude' doesn't match" def test_coordinates_ecliptical2equatorial(): """Tests the ecliptical2equatorial() method of Coordinates module""" lon = Angle(113.21563) lat = Angle(6.68417) epsilon = Angle(23.4392911) ra, dec = ecliptical2equatorial(lon, lat, epsilon) assert ra.ra_str(n_dec=3) == "7h 45' 18.946''", \ "ERROR: 1st ecliptical2equatorial() test, 'ra' doesn't match" assert dec.dms_str(n_dec=2) == "28d 1' 34.26''", \ "ERROR: 2nd ecliptical2equatorial() test, 'declination' doesn't match" def test_coordinates_equatorial2horizontal(): """Tests the equatorial2horizontal() method of Coordinates module""" lon = Angle(77, 3, 56) lat = Angle(38, 55, 17) ra = Angle(23, 9, 16.641, ra=True) dec = Angle(-6, 43, 11.61) theta0 = Angle(8, 34, 57.0896, ra=True) eps = Angle(23, 26, 36.87) delta = Angle(0, 0, ((-3.868*cos(eps.rad()))/15.0), ra=True) theta0 += delta h = theta0 - lon - ra azi, ele = equatorial2horizontal(h, dec, lat) assert abs(round(azi, 3) - 68.034) < TOL, \ "ERROR: 1st equatorial2horizontal() test, 'azimuth' doesn't match" assert abs(round(ele, 3) - 15.125) < TOL, \ "ERROR: 2nd equatorial2horizontal() test, 'elevation' doesn't match" def test_coordinates_horizontal2equatorial(): """Tests the horizontal2equatorial() method of Coordinates module""" azi = Angle(68.0337) ele = Angle(15.1249) lat = Angle(38, 55, 17) h, dec = horizontal2equatorial(azi, ele, lat) assert abs(round(h, 4) - 64.3521) < TOL, \ "ERROR: 1st horizontal2equatorial() test, 'hour angle' doesn't match" assert dec.dms_str(n_dec=0) == "-6d 43' 12.0''", \ "ERROR: 2nd horizontal2equatorial() test, 'declination' match" def test_coordinates_equatorial2galactic(): """Tests the equatorial2galactic() method of Coordinates module""" ra = Angle(17, 48, 59.74, ra=True) dec = Angle(-14, 43, 8.2) lon, lat = equatorial2galactic(ra, dec) assert abs(round(lon, 4) - 12.9593) < TOL, \ "ERROR: 1st equatorial2galactic() test, 'longitude' doesn't match" assert abs(round(lat, 4) - 6.0463) < TOL, \ "ERROR: 2nd equatorial2galactic() test, 'latitude' doesn't match" def test_coordinates_galactic2equatorial(): """Tests the galactic2equatorial() method of Coordinates module""" lon = Angle(12.9593) lat = Angle(6.0463) ra, dec = galactic2equatorial(lon, lat) assert ra.ra_str(n_dec=1) == "17h 48' 59.7''", \ "ERROR: 1st galactic2equatorial() test, 'ra' doesn't match" assert dec.dms_str(n_dec=0) == "-14d 43' 8.0''", \ "ERROR: 2nd galactic2equatorial() test, 'declination' doesn't match" def test_coordinates_parallactic_angle(): """Tests the parallactic_angle() method of Coordinates module""" hour_angle = Angle(0.0) declination = Angle(45.0) latitude = Angle(50.0) q = parallactic_angle(hour_angle, declination, latitude) assert q.dms_str(n_dec=1) == "0d 0' 0.0''", \ "ERROR: 1st parallactic_angle() test, 'lon1' doesn't match" def test_coordinates_ecliptic_horizon(): """Tests the ecliptic_horizon() method of Coordinates module""" sidereal_time = Angle(5.0, ra=True) lat = Angle(51.0) epsilon = Angle(23.44) lon1, lon2, i = ecliptic_horizon(sidereal_time, lat, epsilon) assert lon1.dms_str(n_dec=1) == "169d 21' 29.9''", \ "ERROR: 1st ecliptic_horizon() test, 'lon1' doesn't match" assert lon2.dms_str(n_dec=1) == "349d 21' 29.9''", \ "ERROR: 2nd ecliptic_horizon() test, 'lon2' doesn't match" assert abs(round(i, 0) - 62.0) < TOL, \ "ERROR: 3rd ecliptic_horizon() test, 'i' angle doesn't match" def test_coordinates_ecliptic_equator(): """Tests the ecliptic_equator() method of Coordinates module""" lon = Angle(0.0) lat = Angle(0.0) eps = Angle(23.5) ang_ecl_equ = ecliptic_equator(lon, lat, eps) assert ang_ecl_equ.dms_str(n_dec=1) == "156d 30' 0.0''", \ "ERROR: 1st ecliptic_equator() test, 'ang_ecl_equ' doesn't match" def test_coordinates_diurnal_path_horizon(): """Tests the diurnal_path_horizon() method of Coordinates module""" dec = Angle(23.44) lat = Angle(40.0) j = diurnal_path_horizon(dec, lat) assert j.dms_str(n_dec=1) == "45d 31' 28.4''", \ "ERROR: 1st diurnal_path_horizon() test, 'j' angle doesn't match" def test_coordinates_times_rise_transit_set(): """Tests the times_rise_transit_set() method of Coordinates module""" longitude = Angle(71, 5, 0.0) latitude = Angle(42, 20, 0.0) alpha1 = Angle(2, 42, 43.25, ra=True) delta1 = Angle(18, 2, 51.4) alpha2 = Angle(2, 46, 55.51, ra=True) delta2 = Angle(18, 26, 27.3) alpha3 = Angle(2, 51, 7.69, ra=True) delta3 = Angle(18, 49, 38.7) h0 = Angle(-0.5667) delta_t = 56.0 theta0 = Angle(11, 50, 58.1, ra=True) rising, transit, setting = times_rise_transit_set(longitude, latitude, alpha1, delta1, alpha2, delta2, alpha3, delta3, h0, delta_t, theta0) assert abs(round(rising, 4) - 12.4238) < TOL, \ "ERROR: 1st times_rise_transit_set() test, 'rising' time doesn't match" assert abs(round(transit, 3) - 19.675) < TOL, \ "ERROR: 2nd times_rise_transit_set() test, 'transit' doesn't match" assert abs(round(setting, 3) - 2.911) < TOL, \ "ERROR: 3rd times_rise_transit_set() test, 'setting' doesn't match" def test_coordinates_refraction_apparent2true(): """Tests the refraction_apparent2true() method of Coordinates module""" apparent_elevation = Angle(0, 30, 0.0) true = refraction_apparent2true(apparent_elevation) assert true.dms_str(n_dec=1) == "1' 14.7''", \ "ERROR: 1st refraction_apparent2true() test, 'true' doesn't match" def test_coordinates_refraction_true2apparent(): """Tests the refraction_true2apparent() method of Coordinates module""" true_elevation = Angle(0, 33, 14.76) apparent = refraction_true2apparent(true_elevation) assert apparent.dms_str(n_dec=2) == "57' 51.96''", \ "ERROR: 1st refraction_true2apparent() test, 'apparent' doesn't match" def test_coordinates_angular_separation(): """Tests the angular_separation() method of Coordinates module""" alpha1 = Angle(14, 15, 39.7, ra=True) delta1 = Angle(19, 10, 57.0) alpha2 = Angle(13, 25, 11.6, ra=True) delta2 = Angle(-11, 9, 41.0) sep_ang = angular_separation(alpha1, delta1, alpha2, delta2) assert abs(round(sep_ang, 3) - 32.793) < TOL, \ "ERROR: 1st angular_separation() test, 'sep_ang' value doesn't match" def test_coordinates_minimum_angular_separation(): """Tests the minimum_angular_separation() method of Coordinates module""" alpha1_1 = Angle(10, 29, 44.27, ra=True) delta1_1 = Angle(11, 2, 5.9) alpha2_1 = Angle(10, 33, 29.64, ra=True) delta2_1 = Angle(10, 40, 13.2) alpha1_2 = Angle(10, 36, 19.63, ra=True) delta1_2 = Angle(10, 29, 51.7) alpha2_2 = Angle(10, 33, 57.97, ra=True) delta2_2 = Angle(10, 37, 33.4) alpha1_3 = Angle(10, 43, 1.75, ra=True) delta1_3 = Angle(9, 55, 16.7) alpha2_3 = Angle(10, 34, 26.22, ra=True) delta2_3 = Angle(10, 34, 53.9) n, d = minimum_angular_separation(alpha1_1, delta1_1, alpha1_2, delta1_2, alpha1_3, delta1_3, alpha2_1, delta2_1, alpha2_2, delta2_2, alpha2_3, delta2_3) assert abs(round(n, 6) + 0.370726) < TOL, \ "ERROR: 1st minimum_angular_separation() test, 'n' value doesn't match" assert d.dms_str(n_dec=0) == "3' 44.0''", \ "ERROR: 2nd minimum_angular_separation() test, 'd' value doesn't match" def test_coordinates_relative_position_angle(): """Tests the relative_position_angle() method of Coordinates module""" alpha1 = Angle(14, 15, 39.7, ra=True) delta1 = Angle(19, 10, 57.0) alpha2 = Angle(14, 15, 39.7, ra=True) delta2 = Angle(-11, 9, 41.0) pos_ang = relative_position_angle(alpha1, delta1, alpha2, delta2) assert abs(round(pos_ang, 1) - 0.0) < TOL, \ "ERROR: 1st relative_position_angle() test, 'pos_ang' doesn't match" alpha1 = Angle(14, 15, 39.7, ra=True) delta1 = Angle(-19, 10, 57.0) alpha2 = Angle(14, 15, 39.7, ra=True) delta2 = Angle(11, 9, 41.0) pos_ang = relative_position_angle(alpha1, delta1, alpha2, delta2) assert abs(round(pos_ang, 1) - 180.0) < TOL, \ "ERROR: 2nd relative_position_angle() test, 'pos_ang' doesn't match" def test_coordinates_planetary_conjunction(): """Tests the planetary_conjunction() method of Coordinates module""" alpha1_1 = Angle(10, 24, 30.125, ra=True) delta1_1 = Angle(6, 26, 32.05) alpha1_2 = Angle(10, 25, 0.342, ra=True) delta1_2 = Angle(6, 10, 57.72) alpha1_3 = Angle(10, 25, 12.515, ra=True) delta1_3 = Angle(5, 57, 33.08) alpha1_4 = Angle(10, 25, 6.235, ra=True) delta1_4 = Angle(5, 46, 27.07) alpha1_5 = Angle(10, 24, 41.185, ra=True) delta1_5 = Angle(5, 37, 48.45) alpha2_1 = Angle(10, 27, 27.175, ra=True) delta2_1 = Angle(4, 4, 41.83) alpha2_2 = Angle(10, 26, 32.410, ra=True) delta2_2 = Angle(3, 55, 54.66) alpha2_3 = Angle(10, 25, 29.042, ra=True) delta2_3 = Angle(3, 48, 3.51) alpha2_4 = Angle(10, 24, 17.191, ra=True) delta2_4 = Angle(3, 41, 10.25) alpha2_5 = Angle(10, 22, 57.024, ra=True) delta2_5 = Angle(3, 35, 16.61) alpha1_list = [alpha1_1, alpha1_2, alpha1_3, alpha1_4, alpha1_5] delta1_list = [delta1_1, delta1_2, delta1_3, delta1_4, delta1_5] alpha2_list = [alpha2_1, alpha2_2, alpha2_3, alpha2_4, alpha2_5] delta2_list = [delta2_1, delta2_2, delta2_3, delta2_4, delta2_5] pc = planetary_conjunction(alpha1_list, delta1_list, alpha2_list, delta2_list) assert abs(round(pc[0], 5) - 0.23797) < TOL, \ "ERROR: 1st planetary_conjunction() test, 'pc[0]' doesn't match" assert pc[1].dms_str(n_dec=1) == "2d 8' 21.8''", \ "ERROR: 2nd planetary_conjunction() test, 'pc[1]' doesn't match" def test_coordinates_planet_star_conjunction(): """Tests the planet_star_conjunction() method of Coordinates module""" alpha_1 = Angle(15, 3, 51.937, ra=True) delta_1 = Angle(-8, 57, 34.51) alpha_2 = Angle(15, 9, 57.327, ra=True) delta_2 = Angle(-9, 9, 3.88) alpha_3 = Angle(15, 15, 37.898, ra=True) delta_3 = Angle(-9, 17, 37.94) alpha_4 = Angle(15, 20, 50.632, ra=True) delta_4 = Angle(-9, 23, 16.25) alpha_5 = Angle(15, 25, 32.695, ra=True) delta_5 = Angle(-9, 26, 1.01) alpha_star = Angle(15, 17, 0.446, ra=True) delta_star = Angle(-9, 22, 58.47) alpha_list = [alpha_1, alpha_2, alpha_3, alpha_4, alpha_5] delta_list = [delta_1, delta_2, delta_3, delta_4, delta_5] pc = planet_star_conjunction(alpha_list, delta_list, alpha_star, delta_star) assert abs(round(pc[0], 4) - 0.2551) < TOL, \ "ERROR: 1st planet_star_conjunction() test, 'pc[0]' doesn't match" assert pc[1].dms_str(n_dec=0) == "3' 38.0''", \ "ERROR: 2nd planet_star_conjunction() test, 'pc[1]' doesn't match" def test_coordinates_planet_stars_in_line(): """Tests the planet_stars_in_line() method of Coordinates module""" alpha_1 = Angle(7, 55, 55.36, ra=True) delta_1 = Angle(21, 41, 3.0) alpha_2 = Angle(7, 58, 22.55, ra=True) delta_2 = Angle(21, 35, 23.4) alpha_3 = Angle(8, 0, 48.99, ra=True) delta_3 = Angle(21, 29, 38.2) alpha_4 = Angle(8, 3, 14.66, ra=True) delta_4 = Angle(21, 23, 47.5) alpha_5 = Angle(8, 5, 39.54, ra=True) delta_5 = Angle(21, 17, 51.4) alpha_star1 = Angle(7, 34, 16.40, ra=True) delta_star1 = Angle(31, 53, 51.2) alpha_star2 = Angle(7, 45, 0.10, ra=True) delta_star2 = Angle(28, 2, 12.5) alpha_list = [alpha_1, alpha_2, alpha_3, alpha_4, alpha_5] delta_list = [delta_1, delta_2, delta_3, delta_4, delta_5] n = planet_stars_in_line(alpha_list, delta_list, alpha_star1, delta_star1, alpha_star2, delta_star2) assert abs(round(n, 4) - 0.2233) < TOL, \ "ERROR: 1st planet_stars_in_line() test, 'n' value doesn't match" def test_coordinates_straight_line(): """Tests the straight_line() method of Coordinates module""" alpha1 = Angle(5, 32, 0.40, ra=True) delta1 = Angle(0, -17, 56.9) alpha2 = Angle(5, 36, 12.81, ra=True) delta2 = Angle(-1, 12, 7.0) alpha3 = Angle(5, 40, 45.52, ra=True) delta3 = Angle(-1, 56, 33.3) psi, omega = straight_line(alpha1, delta1, alpha2, delta2, alpha3, delta3) assert psi.dms_str(n_dec=0) == "7d 31' 1.0''", \ "ERROR: 1st straight_line() test, 'psi' value doesn't match" assert omega.dms_str(n_dec=0) == "-5' 24.0''", \ "ERROR: 2nd straight_line() test, 'omega' value doesn't match" def test_coordinates_circle_diameter(): """Tests the circle_diameter() method of Coordinates module""" alpha1 = Angle(12, 41, 8.63, ra=True) delta1 = Angle(-5, 37, 54.2) alpha2 = Angle(12, 52, 5.21, ra=True) delta2 = Angle(-4, 22, 26.2) alpha3 = Angle(12, 39, 28.11, ra=True) delta3 = Angle(-1, 50, 3.7) d = circle_diameter(alpha1, delta1, alpha2, delta2, alpha3, delta3) assert d.dms_str(n_dec=0) == "4d 15' 49.0''", \ "ERROR: 1st circle_diameter() test, 'd' value doesn't match" alpha1 = Angle(9, 5, 41.44, ra=True) delta1 = Angle(18, 30, 30.0) alpha2 = Angle(9, 9, 29.0, ra=True) delta2 = Angle(17, 43, 56.7) alpha3 = Angle(8, 59, 47.14, ra=True) delta3 = Angle(17, 49, 36.8) d = circle_diameter(alpha1, delta1, alpha2, delta2, alpha3, delta3) assert d.dms_str(n_dec=0) == "2d 18' 38.0''", \ "ERROR: 2nd circle_diameter() test, 'd' value doesn't match" def test_coordinates_apparent_position(): """Tests the apparent_position() method of Coordinates module""" epoch = Epoch(2028, 11, 13.19) alpha = Angle(2, 46, 11.331, ra=True) delta = Angle(49, 20, 54.54) sun_lon = Angle(231.328) app_alpha, app_delta = apparent_position(epoch, alpha, delta, sun_lon) assert app_alpha.ra_str(n_dec=2) == "2h 46' 14.39''", \ "ERROR: 1st apparent_position() test, 'app_alpha' value doesn't match" assert app_delta.dms_str(n_dec=2) == "49d 21' 7.45''", \ "ERROR: 2nd apparent_position() test, 'app_delta' value doesn't match" def test_coordinates_orbital_equinox2equinox(): """Tests the orbital_equinox2equinox() method of Coordinates module""" epoch0 = Epoch(2358042.5305) epoch = Epoch(2433282.4235) i0 = Angle(47.122) arg0 = Angle(151.4486) lon0 = Angle(45.7481) i1, arg1, lon1 = orbital_equinox2equinox(epoch0, epoch, i0, arg0, lon0) assert abs(round(i1(), 3) - 47.138) < TOL, \ "ERROR: 1st orbital_equinox2equinox() test, 'i1' value doesn't match" assert abs(round(arg1(), 4) - 151.4782) < TOL, \ "ERROR: 2nd orbital_equinox2equinox() test, 'arg1' value doesn't match" assert abs(round(lon1(), 4) - 48.6037) < TOL, \ "ERROR: 3rd orbital_equinox2equinox() test, 'lon1' value doesn't match" def test_coordinates_kepler_equation(): """Tests the kepler_equation() method of Coordinates module""" e1, v1 = kepler_equation(0.1, Angle(5.0)) e2, v2 = kepler_equation(0.99, Angle(1.0)) e3, v3 = kepler_equation(0.99, Angle(0.2, radians=True)) assert abs(round(e1(), 6) - 5.554589) < TOL, \ "ERROR: 1st kepler_equation() test, 'e1' value doesn't match" assert abs(round(v1(), 6) - 6.139762) < TOL, \ "ERROR: 2nd kepler_equation() test, 'v1' value doesn't match" assert abs(round(e2(), 6) - 24.725822) < TOL, \ "ERROR: 3rd kepler_equation() test, 'e2' value doesn't match" assert abs(round(v2(), 6) - 144.155952) < TOL, \ "ERROR: 4th kepler_equation() test, 'v2' value doesn't match" assert abs(round(e3(), 8) - 61.13444578) < TOL, \ "ERROR: 5th kepler_equation() test, 'e3' value doesn't match" assert abs(round(v3(), 6) - 166.311977) < TOL, \ "ERROR: 6th kepler_equation() test, 'v3' value doesn't match" def test_coordinates_velocity(): """Tests the velocity() function of Coordinates module""" r = 1.0 a = 17.9400782 v = velocity(r, a) assert abs(round(v, 2) - 41.53) < TOL, \ "ERROR: 1st velocity() test, value doesn't match" def test_coordinates_velocity_perihelion(): """Tests the velocity_perihelion() function of Coordinates module""" a = 17.9400782 e = 0.96727426 vp = velocity_perihelion(e, a) assert abs(round(vp, 2) - 54.52) < TOL, \ "ERROR: 1st velocity_perihelion() test, value doesn't match" def test_coordinates_velocity_aphelion(): """Tests the velocity_aphelion() function of Coordinates module""" a = 17.9400782 e = 0.96727426 va = velocity_aphelion(e, a) assert abs(round(va, 2) - 0.91) < TOL, \ "ERROR: 1st velocity_aphelion() test, value doesn't match" def test_coordinates_length_orbit(): """Tests the length_orbit() function of Coordinates module""" a = 17.9400782 e = 0.96727426 length = length_orbit(e, a) assert abs(round(length, 2) - 77.06) < TOL, \ "ERROR: 1st length_orbit() test, value doesn't match" def test_coordinates_passage_nodes_elliptic(): """Tests the passage_nodes_elliptic() function of Coordinates module""" omega = Angle(111.84644) e = 0.96727426 a = 17.9400782 t = Epoch(1986, 2, 9.45891) time, r = passage_nodes_elliptic(omega, e, a, t) year, month, day = time.get_date() assert abs(year - 1985) < TOL, \ "ERROR: 1st passage_nodes_elliptic() test, value doesn't match" assert abs(month - 11) < TOL, \ "ERROR: 2nd passage_nodes_elliptic() test, value doesn't match" assert abs(round(day, 2) - 9.16) < TOL, \ "ERROR: 3rd passage_nodes_elliptic() test, value doesn't match" assert abs(round(r, 4) - 1.8045) < TOL, \ "ERROR: 4th passage_nodes_elliptic() test, value doesn't match" time, r = passage_nodes_elliptic(omega, e, a, t, ascending=False) year, month, day = time.get_date() assert abs(year - 1986) < TOL, \ "ERROR: 5th passage_nodes_elliptic() test, value doesn't match" assert abs(month - 3) < TOL, \ "ERROR: 6th passage_nodes_elliptic() test, value doesn't match" assert abs(round(day, 2) - 10.37) < TOL, \ "ERROR: 7th passage_nodes_elliptic() test, value doesn't match" assert abs(round(r, 4) - 0.8493) < TOL, \ "ERROR: 8th passage_nodes_elliptic() test, value doesn't match" def test_coordinates_passage_nodes_parabolic(): """Tests the passage_nodes_parabolic() function of Coordinates module""" omega = Angle(154.9103) q = 1.324502 t = Epoch(1989, 8, 20.291) time, r = passage_nodes_parabolic(omega, q, t) year, month, day = time.get_date() assert abs(year - 1977) < TOL, \ "ERROR: 1st passage_nodes_parabolic() test, value doesn't match" assert abs(month - 9) < TOL, \ "ERROR: 2nd passage_nodes_parabolic() test, value doesn't match" assert abs(round(day, 2) - 17.64) < TOL, \ "ERROR: 3rd passage_nodes_parabolic() test, value doesn't match" assert abs(round(r, 4) - 28.0749) < TOL, \ "ERROR: 4th passage_nodes_parabolic() test, value doesn't match" time, r = passage_nodes_parabolic(omega, q, t, ascending=False) year, month, day = time.get_date() assert abs(year - 1989) < TOL, \ "ERROR: 5th passage_nodes_parabolic() test, value doesn't match" assert abs(month - 9) < TOL, \ "ERROR: 6th passage_nodes_parabolic() test, value doesn't match" assert abs(round(day, 3) - 17.636) < TOL, \ "ERROR: 7th passage_nodes_parabolic() test, value doesn't match" assert abs(round(r, 4) - 1.3901) < TOL, \ "ERROR: 8th passage_nodes_parabolic() test, value doesn't match" def test_coordinates_phase_angle(): """Tests the phase_angle() function of Coordinates module""" sun_dist = 0.724604 earth_dist = 0.910947 sun_earth_dist = 0.983824 angle = phase_angle(sun_dist, earth_dist, sun_earth_dist) assert abs(round(angle, 2) - 72.96) < TOL, \ "ERROR: 1st phase_angle() test, value doesn't match" def test_coordinates_illuminated_fraction(): """Tests the illuminated_fraction() function of Coordinates module""" sun_dist = 0.724604 earth_dist = 0.910947 sun_earth_dist = 0.983824 k = illuminated_fraction(sun_dist, earth_dist, sun_earth_dist) assert abs(round(k, 3) - 0.647) < TOL, \ "ERROR: 1st illuminated_fraction() test, value doesn't match" pymeeus-0.3.6/tests/test_curvefitting.py000066400000000000000000000133221355545537700205170ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from math import sqrt, radians, sin from pymeeus.base import TOL from pymeeus.CurveFitting import CurveFitting # Declare some objects to be used later cf1 = CurveFitting() cf2 = CurveFitting() cf3 = CurveFitting() cf4 = CurveFitting() def setup(): """This function is used to set up the environment for the tests""" # Set up a few CurveFitting objects cf1.set([73.0, 38.0, 35.0, 42.0, 78.0, 68.0, 74.0, 42.0, 52.0, 54.0, 39.0, 61.0, 42.0, 49.0, 50.0, 62.0, 44.0, 39.0, 43.0, 54.0, 44.0, 37.0], [90.4, 125.3, 161.8, 143.4, 52.5, 50.8, 71.5, 152.8, 131.3, 98.5, 144.8, 78.1, 89.5, 63.9, 112.1, 82.0, 119.8, 161.2, 208.4, 111.6, 167.1, 162.1]) cf2.set([0.2982, 0.2969, 0.2918, 0.2905, 0.2707, 0.2574, 0.2485, 0.2287, 0.2238, 0.2156, 0.1992, 0.1948, 0.1931, 0.1889, 0.1781, 0.1772, 0.1770, 0.1755, 0.1746], [10.92, 11.01, 10.99, 10.78, 10.87, 10.80, 10.75, 10.14, 10.21, 9.97, 9.69, 9.57, 9.66, 9.63, 9.65, 9.44, 9.44, 9.32, 9.20]) cf3.set([-2.0, -1.5, -1.0, -0.5, 0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0], [-9.372, -3.821, 0.291, 3.730, 5.822, 8.324, 9.083, 6.957, 7.006, 0.365, -1.722]) cf4.set([3, 20, 34, 50, 75, 88, 111, 129, 143, 160, 183, 200, 218, 230, 248, 269, 290, 303, 320, 344], [0.0433, 0.2532, 0.3386, 0.3560, 0.4983, 0.7577, 1.4585, 1.8628, 1.8264, 1.2431, -0.2043, -1.2431, -1.8422, -1.8726, -1.4889, -0.8372, -0.4377, -0.3640, -0.3508, -0.2126]) def teardown(): pass # CurveFitting class def test_curvefitting_constructor(): """Tests the constructor of CurveFitting class""" i = CurveFitting([5, 3, 6, 1, 2, 4, 9], [10, 6, 12, 2, 4, 8]) assert i._x == [5, 3, 6, 1, 2, 4], \ "ERROR: 1st constructor test, 'x' values don't match" assert i._y == [10, 6, 12, 2, 4, 8], \ "ERROR: 2nd constructor test, 'y' values don't match" j = CurveFitting([3, -8, 1, 12, 2, 5, 8]) assert j._x == [0, 1, 2, 3, 4, 5, 6], \ "ERROR: 3rd constructor test, 'x' values don't match" assert j._y == [3, -8, 1, 12, 2, 5, 8], \ "ERROR: 4th constructor test, 'y' values don't match" k = CurveFitting(3, -8, 1, 12, 2, 5, 8) assert k._x == [3, 1, 2], \ "ERROR: 5th constructor test, 'x' values don't match" assert k._y == [-8, 12, 5], \ "ERROR: 6th constructor test, 'y' values don't match" def test_curvefitting_correlation_coeff(): """Tests the correlation_coeff() method of CurveFitting class""" r = cf1.correlation_coeff() assert abs(round(r, 3) - (-0.767)) < TOL, \ "ERROR: 1st correlation_coeff() test, 'r' value doesn't match" def test_curvefitting_linear_fitting(): """Tests the linear_fitting() method of CurveFitting class""" a, b = cf1.linear_fitting() assert abs(round(a, 2) - (-2.49)) < TOL, \ "ERROR: In 1st linear_fitting() test, 'a' value doesn't match" assert abs(round(b, 2) - 244.18) < TOL, \ "ERROR: In 2nd linear_fitting() test, 'b' value doesn't match" a, b = cf2.linear_fitting() assert abs(round(a, 2) - 13.67) < TOL, \ "ERROR: In 3rd linear_fitting() test, 'a' value doesn't match" assert abs(round(b, 2) - 7.03) < TOL, \ "ERROR: In 4th linear_fitting() test, 'b' value doesn't match" def test_curvefitting_quadratic_fitting(): """Tests the quadratic_fitting() method of CurveFitting class""" a, b, c = cf3.quadratic_fitting() assert abs(round(a, 2) - (-2.22)) < TOL, \ "ERROR: In 1st quadratic_fitting() test, 'a' value doesn't match" assert abs(round(b, 2) - 3.76) < TOL, \ "ERROR: In 2nd quadratic_fitting() test, 'b' value doesn't match" assert abs(round(c, 2) - 6.64) < TOL, \ "ERROR: In 3rd quadratic_fitting() test, 'c' value doesn't match" def test_curvefitting_general_fitting(): """Tests the general_fitting() method of CurveFitting class""" # Let's define the three functions to be used for fitting def sin1(x): return sin(radians(x)) def sin2(x): return sin(radians(2.0*x)) def sin3(x): return sin(radians(3.0*x)) a, b, c = cf4.general_fitting(sin1, sin2, sin3) assert abs(round(a, 2) - 1.2) < TOL, \ "ERROR: In 1st general_fitting() test, 'a' value doesn't match" assert abs(round(b, 2) - (-0.77)) < TOL, \ "ERROR: In 2nd general_fitting() test, 'b' value doesn't match" assert abs(round(c, 2) - 0.39) < TOL, \ "ERROR: In 3rd general_fitting() test, 'c' value doesn't match" cf5 = CurveFitting([0, 1.2, 1.4, 1.7, 2.1, 2.2]) a, b, c = cf5.general_fitting(sqrt) assert abs(round(a, 3) - 1.016) < TOL, \ "ERROR: In 4th general_fitting() test, 'a' value doesn't match" assert abs(round(b, 3) - 0.0) < TOL, \ "ERROR: In 5th general_fitting() test, 'b' value doesn't match" assert abs(round(c, 3) - 0.0) < TOL, \ "ERROR: In 6th general_fitting() test, 'c' value doesn't match" pymeeus-0.3.6/tests/test_earth.py000066400000000000000000000246511355545537700171200ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from pymeeus.base import TOL from pymeeus.Earth import Earth, IAU76 from pymeeus.Angle import Angle from pymeeus.Epoch import Epoch # Earth class def test_earth_constructor(): """Tests the constructor of Earth class""" a = Earth() assert abs(a._ellip._a - 6378137.0) < TOL, \ "ERROR: 1st constructor test, 'a' value doesn't match" assert abs(a._ellip._f - (1.0/298.257223563)) < TOL, \ "ERROR: 2nd constructor test, 'f' value doesn't match" assert abs(a._ellip._omega - 7292115e-11) < TOL, \ "ERROR: 3rd constructor test, 'omega' value doesn't match" a = Earth(ellipsoid=IAU76) assert abs(a._ellip._a - 6378140.0) < TOL, \ "ERROR: 4th constructor test, 'a' value doesn't match" assert abs(a._ellip._f - (1.0/298.257)) < TOL, \ "ERROR: 5th constructor test, 'f' value doesn't match" assert abs(a._ellip._omega - 7.292114992e-5) < TOL, \ "ERROR: 6th constructor test, 'omega' value doesn't match" def test_earth_rho(): """Tests the rho() method of Earth class""" a = Earth() assert abs(a.rho(0.0) - 1.0) < TOL, \ "ERROR: 1st rho() test, output doesn't match" def test_earth_rho_sinphi(): """Tests the rho_sinphi() method of Earth class""" lat = Angle(33, 21, 22.0) e = Earth(ellipsoid=IAU76) assert abs(round(e.rho_sinphi(lat, 1706), 6) - 0.546861) < TOL, \ "ERROR: 1st rho_sinphi() test, output doesn't match" def test_earth_rho_cosphi(): """Tests the rho_cosphi() method of Earth class""" lat = Angle(33, 21, 22.0) e = Earth(ellipsoid=IAU76) assert abs(round(e.rho_cosphi(lat, 1706), 6) - 0.836339) < TOL, \ "ERROR: 1st rho_cosphi() test, output doesn't match" def test_earth_rp(): """Tests the rp() method of Earth class""" e = Earth(ellipsoid=IAU76) assert abs(round(e.rp(42.0), 1) - 4747001.2) < TOL, \ "ERROR: 1st rp() test, output doesn't match" def test_earth_rm(): """Tests the rm() method of Earth class""" e = Earth(ellipsoid=IAU76) assert abs(round(e.rm(42.0), 1) - 6364033.3) < TOL, \ "ERROR: 1st rm() test, output doesn't match" def test_earth_linear_velocity(): """Tests the linear_velocity() method of Earth class""" e = Earth(ellipsoid=IAU76) assert abs(round(e.linear_velocity(42.0), 2) - 346.16) < TOL, \ "ERROR: 1st linear_velocity() test, output doesn't match" def test_earth_distance(): """Tests the distance() method of Earth class""" e = Earth(ellipsoid=IAU76) lon1 = Angle(-2, 20, 14.0) lat1 = Angle(48, 50, 11.0) lon2 = Angle(77, 3, 56.0) lat2 = Angle(38, 55, 17.0) dist, error = e.distance(lon1, lat1, lon2, lat2) assert abs(round(dist, 0) - 6181628.0) < TOL, \ "ERROR: 1st distance() test, output doesn't match" assert abs(round(error, 0) - 69.0) < TOL, \ "ERROR: 2nd distance() test, output doesn't match" lon1 = Angle(-2.09) lat1 = Angle(41.3) lon2 = Angle(73.99) lat2 = Angle(40.75) dist, error = e.distance(lon1, lat1, lon2, lat2) assert abs(round(dist, 0) - 6176760.0) < TOL, \ "ERROR: 3rd distance() test, output doesn't match" assert abs(round(error, 0) - 69.0) < TOL, \ "ERROR: 4th distance() test, output doesn't match" def test_earth_geometric_heliocentric_position(): """Tests the geometric_heliocentric_position() method of Earth class""" epoch = Epoch(1992, 10, 13.0) lon, lat, r = Earth.geometric_heliocentric_position(epoch) assert abs(round(lon.to_positive(), 6) - 19.907272) < TOL, \ "ERROR: 1st geometric_heliocentric_position() test doesn't match" assert lat.dms_str(n_dec=3) == "-0.721''", \ "ERROR: 2nd geometric_heliocentric_position() test doesn't match" assert abs(round(r, 8) - 0.99760852) < TOL, \ "ERROR: 3rd geometric_heliocentric_position() test doesn't match" def test_earth_apparent_heliocentric_position(): """Tests the apparent_heliocentric_position() method of Earth class""" epoch = Epoch(1992, 10, 13.0) lon, lat, r = Earth.apparent_heliocentric_position(epoch) assert abs(round(lon.to_positive(), 6) - 19.905986) < TOL, \ "ERROR: 1st apparent_heliocentric_position() test doesn't match" assert lat.dms_str(n_dec=3) == "-0.721''", \ "ERROR: 2nd apparent_heliocentric_position() test doesn't match" assert abs(round(r, 8) - 0.99760852) < TOL, \ "ERROR: 3rd apparent_heliocentric_position() test doesn't match" def test_earth_orbital_elements_mean_equinox(): """Tests the orbital_elements_mean_equinox() method of Earth class""" epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Earth.orbital_elements_mean_equinox(epoch) assert abs(round(l, 6) - 272.716028) < TOL, \ "ERROR: 1st orbital_elements_mean_equinox() test doesn't match" assert abs(round(a, 8) - 1.00000102) < TOL, \ "ERROR: 2nd orbital_elements_mean_equinox() test doesn't match" assert abs(round(e, 7) - 0.0166811) < TOL, \ "ERROR: 3rd orbital_elements_mean_equinox() test doesn't match" assert abs(round(i, 6) - 0.0) < TOL, \ "ERROR: 4th orbital_elements_mean_equinox() test doesn't match" assert abs(round(ome, 5) - 174.71534) < TOL, \ "ERROR: 5th orbital_elements_mean_equinox() test doesn't match" assert abs(round(arg, 6) - (-70.651889)) < TOL, \ "ERROR: 6th orbital_elements_mean_equinox() test doesn't match" def test_earth_orbital_elements_j2000(): """Tests the orbital_elements_j2000() method of Earth class""" epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Earth.orbital_elements_j2000(epoch) assert abs(round(l, 6) - 271.801199) < TOL, \ "ERROR: 1st orbital_elements_j2000() test doesn't match" assert abs(round(a, 8) - 1.00000102) < TOL, \ "ERROR: 2nd orbital_elements_j2000() test doesn't match" assert abs(round(e, 7) - 0.0166811) < TOL, \ "ERROR: 3rd orbital_elements_j2000() test doesn't match" assert abs(round(i, 6) - 0.008544) < TOL, \ "ERROR: 4th orbital_elements_j2000() test doesn't match" assert abs(round(ome, 5) - 174.71534) < TOL, \ "ERROR: 5th orbital_elements_j2000() test doesn't match" assert abs(round(arg, 6) - (-71.566717)) < TOL, \ "ERROR: 6th orbital_elements_j2000() test doesn't match" def test_earth_perihelion_aphelion(): """Tests the perihelion_aphelion() method of Earth class""" epoch = Epoch(2003, 3, 10.0) e = Earth.perihelion_aphelion(epoch) y, m, d, h, mi, s = e.get_full_date() assert abs(y - 2003) < TOL, \ "ERROR: 1st perihelion_aphelion() test doesn't match" assert abs(m - 1) < TOL, \ "ERROR: 2nd perihelion_aphelion() test doesn't match" assert abs(d - 4) < TOL, \ "ERROR: 3rd perihelion_aphelion() test doesn't match" assert abs(h - 5) < TOL, \ "ERROR: 4th perihelion_aphelion() test doesn't match" assert abs(mi - 1) < TOL, \ "ERROR: 5th perihelion_aphelion() test doesn't match" epoch = Epoch(2009, 5, 1.0) e = Earth.perihelion_aphelion(epoch, perihelion=False) y, m, d, h, mi, s = e.get_full_date() assert abs(y - 2009) < TOL, \ "ERROR: 6th perihelion_aphelion() test doesn't match" assert abs(m - 7) < TOL, \ "ERROR: 7th perihelion_aphelion() test doesn't match" assert abs(d - 4) < TOL, \ "ERROR: 8th perihelion_aphelion() test doesn't match" assert abs(h - 1) < TOL, \ "ERROR: 9th perihelion_aphelion() test doesn't match" assert abs(mi - 41) < TOL, \ "ERROR: 10th perihelion_aphelion() test doesn't match" def test_earth_passage_nodes(): """Tests the passage_nodes() method of Earth class""" epoch = Epoch(2019, 1, 1) time, r = Earth.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) r = round(r, 4) assert abs(y - 2019) < TOL, \ "ERROR: 1st passage_nodes() test doesn't match" assert abs(m - 3) < TOL, \ "ERROR: 2nd passage_nodes() test doesn't match" assert abs(d - 15.0) < TOL, \ "ERROR: 3rd passage_nodes() test doesn't match" assert abs(r - 0.9945) < TOL, \ "ERROR: 4th passage_nodes() test doesn't match" def test_earth_parallax_correction(): """Tests the parallax_correction() method of Earth class""" right_ascension = Angle(22, 38, 7.25, ra=True) declination = Angle(-15, 46, 15.9) latitude = Angle(33, 21, 22) distance = 0.37276 hour_angle = Angle(288.7958) top_ra, top_dec = Earth.parallax_correction(right_ascension, declination, latitude, distance, hour_angle) assert top_ra.ra_str(n_dec=2) == "22h 38' 8.54''", \ "ERROR: 1st parallax_correction() test doesn't match" assert top_dec.dms_str(n_dec=1) == "-15d 46' 30.0''", \ "ERROR: 2nd parallax_correction() test doesn't match" def test_earth_parallax_ecliptical(): """Tests the parallax_ecliptical() method of Earth class""" longitude = Angle(181, 46, 22.5) latitude = Angle(2, 17, 26.2) semidiameter = Angle(0, 16, 15.5) obs_lat = Angle(50, 5, 7.8) obliquity = Angle(23, 28, 0.8) sidereal_time = Angle(209, 46, 7.9) distance = 0.0024650163 topo_lon, topo_lat, topo_diam = \ Earth.parallax_ecliptical(longitude, latitude, semidiameter, obs_lat, obliquity, sidereal_time, distance) assert topo_lon.dms_str(n_dec=1) == "181d 48' 5.0''", \ "ERROR: 1st parallax_ecliptical() test doesn't match" assert topo_lat.dms_str(n_dec=1) == "1d 29' 7.1''", \ "ERROR: 2nd parallax_ecliptical() test doesn't match" assert topo_diam.dms_str(n_dec=1) == "16' 25.5''", \ "ERROR: 3rd parallax_ecliptical() test doesn't match" pymeeus-0.3.6/tests/test_epoch.py000066400000000000000000000344601355545537700171120ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from pymeeus.base import TOL from pymeeus.Epoch import Epoch from pymeeus.Angle import Angle # Epoch class def test_epoch_constructor(): """Tests the constructor of Epoch class""" a = Epoch(1987, 6, 19.5) assert abs(a._jde - 2446966.0) < TOL, \ "ERROR: 1st constructor test, JDE value doesn't match" a = Epoch(1988, 6, 19.5) assert abs(a._jde - 2447332.0) < TOL, \ "ERROR: 2nd constructor test, JDE value doesn't match" a = Epoch(1600, 'jan', 1.0) assert abs(a._jde - 2305447.5) < TOL, \ "ERROR: 3rd constructor test, JDE value doesn't match" a = Epoch(-123, 'DECEMBER', 31.0) assert abs(a._jde - 1676496.5) < TOL, \ "ERROR: 4th constructor test, JDE value doesn't match" a = Epoch(-4712, 1, 1.5) assert abs(a._jde - 0.0) < TOL, \ "ERROR: 5th constructor test, JDE value doesn't match" def test_epoch_is_julian(): """Tests the is_julian() static method of Epoch class""" assert Epoch.is_julian(1582, 10, 4.99), \ "ERROR: 1st is_julian() test, output doesn't match" assert not Epoch.is_julian(1582, 10, 5.0), \ "ERROR: 2nd is_julian() test, output doesn't match" assert not Epoch.is_julian(2018, 11, 6.0), \ "ERROR: 3rd is_julian() test, output doesn't match" assert Epoch.is_julian(-2000, 3, 16.0), \ "ERROR: 4th is_julian() test, output doesn't match" def test_epoch_get_month(): """Test the get_month() static method of Epoch class""" assert Epoch.get_month(10) == 10, \ "ERROR: 1st get_month() test, output doesn't match" assert Epoch.get_month('Feb') == 2, \ "ERROR: 2nd get_month() test, output doesn't match" assert Epoch.get_month('MAR') == 3, \ "ERROR: 3rd get_month() test, output doesn't match" assert Epoch.get_month('January') == 1, \ "ERROR: 4th get_month() test, output doesn't match" assert Epoch.get_month('DECEMBER') == 12, \ "ERROR: 5th get_month() test, output doesn't match" assert Epoch.get_month('september') == 9, \ "ERROR: 6th get_month() test, output doesn't match" assert Epoch.get_month('may') == 5, \ "ERROR: 7th get_month() test, output doesn't match" assert Epoch.get_month(6, as_string=True) == 'June', \ "ERROR: 8th get_month() test, output doesn't match" def test_epoch_is_leap(): """Tests the is_leap() static method of Epoch class""" assert not Epoch.is_leap(1582), \ "ERROR: 1st is_leap() test, output doesn't match" assert Epoch.is_leap(1580), \ "ERROR: 2nd is_leap() test, output doesn't match" assert not Epoch.is_leap(2018), \ "ERROR: 3rd is_leap() test, output doesn't match" assert Epoch.is_leap(2000), \ "ERROR: 4th is_leap() test, output doesn't match" assert Epoch.is_leap(-2000), \ "ERROR: 5th is_leap() test, output doesn't match" def test_epoch_get_doy(): """Tests the get_doy() static method of Epoch class""" assert Epoch.get_doy(1978, 11, 14) == 318, \ "ERROR: 1st get_doy() test, output doesn't match" assert Epoch.get_doy(2012, 3, 3.1) == 63.1, \ "ERROR: 2nd get_doy() test, output doesn't match" assert Epoch.get_doy(-400, 2, 29.9) == 60.9, \ "ERROR: 3rd get_doy() test, output doesn't match" def test_epoch_doy2date(): """Tests the doy2date() static method of Epoch class""" assert Epoch.doy2date(2017, 32) == (2017, 2, 1), \ "ERROR: 1st doy2date() test, output doesn't match" assert Epoch.doy2date(-3, 60) == (-3, 3, 1.0), \ "ERROR: 2nd doy2date() test, output doesn't match" assert Epoch.doy2date(-4, 60) == (-4, 2, 29.0), \ "ERROR: 3rd doy2date() test, output doesn't match" t = Epoch.doy2date(2017, 365.7) assert t[0] == 2017 and t[1] == 12 and abs(t[2] - 31.7) < TOL, \ "ERROR: 4th doy2date() test, output doesn't match" t = Epoch.doy2date(2012, 63.1) assert t[0] == 2012 and t[1] == 3 and abs(t[2] - 3.1) < TOL, \ "ERROR: 5th doy2date() test, output doesn't match" t = Epoch.doy2date(-4, 60) assert t[0] == -4 and t[1] == 2 and abs(t[2] - 29) < TOL, \ "ERROR: 6th doy2date() test, output doesn't match" def test_epoch_leap_seconds(): """Tests the leap_seconds() static method of Epoch class""" assert Epoch.leap_seconds(1983, 6) == 11, \ "ERROR: 1st leap_seconds() test, output doesn't match" assert Epoch.leap_seconds(1983, 7) == 12, \ "ERROR: 2nd leap_seconds() test, output doesn't match" assert Epoch.leap_seconds(2016, 11) == 26, \ "ERROR: 3rd leap_seconds() test, output doesn't match" assert Epoch.leap_seconds(2017, 1) == 27, \ "ERROR: 4th leap_seconds() test, output doesn't match" assert Epoch.leap_seconds(1972, 6) == 0, \ "ERROR: 5th leap_seconds() test, output doesn't match" assert Epoch.leap_seconds(1972, 7) == 1, \ "ERROR: 6th leap_seconds() test, output doesn't match" assert Epoch.leap_seconds(2018, 7) == 27, \ "ERROR: 7th leap_seconds() test, output doesn't match" def test_epoch_easter(): """Tests the easter() method of Epoch class""" t = Epoch.easter(2000) assert t[0] == 4 and t[1] == 23, \ "ERROR: 1st easter() test, output doesn't match" t = Epoch.easter(1954) assert t[0] == 4 and t[1] == 18, \ "ERROR: 2nd easter() test, output doesn't match" t = Epoch.easter(179) assert t[0] == 4 and t[1] == 12, \ "ERROR: 3rd easter() test, output doesn't match" t = Epoch.easter(1243) assert t[0] == 4 and t[1] == 12, \ "ERROR: 4th easter() test, output doesn't match" t = Epoch.easter(1991) assert t[0] == 3 and t[1] == 31, \ "ERROR: 5th easter() test, output doesn't match" t = Epoch.easter(1993) assert t[0] == 4 and t[1] == 11, \ "ERROR: 6th easter() test, output doesn't match" def test_epoch_jewish_pesach(): """Tests the jewish_pesach() method of Epoch class""" t = Epoch.jewish_pesach(1990) assert t[0] == 4 and t[1] == 10, \ "ERROR: 1st jewish_pesach() test, output doesn't match" def test_epoch_moslem2gregorian(): """Tests the moslem2gregorian() method of Epoch class""" t = Epoch.moslem2gregorian(1421, 1, 1) assert t[0] == 2000 and t[1] == 4 and t[2] == 6, \ "ERROR: 1st moslem2gregorian() test, output doesn't match" def test_epoch_gregorian2moslem(): """Tests the gregorian2moslem() method of Epoch class""" t = Epoch.gregorian2moslem(1991, 8, 13) assert t[0] == 1412 and t[1] == 2 and t[2] == 2, \ "ERROR: 1st gregorian2moslem() test, output doesn't match" def test_epoch_get_date(): """Tests the get_date() method of Epoch class""" e = Epoch(2436116.31) t = e.get_date() assert t[0] == 1957 and t[1] == 10 and abs(t[2] - 4.81) < TOL, \ "ERROR: 1st get_date() test, output doesn't match" e = Epoch(1842713.0) t = e.get_date() assert t[0] == 333 and t[1] == 1 and abs(t[2] - 27.5) < TOL, \ "ERROR: 2nd get_date() test, output doesn't match" e = Epoch(1507900.13) t = e.get_date() assert t[0] == -584 and t[1] == 5 and abs(round(t[2], 2) - 28.63) < TOL, \ "ERROR: 3rd get_date() test, output doesn't match" def test_epoch_tt2ut(): """Tests the tt2ut() method of Epoch class""" assert abs(round(Epoch.tt2ut(1642, 1), 1) - 62.1) < TOL, \ "ERROR: 1st tt2ut() test, output doesn't match" assert abs(round(Epoch.tt2ut(1680, 1), 1) - 15.3) < TOL, \ "ERROR: 2nd tt2ut() test, output doesn't match" assert abs(round(Epoch.tt2ut(1774, 1), 1) - 16.7) < TOL, \ "ERROR: 3rd tt2ut() test, output doesn't match" assert abs(round(Epoch.tt2ut(1890, 1), 1) - (-6.1)) < TOL, \ "ERROR: 4th tt2ut() test, output doesn't match" assert abs(round(Epoch.tt2ut(1928, 2), 1) - 24.2) < TOL, \ "ERROR: 5th tt2ut() test, output doesn't match" assert abs(round(Epoch.tt2ut(2015, 7), 1) - 69.3) < TOL, \ "ERROR: 6th tt2ut() test, output doesn't match" def test_epoch_dow(): """Tests the dow() method of Epoch class""" e = Epoch(1954, 'June', 30) assert e.dow() == 3, "ERROR: 1st dow() test, output doesn't match" e = Epoch(2018, 'Feb', 14.9) assert e.dow(as_string=True) == 'Wednesday', \ "ERROR: 2nd dow() test, output doesn't match" e = Epoch(2018, 'Feb', 15) assert e.dow(as_string=True) == 'Thursday', \ "ERROR: 3rd dow() test, output doesn't match" e = Epoch(2018, 'Jul', 15.9) assert e.dow(as_string=True) == 'Sunday', \ "ERROR: 4th dow() test, output doesn't match" def test_epoch_mean_sidereal_time(): """Tests the mean_sidereal_time() method of Epoch class""" e = Epoch(1987, 4, 10) assert abs(round(e.mean_sidereal_time(), 9) - 0.549147764) < TOL, \ "ERROR: 1st mean_sidereal_time() test, output doesn't match" e = Epoch(1987, 4, 10, 19, 21, 0.0) assert abs(round(e.mean_sidereal_time(), 9) - 0.357605204) < TOL, \ "ERROR: 2nd mean_sidereal_time() test, output doesn't match" def test_epoch_apparent_sidereal_time(): """Tests the apparent_sidereal_time() method of Epoch class""" e = Epoch(1987, 4, 10) assert abs(round(e.apparent_sidereal_time(23.44357, (-3.788)/3600.0), 8) - 0.54914508) < TOL, \ "ERROR: 1st apparent_sidereal_time() test, output doesn't match" def test_epoch_mjd(): """Tests the mjd() method of Epoch class""" e = Epoch(1858, 'NOVEMBER', 17) assert e.mjd() == 0.0, "ERROR: 1st mjd() test, output doesn't match" def test_epoch_jde(): """Tests the jde() method of Epoch class""" e = Epoch(-1000, 2, 29.0) assert e.jde() == 1355866.5, "ERROR: 1st jde() test, output doesn't match" def test_epoch_call(): """Tests the __call__() method of Epoch class""" e = Epoch(-122, 1, 1.0) assert e() == 1676497.5, "ERROR: 1st __call__() test, output doesn't match" def test_epoch_add(): """Tests the addition between Epochs""" a = Epoch(1991, 7, 11) b = a + 10000 y, m, d = b.get_date() assert y == 2018 and m == 11 and abs(round(d, 2) - 26.0) < TOL, \ "ERROR: 1st __add__() test, output doesn't match" def test_epoch_sub(): """Tests the subtraction between Epochs""" a = Epoch(1986, 2, 9.0) b = Epoch(1910, 4, 20.0) c = a - b assert abs(round(c, 1) - 27689.0) < TOL, \ "ERROR: 1st __sub__() test, output doesn't match" a = Epoch(2003, 12, 31.0) b = a - 365.5 y, m, d = b.get_date() assert y == 2002 and m == 12 and abs(round(d, 1) - 30.5) < TOL, \ "ERROR: 2nd __sub__() test, output doesn't match" def test_epoch_iadd(): """Tests the accumulative addition in Epochs""" a = Epoch(2003, 12, 31.0) a += 32.5 y, m, d = a.get_date() assert y == 2004 and m == 2 and abs(round(d, 1) - 1.5) < TOL, \ "ERROR: 1st __iadd__() test, output doesn't match" def test_epoch_isub(): """Tests the accumulative subtraction in Epochs""" a = Epoch(2001, 12, 31.0) a -= 2*365 y, m, d = a.get_date() assert y == 2000 and m == 1 and abs(round(d, 1) - 1.0) < TOL, \ "ERROR: 1st __isub__() test, output doesn't match" def test_epoch_radd(): """Tests the addition with Epochs by the right""" a = Epoch(2004, 2, 27.8) b = 2.2 + a y, m, d = b.get_date() assert y == 2004 and m == 3 and abs(round(d, 1) - 1.0) < TOL, \ "ERROR: 1st __radd__() test, output doesn't match" def test_epoch_int(): """Tests the 'int()' operation on Epochs""" a = Epoch(2434923.85) assert abs(int(a) - 2434923) < TOL, \ "ERROR: 1st __int__() test, output doesn't match" def test_epoch_float(): """Tests the 'float()' operation on Epochs""" a = Epoch(2434923.85) assert abs(float(a) - 2434923.85) < TOL, \ "ERROR: 1st __float__() test, output doesn't match" def test_epoch_ne(): """Tests the 'is not equal' operator of Epochs""" # NOTE: Test 'is not equal' also tests 'is equal' operator a = Epoch(2007, 5, 20.0) b = Epoch(2007, 5, 20.000001) assert a != b, "ERROR: 1st __ne__() test, output doesn't match" a = Epoch(2004, 10, 15.7) b = Epoch(a) assert not a != b, "ERROR: 2nd __ne__() test, output doesn't match" a = Epoch(2434923.85) assert not a != 2434923.85, \ "ERROR: 3rd __ne__() test, output doesn't match" def test_epoch_ge(): """Tests the 'is greater or equal' operator of Epochs""" # NOTE: Test of 'is greater or equal' also tests 'is less than' operator a = Epoch(2004, 10, 15.71) b = Epoch(2004, 10, 15.7) assert a >= b, "ERROR: 1st __ge__() test, output doesn't match" def test_epoch_le(): """Tests the 'is less or equal' operator of Epochs""" # NOTE: Test of 'is less or equal' also tests 'is greater than' operator a = Epoch(2004, 10, 15.71) b = Epoch(2004, 10, 15.7) assert not a <= b, "ERROR: 1st __le__() test, output doesn't match" a = Epoch(-207, 11, 5.2) b = Epoch(-207, 11, 5.2) assert a <= b, "ERROR: 2nd __le__() test, output doesn't match" def test_epoch_rise_set(): """Tests the 'rise_set()' method of Epochs""" e = Epoch(2019, 4, 2) latitude = Angle(48, 8, 0) longitude = Angle(11, 34, 0) altitude = 520.0 rising, setting = e.rise_set(latitude, longitude, altitude) y, m, d, h, mi, s = rising.get_full_date() assert h == 4, "ERROR: 1st rise_set() test, output doesn't match" assert mi == 48, "ERROR: 2nd rise_set() test, output doesn't match" y, m, d, h, mi, s = setting.get_full_date() assert h == 17, "ERROR: 3rd rise_set() test, output doesn't match" assert mi == 48, "ERROR: 3rd rise_set() test, output doesn't match" pymeeus-0.3.6/tests/test_interpolation.py000066400000000000000000000163301355545537700206770ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from math import sqrt, degrees from pymeeus.base import TOL from pymeeus.Angle import Angle from pymeeus.Interpolation import Interpolation # Declare some objects to be used later i_ra = Interpolation() i_angles1 = Interpolation() i_angles2 = Interpolation() i_sine = Interpolation() def setup(): """This function is used to set up the environment for the tests""" # Set up a interpolation object which uses Right Ascension y0 = Angle(10, 18, 48.732, ra=True) y1 = Angle(10, 23, 22.835, ra=True) y2 = Angle(10, 27, 57.247, ra=True) y3 = Angle(10, 32, 31.983, ra=True) i_ra.set([8.0, 10.0, 12.0, 14.0], [y0, y1, y2, y3]) # Set up a couple interpolation objects with Angles y0 = Angle(0, -28, 13.4) y1 = Angle(0, 6, 46.3) y2 = Angle(0, 38, 23.2) i_angles1.set([26.0, 27.0, 28.0], [y0, y1, y2]) y0 = Angle(-1, 11, 21.23) y1 = Angle(0, -28, 12.31) y2 = Angle(0, 16, 7.02) y3 = Angle(1, 1, 0.13) y4 = Angle(1, 45, 46.33) i_angles2.set([25.0, 26.0, 27.0, 28.0, 29.0], [y0, y1, y2, y3, y4]) # Set up an interpolation object with 6 interpolation table entries, based # on sine function i_sine.set([29.43, 30.97, 27.69, 28.11, 31.58, 33.05], [0.4913598528, 0.5145891926, 0.4646875083, 0.4711658342, 0.5236885653, 0.5453707057]) def teardown(): pass # Interpolation class def test_interpolation_constructor(): """Tests the constructor of Interpolation class""" i = Interpolation([5, 3, 6, 1, 2, 4, 9], [10, 6, 12, 2, 4, 8]) assert i._x == [1, 2, 3, 4, 5, 6], \ "ERROR: 1st constructor test, 'x' values don't match" assert i._y == [2, 4, 6, 8, 10, 12], \ "ERROR: 2nd constructor test, 'y' values don't match" j = Interpolation([3, -8, 1, 12, 2, 5, 8]) assert j._x == [0, 1, 2, 3, 4, 5, 6], \ "ERROR: 3rd constructor test, 'x' values don't match" assert j._y == [3, -8, 1, 12, 2, 5, 8], \ "ERROR: 4th constructor test, 'y' values don't match" k = Interpolation(3, -8, 1, 12, 2, 5, 8) assert k._x == [1, 2, 3], \ "ERROR: 5th constructor test, 'x' values don't match" assert k._y == [12, 5, -8], \ "ERROR: 6th constructor test, 'y' values don't match" def test_interpolation_call(): """Tests the __call__() method of Interpolation class""" m = Interpolation([-1.0, 0.0, 1.0], [-2.0, 3.0, 2.0]) assert abs(m(-0.8) - (-0.52)) < TOL, \ "ERROR: In 1st __call__() test, output value doesn't match" assert abs(m(0.7) - 2.93) < TOL, \ "ERROR: In 2nd __call__() test, output value doesn't match" assert abs(m(-1.0) - (-2.0)) < TOL, \ "ERROR: In 3rd __call__() test, output value doesn't match" m = Interpolation([-3.0, 0.0, 2.5], [12.0, -3.0, -1.75]) assert abs(m(-2.0) - 5.0) < TOL, \ "ERROR: In 4th __call__() test, output value doesn't match" assert abs(m(2.5) - (-1.75)) < TOL, \ "ERROR: In 5th __call__() test, output value doesn't match" # This interpolation test uses Right Ascension a = Angle(i_ra(11.0)) h, m, s, sign = a.ra_tuple() assert abs(h - 10.0) < TOL and \ abs(m - 25.0) < TOL and \ abs(s - 40.0014375) < TOL and \ abs(sign == 1.0), \ "ERROR: In 6th __call__() test, output value doesn't match" # Test with 6 interpolation table entries, based on sine function assert abs(i_sine(30.0) - 0.5) < TOL, \ "ERROR: In 7th __call__() test, output value doesn't match" def test_interpolation_derivative(): """Tests the derivative() method of Interpolation class""" m = Interpolation([-1.0, 0.0, 1.0], [-2.0, 3.0, 2.0]) assert abs(m.derivative(-1.0) - 8.0) < TOL, \ "ERROR: In 1st derivative() test, output value doesn't match" assert abs(m.derivative(0.0) - 2.0) < TOL, \ "ERROR: In 2nd derivative() test, output value doesn't match" assert abs(m.derivative(0.5) - (-1.0)) < TOL, \ "ERROR: In 3rd derivative() test, output value doesn't match" m = Interpolation([-3.0, 0.0, 2.5], [12.0, -3.0, -1.75]) assert abs(m.derivative(-3.0) - (-8.0)) < TOL, \ "ERROR: In 4th derivative() test, output value doesn't match" assert abs(m.derivative(0.0) - (-2.0)) < TOL, \ "ERROR: In 5th derivative() test, output value doesn't match" assert abs(m.derivative(2.5) - 3.0) < TOL, \ "ERROR: In 6th derivative() test, output value doesn't match" # Do test with an interpolation object with 6 table entries, based on sine # We need to adjust the result because degrees were used instead of radians res = degrees(i_sine.derivative(30.0)) assert abs(res - sqrt(3.0)/2.0) < TOL, \ "ERROR: In 7th derivative() test, output value doesn't match" def test_interpolation_root(): """Tests the root() method of Interpolation class""" m = Interpolation([-1.0, 0.0, 1.0], [-2.0, 3.0, 2.0]) assert abs(m.root() - (-0.7207592200561265)) < TOL, \ "ERROR: In 1st root() test, output value doesn't match" m = Interpolation([-3.0, 0.0, 2.5], [12.0, -3.0, -1.75]) assert abs(m.root(-2.0, 0.0) - (-1.0)) < TOL, \ "ERROR: In 2nd root() test, output value doesn't match" assert abs(m.root() - (-1.0)) < TOL, \ "ERROR: In 3rd root() test, output value doesn't match" m = Interpolation([-3.0, 0.0, 2.5, 3.5], [12.0, -3.0, -1.75, 2.25]) assert abs(m.root(0.0, 3.15) - 3.0) < TOL, \ "ERROR: In 4th root() test, output value doesn't match" # Let's do some tests with Angles assert abs(i_angles1.root() - 26.798732705) < TOL, \ "ERROR: In 5th root() test, output value doesn't match" assert abs(i_angles2.root() - 26.6385869469) < TOL, \ "ERROR: In 6th root() test, output value doesn't match" def test_interpolation_minmax(): """Tests the minmax() method of Interpolation class""" m = Interpolation([-1.0, 0.0, 1.0], [-2.0, 3.0, 2.0]) assert abs(m.minmax() - 0.3333333333) < TOL, \ "ERROR: In 1st minmax() test, output value doesn't match" m = Interpolation([-3.0, 0.0, 2.5], [12.0, -3.0, -1.75]) assert abs(m.minmax() - 1.0) < TOL, \ "ERROR: In 2nd minmax() test, output value doesn't match" m = Interpolation([12.0, 16.0, 20.0], [1.3814294, 1.3812213, 1.3812453]) assert abs(m.minmax() - 17.5863851788) < TOL, \ "ERROR: In 3rd minmax() test, output value doesn't match" assert abs(m(m.minmax()) - 1.38120304666) < TOL, \ "ERROR: In 4th minmax() test, output value doesn't match" pymeeus-0.3.6/tests/test_jupiter.py000066400000000000000000000170771355545537700175030ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from pymeeus.base import TOL from pymeeus.Jupiter import Jupiter from pymeeus.Epoch import Epoch # Jupiter class def test_jupiter_geometric_heliocentric_position(): """Tests the geometric_heliocentric_position() method of Jupiter class""" epoch = Epoch(2018, 10, 27.0) lon, lat, r = Jupiter.geometric_heliocentric_position(epoch) assert abs(round(lon.to_positive(), 4) - 241.5873) < TOL, \ "ERROR: 1st geometric_heliocentric_position() test doesn't match" assert abs(round(lat, 4) - 0.8216) < TOL, \ "ERROR: 2nd geometric_heliocentric_position() test doesn't match" assert abs(round(r, 5) - 5.36848) < TOL, \ "ERROR: 3rd geometric_heliocentric_position() test doesn't match" def test_jupiter_orbital_elements_mean_equinox(): """Tests the orbital_elements_mean_equinox() method of Jupiter class""" epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Jupiter.orbital_elements_mean_equinox(epoch) assert abs(round(l, 6) - 222.433723) < TOL, \ "ERROR: 1st orbital_elements_mean_equinox() test doesn't match" assert abs(round(a, 8) - 5.20260333) < TOL, \ "ERROR: 2nd orbital_elements_mean_equinox() test doesn't match" assert abs(round(e, 7) - 0.0486046) < TOL, \ "ERROR: 3rd orbital_elements_mean_equinox() test doesn't match" assert abs(round(i, 6) - 1.29967) < TOL, \ "ERROR: 4th orbital_elements_mean_equinox() test doesn't match" assert abs(round(ome, 5) - 101.13309) < TOL, \ "ERROR: 5th orbital_elements_mean_equinox() test doesn't match" assert abs(round(arg, 6) - (-85.745532)) < TOL, \ "ERROR: 6th orbital_elements_mean_equinox() test doesn't match" def test_jupiter_orbital_elements_j2000(): """Tests the orbital_elements_j2000() method of Jupiter class""" epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Jupiter.orbital_elements_j2000(epoch) assert abs(round(l, 6) - 221.518802) < TOL, \ "ERROR: 1st orbital_elements_j2000() test doesn't match" assert abs(round(a, 8) - 5.20260333) < TOL, \ "ERROR: 2nd orbital_elements_j2000() test doesn't match" assert abs(round(e, 7) - 0.0486046) < TOL, \ "ERROR: 3rd orbital_elements_j2000() test doesn't match" assert abs(round(i, 6) - 1.30198) < TOL, \ "ERROR: 4th orbital_elements_j2000() test doesn't match" assert abs(round(ome, 5) - 100.58051) < TOL, \ "ERROR: 5th orbital_elements_j2000() test doesn't match" assert abs(round(arg, 6) - (-86.107875)) < TOL, \ "ERROR: 6th orbital_elements_j2000() test doesn't match" def test_jupiter_geocentric_position(): """Tests the geocentric_position() method of Jupiter class""" epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Jupiter.geocentric_position(epoch) assert ra.ra_str(n_dec=1) == "12h 47' 9.6''", \ "ERROR: 1st geocentric_position() test doesn't match" assert dec.dms_str(n_dec=1) == "-3d 41' 55.3''", \ "ERROR: 2nd geocentric_position() test doesn't match" assert elon.dms_str(n_dec=1) == "76d 2' 26.0''", \ "ERROR: 3rd geocentric_position() test doesn't match" def test_jupiter_conjunction(): """Tests the conjunction() method of Jupiter class""" epoch = Epoch(1993, 10, 1.0) conjunction = Jupiter.conjunction(epoch) y, m, d = conjunction.get_date() assert abs(round(y, 0) - 1993) < TOL, \ "ERROR: 1st conjunction() test doesn't match" assert abs(round(m, 0) - 10) < TOL, \ "ERROR: 2nd conjunction() test doesn't match" assert abs(round(d, 4) - 18.3341) < TOL, \ "ERROR: 3rd conjunction() test doesn't match" def test_jupiter_opposition(): """Tests the opposition() method of Jupiter class""" epoch = Epoch(-6, 9, 1.0) oppo = Jupiter.opposition(epoch) y, m, d = oppo.get_date() assert abs(round(y, 0) - (-6)) < TOL, \ "ERROR: 1st opposition() test doesn't match" assert abs(round(m, 0) - 9) < TOL, \ "ERROR: 2nd opposition() test doesn't match" assert abs(round(d, 4) - 15.2865) < TOL, \ "ERROR: 3rd opposition() test doesn't match" def test_jupiter_station_longitude_1(): """Tests the station_longitude_1() method of Jupiter class""" epoch = Epoch(2018, 11, 1.0) sta1 = Jupiter.station_longitude_1(epoch) y, m, d = sta1.get_date() assert abs(round(y, 0) - 2018) < TOL, \ "ERROR: 1st station_longitude_1() test doesn't match" assert abs(round(m, 0) - 3) < TOL, \ "ERROR: 2nd station_longitude_1() test doesn't match" assert abs(round(d, 4) - 9.1288) < TOL, \ "ERROR: 3rd station_longitude_1() test doesn't match" def test_jupiter_station_longitude_2(): """Tests the station_longitude_2() method of Jupiter class""" epoch = Epoch(2018, 11, 1.0) sta2 = Jupiter.station_longitude_2(epoch) y, m, d = sta2.get_date() assert abs(round(y, 0) - 2018) < TOL, \ "ERROR: 1st station_longitude_2() test doesn't match" assert abs(round(m, 0) - 7) < TOL, \ "ERROR: 2nd station_longitude_2() test doesn't match" assert abs(round(d, 4) - 10.6679) < TOL, \ "ERROR: 3rd station_longitude_2() test doesn't match" def test_jupiter_perihelion_aphelion(): """Tests the perihelion_aphelion() method of Jupiter class""" epoch = Epoch(2019, 2, 23.0) e = Jupiter.perihelion_aphelion(epoch) y, m, d, h, mi, s = e.get_full_date() assert abs(y - 2023) < TOL, \ "ERROR: 1st perihelion_aphelion() test doesn't match" assert abs(m - 1) < TOL, \ "ERROR: 2nd perihelion_aphelion() test doesn't match" assert abs(d - 20) < TOL, \ "ERROR: 3rd perihelion_aphelion() test doesn't match" assert abs(h - 11) < TOL, \ "ERROR: 4th perihelion_aphelion() test doesn't match" epoch = Epoch(1981, 6, 1.0) e = Jupiter.perihelion_aphelion(epoch, perihelion=False) y, m, d, h, mi, s = e.get_full_date() assert abs(y - 1981) < TOL, \ "ERROR: 5th perihelion_aphelion() test doesn't match" assert abs(m - 7) < TOL, \ "ERROR: 6th perihelion_aphelion() test doesn't match" assert abs(d - 28) < TOL, \ "ERROR: 7th perihelion_aphelion() test doesn't match" assert abs(h - 6) < TOL, \ "ERROR: 8th perihelion_aphelion() test doesn't match" def test_jupiter_passage_nodes(): """Tests the passage_nodes() method of Jupiter class""" epoch = Epoch(2019, 1, 1) time, r = Jupiter.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) r = round(r, 4) assert abs(y - 2025) < TOL, \ "ERROR: 1st passage_nodes() test doesn't match" assert abs(m - 9) < TOL, \ "ERROR: 2nd passage_nodes() test doesn't match" assert abs(d - 15.6) < TOL, \ "ERROR: 3rd passage_nodes() test doesn't match" assert abs(r - 5.1729) < TOL, \ "ERROR: 4th passage_nodes() test doesn't match" pymeeus-0.3.6/tests/test_mars.py000066400000000000000000000167401355545537700167570ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from pymeeus.base import TOL from pymeeus.Mars import Mars from pymeeus.Epoch import Epoch # Mars class def test_mars_geometric_heliocentric_position(): """Tests the geometric_heliocentric_position() method of Mars class""" epoch = Epoch(2018, 10, 27.0) lon, lat, r = Mars.geometric_heliocentric_position(epoch) assert abs(round(lon.to_positive(), 4) - 2.0015) < TOL, \ "ERROR: 1st geometric_heliocentric_position() test doesn't match" assert abs(round(lat, 4) - (-1.3683)) < TOL, \ "ERROR: 2nd geometric_heliocentric_position() test doesn't match" assert abs(round(r, 5) - 1.39306) < TOL, \ "ERROR: 3rd geometric_heliocentric_position() test doesn't match" def test_mars_orbital_elements_mean_equinox(): """Tests the orbital_elements_mean_equinox() method of Mars class""" epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Mars.orbital_elements_mean_equinox(epoch) assert abs(round(l, 6) - 288.855211) < TOL, \ "ERROR: 1st orbital_elements_mean_equinox() test doesn't match" assert abs(round(a, 8) - 1.52367934) < TOL, \ "ERROR: 2nd orbital_elements_mean_equinox() test doesn't match" assert abs(round(e, 7) - 0.0934599) < TOL, \ "ERROR: 3rd orbital_elements_mean_equinox() test doesn't match" assert abs(round(i, 6) - 1.849338) < TOL, \ "ERROR: 4th orbital_elements_mean_equinox() test doesn't match" assert abs(round(ome, 5) - 50.06365) < TOL, \ "ERROR: 5th orbital_elements_mean_equinox() test doesn't match" assert abs(round(arg, 6) - 287.202108) < TOL, \ "ERROR: 6th orbital_elements_mean_equinox() test doesn't match" def test_mars_orbital_elements_j2000(): """Tests the orbital_elements_j2000() method of Mars class""" epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Mars.orbital_elements_j2000(epoch) assert abs(round(l, 6) - 287.94027) < TOL, \ "ERROR: 1st orbital_elements_j2000() test doesn't match" assert abs(round(a, 8) - 1.52367934) < TOL, \ "ERROR: 2nd orbital_elements_j2000() test doesn't match" assert abs(round(e, 7) - 0.0934599) < TOL, \ "ERROR: 3rd orbital_elements_j2000() test doesn't match" assert abs(round(i, 6) - 1.844381) < TOL, \ "ERROR: 4th orbital_elements_j2000() test doesn't match" assert abs(round(ome, 5) - 49.36464) < TOL, \ "ERROR: 5th orbital_elements_j2000() test doesn't match" assert abs(round(arg, 6) - 286.98617) < TOL, \ "ERROR: 6th orbital_elements_j2000() test doesn't match" def test_mars_geocentric_position(): """Tests the geocentric_position() method of Mars class""" epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Mars.geocentric_position(epoch) assert ra.ra_str(n_dec=1) == "7h 48' 35.4''", \ "ERROR: 1st geocentric_position() test doesn't match" assert dec.dms_str(n_dec=1) == "24d 35' 33.9''", \ "ERROR: 2nd geocentric_position() test doesn't match" assert elon.dms_str(n_dec=1) == "153d 35' 1.6''", \ "ERROR: 3rd geocentric_position() test doesn't match" def test_mars_conjunction(): """Tests the conjunction() method of Mars class""" epoch = Epoch(1993, 10, 1.0) conjunction = Mars.conjunction(epoch) y, m, d = conjunction.get_date() assert abs(round(y, 0) - 1993) < TOL, \ "ERROR: 1st conjunction() test doesn't match" assert abs(round(m, 0) - 12) < TOL, \ "ERROR: 2nd conjunction() test doesn't match" assert abs(round(d, 4) - 27.0898) < TOL, \ "ERROR: 3rd conjunction() test doesn't match" def test_mars_superior_conjunction(): """Tests the opposition() method of Mars class""" epoch = Epoch(2729, 10, 1.0) oppo = Mars.opposition(epoch) y, m, d = oppo.get_date() assert abs(round(y, 0) - 2729) < TOL, \ "ERROR: 1st opposition() test doesn't match" assert abs(round(m, 0) - 9) < TOL, \ "ERROR: 2nd opposition() test doesn't match" assert abs(round(d, 4) - 9.1412) < TOL, \ "ERROR: 3rd opposition() test doesn't match" def test_mars_station_longitude_1(): """Tests the station_longitude_1() method of Mars class""" epoch = Epoch(1997, 3, 1.0) sta1 = Mars.station_longitude_1(epoch) y, m, d = sta1.get_date() assert abs(round(y, 0) - 1997) < TOL, \ "ERROR: 1st station_longitude_1() test doesn't match" assert abs(round(m, 0) - 2) < TOL, \ "ERROR: 2nd station_longitude_1() test doesn't match" assert abs(round(d, 4) - 6.033) < TOL, \ "ERROR: 3rd station_longitude_1() test doesn't match" def test_mars_station_longitude_2(): """Tests the station_longitude_2() method of Mars class""" epoch = Epoch(1997, 3, 1.0) sta2 = Mars.station_longitude_2(epoch) y, m, d = sta2.get_date() assert abs(round(y, 0) - 1997) < TOL, \ "ERROR: 1st station_longitude_2() test doesn't match" assert abs(round(m, 0) - 4) < TOL, \ "ERROR: 2nd station_longitude_2() test doesn't match" assert abs(round(d, 4) - 27.7553) < TOL, \ "ERROR: 3rd station_longitude_2() test doesn't match" def test_mars_perihelion_aphelion(): """Tests the perihelion_aphelion() method of Mars class""" epoch = Epoch(2019, 2, 23.0) e = Mars.perihelion_aphelion(epoch) y, m, d, h, mi, s = e.get_full_date() assert abs(y - 2018) < TOL, \ "ERROR: 1st perihelion_aphelion() test doesn't match" assert abs(m - 9) < TOL, \ "ERROR: 2nd perihelion_aphelion() test doesn't match" assert abs(d - 16) < TOL, \ "ERROR: 3rd perihelion_aphelion() test doesn't match" assert abs(h - 12) < TOL, \ "ERROR: 4th perihelion_aphelion() test doesn't match" epoch = Epoch(2032, 1, 1.0) e = Mars.perihelion_aphelion(epoch, perihelion=False) y, m, d, h, mi, s = e.get_full_date() assert abs(y - 2032) < TOL, \ "ERROR: 5th perihelion_aphelion() test doesn't match" assert abs(m - 10) < TOL, \ "ERROR: 6th perihelion_aphelion() test doesn't match" assert abs(d - 24) < TOL, \ "ERROR: 7th perihelion_aphelion() test doesn't match" assert abs(h - 22) < TOL, \ "ERROR: 8th perihelion_aphelion() test doesn't match" def test_mars_passage_nodes(): """Tests the passage_nodes() method of Mars class""" epoch = Epoch(2019, 1, 1) time, r = Mars.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) r = round(r, 4) assert abs(y - 2019) < TOL, \ "ERROR: 1st passage_nodes() test doesn't match" assert abs(m - 1) < TOL, \ "ERROR: 2nd passage_nodes() test doesn't match" assert abs(d - 15.2) < TOL, \ "ERROR: 3rd passage_nodes() test doesn't match" assert abs(r - 1.4709) < TOL, \ "ERROR: 4th passage_nodes() test doesn't match" pymeeus-0.3.6/tests/test_mercury.py000066400000000000000000000226631355545537700175040ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from pymeeus.base import TOL from pymeeus.Mercury import Mercury from pymeeus.Epoch import Epoch # Mercury class def test_mercury_geometric_heliocentric_position(): """Tests the geometric_heliocentric_position() method of Mercury class""" epoch = Epoch(2018, 10, 27.0) lon, lat, r = Mercury.geometric_heliocentric_position(epoch) assert abs(round(lon.to_positive(), 4) - 287.4887) < TOL, \ "ERROR: 1st geometric_heliocentric_position() test doesn't match" assert abs(round(lat, 4) - (-6.0086)) < TOL, \ "ERROR: 2nd geometric_heliocentric_position() test doesn't match" assert abs(round(r, 5) - 0.45113) < TOL, \ "ERROR: 3rd geometric_heliocentric_position() test doesn't match" def test_mercury_orbital_elements_mean_equinox(): """Tests the orbital_elements_mean_equinox() method of Mercury class""" epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Mercury.orbital_elements_mean_equinox(epoch) assert abs(round(l, 6) - 203.494701) < TOL, \ "ERROR: 1st orbital_elements_mean_equinox() test doesn't match" assert abs(round(a, 8) - 0.38709831) < TOL, \ "ERROR: 2nd orbital_elements_mean_equinox() test doesn't match" assert abs(round(e, 7) - 0.2056451) < TOL, \ "ERROR: 3rd orbital_elements_mean_equinox() test doesn't match" assert abs(round(i, 6) - 7.006171) < TOL, \ "ERROR: 4th orbital_elements_mean_equinox() test doesn't match" assert abs(round(ome, 5) - 49.10765) < TOL, \ "ERROR: 5th orbital_elements_mean_equinox() test doesn't match" assert abs(round(arg, 6) - 29.367732) < TOL, \ "ERROR: 6th orbital_elements_mean_equinox() test doesn't match" def test_mercury_orbital_elements_j2000(): """Tests the orbital_elements_j2000() method of Mercury class""" epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Mercury.orbital_elements_j2000(epoch) assert abs(round(l, 6) - 202.579453) < TOL, \ "ERROR: 1st orbital_elements_j2000() test doesn't match" assert abs(round(a, 8) - 0.38709831) < TOL, \ "ERROR: 2nd orbital_elements_j2000() test doesn't match" assert abs(round(e, 7) - 0.2056451) < TOL, \ "ERROR: 3rd orbital_elements_j2000() test doesn't match" assert abs(round(i, 6) - 7.001089) < TOL, \ "ERROR: 4th orbital_elements_j2000() test doesn't match" assert abs(round(ome, 5) - 48.24873) < TOL, \ "ERROR: 5th orbital_elements_j2000() test doesn't match" assert abs(round(arg, 6) - 29.311401) < TOL, \ "ERROR: 6th orbital_elements_j2000() test doesn't match" def test_mercury_geocentric_position(): """Tests the geocentric_position() method of Mercury class""" epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Mercury.geocentric_position(epoch) assert ra.ra_str(n_dec=1) == "16h 33' 59.3''", \ "ERROR: 1st geocentric_position() test doesn't match" assert dec.dms_str(n_dec=1) == "-20d 53' 31.6''", \ "ERROR: 2nd geocentric_position() test doesn't match" assert elon.dms_str(n_dec=1) == "18d 24' 29.8''", \ "ERROR: 3rd geocentric_position() test doesn't match" def test_mercury_inferior_conjunction(): """Tests the inferior_conjunction() method of Mercury class""" epoch = Epoch(1993, 10, 1.0) conjunction = Mercury.inferior_conjunction(epoch) y, m, d = conjunction.get_date() assert abs(round(y, 0) - 1993) < TOL, \ "ERROR: 1st inferior_conjunction() test doesn't match" assert abs(round(m, 0) - 11) < TOL, \ "ERROR: 2nd inferior_conjunction() test doesn't match" assert abs(round(d, 4) - 6.1449) < TOL, \ "ERROR: 3rd inferior_conjunction() test doesn't match" epoch = Epoch(1631, 10, 1.0) conjunction = Mercury.inferior_conjunction(epoch) y, m, d = conjunction.get_date() assert abs(round(y, 0) - 1631) < TOL, \ "ERROR: 4th inferior_conjunction() test doesn't match" assert abs(round(m, 0) - 11) < TOL, \ "ERROR: 5th inferior_conjunction() test doesn't match" assert abs(round(d, 3) - 7.306) < TOL, \ "ERROR: 6th inferior_conjunction() test doesn't match" def test_mercury_superior_conjunction(): """Tests the superior_conjunction() method of Mercury class""" epoch = Epoch(1993, 10, 1.0) conjunction = Mercury.superior_conjunction(epoch) y, m, d = conjunction.get_date() assert abs(round(y, 0) - 1993) < TOL, \ "ERROR: 1st superior_conjunction() test doesn't match" assert abs(round(m, 0) - 8) < TOL, \ "ERROR: 2nd superior_conjunction() test doesn't match" assert abs(round(d, 4) - 29.3301) < TOL, \ "ERROR: 3rd superior_conjunction() test doesn't match" def test_mercury_western_elongation(): """Tests the western_elongation() method of Mercury class""" epoch = Epoch(1993, 11, 1.0) time, elongation = Mercury.western_elongation(epoch) y, m, d = time.get_date() assert abs(round(y, 0) - 1993) < TOL, \ "ERROR: 1st western_elongation() test doesn't match" assert abs(round(m, 0) - 11) < TOL, \ "ERROR: 2nd western_elongation() test doesn't match" assert abs(round(d, 4) - 22.6386) < TOL, \ "ERROR: 3rd western_elongation() test doesn't match" assert abs(round(elongation, 4) - 19.7506) < TOL, \ "ERROR: 4th western_elongation() test doesn't match" def test_mercury_eastern_elongation(): """Tests the eastern_elongation() method of Mercury class""" epoch = Epoch(1990, 8, 1.0) time, elongation = Mercury.eastern_elongation(epoch) y, m, d = time.get_date() assert abs(round(y, 0) - 1990) < TOL, \ "ERROR: 1st eastern_elongation() test doesn't match" assert abs(round(m, 0) - 8) < TOL, \ "ERROR: 2nd eastern_elongation() test doesn't match" assert abs(round(d, 4) - 11.8514) < TOL, \ "ERROR: 3rd eastern_elongation() test doesn't match" assert abs(round(elongation, 4) - 27.4201) < TOL, \ "ERROR: 4th eastern_elongation() test doesn't match" def test_mercury_station_longitude_1(): """Tests the station_longitude_1() method of Mercury class""" epoch = Epoch(1993, 10, 1.0) sta1 = Mercury.station_longitude_1(epoch) y, m, d = sta1.get_date() assert abs(round(y, 0) - 1993) < TOL, \ "ERROR: 1st station_longitude_1() test doesn't match" assert abs(round(m, 0) - 10) < TOL, \ "ERROR: 2nd station_longitude_1() test doesn't match" assert abs(round(d, 4) - 25.9358) < TOL, \ "ERROR: 3rd station_longitude_1() test doesn't match" def test_mercury_station_longitude_2(): """Tests the station_longitude_2() method of Mercury class""" epoch = Epoch(1993, 10, 1.0) sta2 = Mercury.station_longitude_2(epoch) y, m, d = sta2.get_date() assert abs(round(y, 0) - 1993) < TOL, \ "ERROR: 1st station_longitude_2() test doesn't match" assert abs(round(m, 0) - 11) < TOL, \ "ERROR: 2nd station_longitude_2() test doesn't match" assert abs(round(d, 4) - 15.0724) < TOL, \ "ERROR: 3rd station_longitude_2() test doesn't match" def test_mercury_perihelion_aphelion(): """Tests the perihelion_aphelion() method of Mercury class""" epoch = Epoch(2000, 1, 1.0) e = Mercury.perihelion_aphelion(epoch) y, m, d, h, mi, s = e.get_full_date() assert abs(y - 2000) < TOL, \ "ERROR: 1st perihelion_aphelion() test doesn't match" assert abs(m - 2) < TOL, \ "ERROR: 2nd perihelion_aphelion() test doesn't match" assert abs(d - 15) < TOL, \ "ERROR: 3rd perihelion_aphelion() test doesn't match" assert abs(h - 18) < TOL, \ "ERROR: 4th perihelion_aphelion() test doesn't match" epoch = Epoch(2000, 3, 1.0) e = Mercury.perihelion_aphelion(epoch, perihelion=False) y, m, d, h, mi, s = e.get_full_date() assert abs(y - 2000) < TOL, \ "ERROR: 5th perihelion_aphelion() test doesn't match" assert abs(m - 3) < TOL, \ "ERROR: 6th perihelion_aphelion() test doesn't match" assert abs(d - 30) < TOL, \ "ERROR: 7th perihelion_aphelion() test doesn't match" assert abs(h - 17) < TOL, \ "ERROR: 8th perihelion_aphelion() test doesn't match" def test_mercury_passage_nodes(): """Tests the passage_nodes() method of Mercury class""" epoch = Epoch(2019, 1, 1) time, r = Mercury.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) r = round(r, 4) assert abs(y - 2018) < TOL, \ "ERROR: 1st passage_nodes() test doesn't match" assert abs(m - 11) < TOL, \ "ERROR: 2nd passage_nodes() test doesn't match" assert abs(d - 24.7) < TOL, \ "ERROR: 3rd passage_nodes() test doesn't match" assert abs(r - 0.3143) < TOL, \ "ERROR: 4th passage_nodes() test doesn't match" pymeeus-0.3.6/tests/test_minor.py000066400000000000000000000045061355545537700171360ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from pymeeus.base import TOL from pymeeus.Angle import Angle from pymeeus.Minor import Minor from pymeeus.Epoch import Epoch # Minor class def test_minor_geocentric_position(): """Tests the geocentric_position() method of Minor class""" a = 2.2091404 e = 0.8502196 q = a * (1.0 - e) i = Angle(11.94524) omega = Angle(334.75006) w = Angle(186.23352) t = Epoch(1990, 10, 28.54502) epoch = Epoch(1990, 10, 6.0) minor = Minor(q, e, i, omega, w, t) ra, dec, elong = minor.geocentric_position(epoch) assert ra.ra_str(n_dec=1) == "10h 34' 13.7''", \ "ERROR: 1st geocentric_position() test doesn't match" assert dec.dms_str(n_dec=0) == "19d 9' 32.0''", \ "ERROR: 2nd geocentric_position() test doesn't match" assert abs(round(elong, 2) - 40.51) < TOL, \ "ERROR: 3rd geocentric_position() test doesn't match" def test_minor_heliocentric_ecliptical_position(): """Tests the heliocentric_ecliptical_position() method of Minor class""" a = 2.2091404 e = 0.8502196 q = a * (1.0 - e) i = Angle(11.94524) omega = Angle(334.75006) w = Angle(186.23352) t = Epoch(1990, 10, 28.54502) epoch = Epoch(1990, 10, 6.0) minor = Minor(q, e, i, omega, w, t) lon, lat = minor.heliocentric_ecliptical_position(epoch) assert lon.dms_str(n_dec=1) == "66d 51' 57.8''", \ "ERROR: 1st heliocentric_ecliptical_position() test doesn't match" assert lat.dms_str(n_dec=1) == "11d 56' 14.4''", \ "ERROR: 2nd heliocentric_ecliptical_position() test doesn't match" pymeeus-0.3.6/tests/test_neptune.py000066400000000000000000000115211355545537700174630ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from pymeeus.base import TOL from pymeeus.Neptune import Neptune from pymeeus.Epoch import Epoch # Neptune class def test_neptune_geometric_heliocentric_position(): """Tests the geometric_heliocentric_position() method of Neptune class""" epoch = Epoch(2018, 10, 27.0) lon, lat, r = Neptune.geometric_heliocentric_position(epoch) assert abs(round(lon.to_positive(), 4) - 345.3776) < TOL, \ "ERROR: 1st geometric_heliocentric_position() test doesn't match" assert abs(round(lat, 4) - (-0.9735)) < TOL, \ "ERROR: 2nd geometric_heliocentric_position() test doesn't match" assert abs(round(r, 5) - 29.93966) < TOL, \ "ERROR: 3rd geometric_heliocentric_position() test doesn't match" def test_neptune_orbital_elements_mean_equinox(): """Tests the orbital_elements_mean_equinox() method of Neptune class""" epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Neptune.orbital_elements_mean_equinox(epoch) assert abs(round(l, 6) - 88.321947) < TOL, \ "ERROR: 1st orbital_elements_mean_equinox() test doesn't match" assert abs(round(a, 8) - 30.11038676) < TOL, \ "ERROR: 2nd orbital_elements_mean_equinox() test doesn't match" assert abs(round(e, 7) - 0.0094597) < TOL, \ "ERROR: 3rd orbital_elements_mean_equinox() test doesn't match" assert abs(round(i, 6) - 1.763855) < TOL, \ "ERROR: 4th orbital_elements_mean_equinox() test doesn't match" assert abs(round(ome, 5) - 132.46986) < TOL, \ "ERROR: 5th orbital_elements_mean_equinox() test doesn't match" assert abs(round(arg, 6) - (-83.415521)) < TOL, \ "ERROR: 6th orbital_elements_mean_equinox() test doesn't match" def test_neptune_orbital_elements_j2000(): """Tests the orbital_elements_j2000() method of Neptune class""" epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Neptune.orbital_elements_j2000(epoch) assert abs(round(l, 6) - 87.407029) < TOL, \ "ERROR: 1st orbital_elements_j2000() test doesn't match" assert abs(round(a, 8) - 30.11038676) < TOL, \ "ERROR: 2nd orbital_elements_j2000() test doesn't match" assert abs(round(e, 7) - 0.0094597) < TOL, \ "ERROR: 3rd orbital_elements_j2000() test doesn't match" assert abs(round(i, 6) - 1.770101) < TOL, \ "ERROR: 4th orbital_elements_j2000() test doesn't match" assert abs(round(ome, 5) - 131.74402) < TOL, \ "ERROR: 5th orbital_elements_j2000() test doesn't match" assert abs(round(arg, 6) - (-83.6046)) < TOL, \ "ERROR: 6th orbital_elements_j2000() test doesn't match" def test_neptune_geocentric_position(): """Tests the geocentric_position() method of Neptune class""" epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Neptune.geocentric_position(epoch) assert ra.ra_str(n_dec=1) == "19h 17' 14.5''", \ "ERROR: 1st geocentric_position() test doesn't match" assert dec.dms_str(n_dec=1) == "-21d 34' 15.1''", \ "ERROR: 2nd geocentric_position() test doesn't match" assert elon.dms_str(n_dec=1) == "19d 44' 59.6''", \ "ERROR: 3rd geocentric_position() test doesn't match" def test_neptune_conjunction(): """Tests the conjunction() method of Neptune class""" epoch = Epoch(1993, 10, 1.0) conjunction = Neptune.conjunction(epoch) y, m, d = conjunction.get_date() assert abs(round(y, 0) - 1994) < TOL, \ "ERROR: 1st conjunction() test doesn't match" assert abs(round(m, 0) - 1) < TOL, \ "ERROR: 2nd conjunction() test doesn't match" assert abs(round(d, 4) - 11.3057) < TOL, \ "ERROR: 3rd conjunction() test doesn't match" def test_neptune_opposition(): """Tests the opposition() method of Neptune class""" epoch = Epoch(1846, 8, 1) oppo = Neptune.opposition(epoch) y, m, d = oppo.get_date() assert abs(round(y, 0) - 1846) < TOL, \ "ERROR: 1st opposition() test doesn't match" assert abs(round(m, 0) - 8) < TOL, \ "ERROR: 2nd opposition() test doesn't match" assert abs(round(d, 4) - 20.1623) < TOL, \ "ERROR: 3rd opposition() test doesn't match" pymeeus-0.3.6/tests/test_pluto.py000066400000000000000000000036141355545537700171540ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from pymeeus.base import TOL from pymeeus.Pluto import Pluto from pymeeus.Epoch import Epoch # Pluto class def test_pluto_geometric_heliocentric_position(): """Tests the geometric_heliocentric_position() method of Pluto class""" epoch = Epoch(1992, 10, 13.0) lon, lat, r = Pluto.geometric_heliocentric_position(epoch) assert abs(round(lon.to_positive(), 5) - 232.74071) < TOL, \ "ERROR: 1st geometric_heliocentric_position() test doesn't match" assert abs(round(lat, 5) - 14.58782) < TOL, \ "ERROR: 2nd geometric_heliocentric_position() test doesn't match" assert abs(round(r, 6) - 29.711111) < TOL, \ "ERROR: 3rd geometric_heliocentric_position() test doesn't match" def test_pluto_geocentric_position(): """Tests the geocentric_position() method of Pluto class""" epoch = Epoch(1992, 10, 13.0) ra, dec = Pluto.geocentric_position(epoch) assert ra.ra_str(n_dec=1) == "15h 31' 43.7''", \ "ERROR: 1st geocentric_position() test doesn't match" assert dec.dms_str(n_dec=0) == "-4d 27' 29.0''", \ "ERROR: 2nd geocentric_position() test doesn't match" pymeeus-0.3.6/tests/test_saturn.py000066400000000000000000000165441355545537700173330ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from pymeeus.base import TOL from pymeeus.Saturn import Saturn from pymeeus.Epoch import Epoch # Saturn class def test_saturn_geometric_heliocentric_position(): """Tests the geometric_heliocentric_position() method of Saturn class""" epoch = Epoch(2018, 10, 27.0) lon, lat, r = Saturn.geometric_heliocentric_position(epoch) assert abs(round(lon.to_positive(), 4) - 279.5108) < TOL, \ "ERROR: 1st geometric_heliocentric_position() test doesn't match" assert abs(round(lat, 4) - 0.6141) < TOL, \ "ERROR: 2nd geometric_heliocentric_position() test doesn't match" assert abs(round(r, 5) - 10.06266) < TOL, \ "ERROR: 3rd geometric_heliocentric_position() test doesn't match" def test_saturn_orbital_elements_mean_equinox(): """Tests the orbital_elements_mean_equinox() method of Saturn class""" epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Saturn.orbital_elements_mean_equinox(epoch) assert abs(round(l, 6) - 131.196871) < TOL, \ "ERROR: 1st orbital_elements_mean_equinox() test doesn't match" assert abs(round(a, 8) - 9.55490779) < TOL, \ "ERROR: 2nd orbital_elements_mean_equinox() test doesn't match" assert abs(round(e, 7) - 0.0553209) < TOL, \ "ERROR: 3rd orbital_elements_mean_equinox() test doesn't match" assert abs(round(i, 6) - 2.486426) < TOL, \ "ERROR: 4th orbital_elements_mean_equinox() test doesn't match" assert abs(round(ome, 5) - 114.23974) < TOL, \ "ERROR: 5th orbital_elements_mean_equinox() test doesn't match" assert abs(round(arg, 6) - (-19.896331)) < TOL, \ "ERROR: 6th orbital_elements_mean_equinox() test doesn't match" def test_saturn_orbital_elements_j2000(): """Tests the orbital_elements_j2000() method of Saturn class""" epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Saturn.orbital_elements_j2000(epoch) assert abs(round(l, 6) - 130.28188) < TOL, \ "ERROR: 1st orbital_elements_j2000() test doesn't match" assert abs(round(a, 8) - 9.55490779) < TOL, \ "ERROR: 2nd orbital_elements_j2000() test doesn't match" assert abs(round(e, 7) - 0.0553209) < TOL, \ "ERROR: 3rd orbital_elements_j2000() test doesn't match" assert abs(round(i, 6) - 2.490529) < TOL, \ "ERROR: 4th orbital_elements_j2000() test doesn't match" assert abs(round(ome, 5) - 113.49736) < TOL, \ "ERROR: 5th orbital_elements_j2000() test doesn't match" assert abs(round(arg, 6) - (-20.068943)) < TOL, \ "ERROR: 6th orbital_elements_j2000() test doesn't match" def test_saturn_geocentric_position(): """Tests the geocentric_position() method of Saturn class""" epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Saturn.geocentric_position(epoch) assert ra.ra_str(n_dec=1) == "21h 11' 41.8''", \ "ERROR: 1st geocentric_position() test doesn't match" assert dec.dms_str(n_dec=1) == "-17d 15' 40.8''", \ "ERROR: 2nd geocentric_position() test doesn't match" assert elon.dms_str(n_dec=1) == "46d 51' 47.7''", \ "ERROR: 3rd geocentric_position() test doesn't match" def test_saturn_conjunction(): """Tests the conjunction() method of Saturn class""" epoch = Epoch(2125, 6, 1.0) conjunction = Saturn.conjunction(epoch) y, m, d = conjunction.get_date() assert abs(round(y, 0) - 2125) < TOL, \ "ERROR: 1st conjunction() test doesn't match" assert abs(round(m, 0) - 8) < TOL, \ "ERROR: 2nd conjunction() test doesn't match" assert abs(round(d, 4) - 26.4035) < TOL, \ "ERROR: 3rd conjunction() test doesn't match" def test_saturn_opposition(): """Tests the opposition() method of Saturn class""" epoch = Epoch(-6, 9, 1.0) oppo = Saturn.opposition(epoch) y, m, d = oppo.get_date() assert abs(round(y, 0) - (-6)) < TOL, \ "ERROR: 1st opposition() test doesn't match" assert abs(round(m, 0) - 9) < TOL, \ "ERROR: 2nd opposition() test doesn't match" assert abs(round(d, 4) - 14.3709) < TOL, \ "ERROR: 3rd opposition() test doesn't match" def test_saturn_station_longitude_1(): """Tests the station_longitude_1() method of Saturn class""" epoch = Epoch(2018, 11, 1.0) sta1 = Saturn.station_longitude_1(epoch) y, m, d = sta1.get_date() assert abs(round(y, 0) - 2018) < TOL, \ "ERROR: 1st station_longitude_1() test doesn't match" assert abs(round(m, 0) - 4) < TOL, \ "ERROR: 2nd station_longitude_1() test doesn't match" assert abs(round(d, 4) - 17.9433) < TOL, \ "ERROR: 3rd station_longitude_1() test doesn't match" def test_saturn_station_longitude_2(): """Tests the station_longitude_2() method of Saturn class""" epoch = Epoch(2018, 11, 1.0) sta2 = Saturn.station_longitude_2(epoch) y, m, d = sta2.get_date() assert abs(round(y, 0) - 2018) < TOL, \ "ERROR: 1st station_longitude_2() test doesn't match" assert abs(round(m, 0) - 9) < TOL, \ "ERROR: 2nd station_longitude_2() test doesn't match" assert abs(round(d, 4) - 6.4175) < TOL, \ "ERROR: 3rd station_longitude_2() test doesn't match" def test_saturn_perihelion_aphelion(): """Tests the perihelion_aphelion() method of Saturn class""" epoch = Epoch(2030, 1, 1.0) e = Saturn.perihelion_aphelion(epoch) y, m, d, h, mi, s = e.get_full_date() assert abs(y - 2032) < TOL, \ "ERROR: 1st perihelion_aphelion() test doesn't match" assert abs(m - 11) < TOL, \ "ERROR: 2nd perihelion_aphelion() test doesn't match" assert abs(d - 28) < TOL, \ "ERROR: 3rd perihelion_aphelion() test doesn't match" epoch = Epoch(1925, 1, 1.0) e = Saturn.perihelion_aphelion(epoch, perihelion=False) y, m, d, h, mi, s = e.get_full_date() assert abs(y - 1929) < TOL, \ "ERROR: 4th perihelion_aphelion() test doesn't match" assert abs(m - 11) < TOL, \ "ERROR: 5th perihelion_aphelion() test doesn't match" assert abs(d - 11) < TOL, \ "ERROR: 6th perihelion_aphelion() test doesn't match" def test_saturn_passage_nodes(): """Tests the passage_nodes() method of Saturn class""" epoch = Epoch(2019, 1, 1) time, r = Saturn.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) r = round(r, 4) assert abs(y - 2034) < TOL, \ "ERROR: 1st passage_nodes() test doesn't match" assert abs(m - 5) < TOL, \ "ERROR: 2nd passage_nodes() test doesn't match" assert abs(d - 30.2) < TOL, \ "ERROR: 3rd passage_nodes() test doesn't match" assert abs(r - 9.0546) < TOL, \ "ERROR: 4th passage_nodes() test doesn't match" pymeeus-0.3.6/tests/test_sun.py000066400000000000000000000161171355545537700166200ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from pymeeus.base import TOL from pymeeus.Sun import Sun from pymeeus.Epoch import Epoch # Sun module def test_sun_true_longitude_coarse(): """Tests the true_longitude_coarse() method of Sun class""" epoch = Epoch(1992, 10, 13) true_lon, r = Sun.true_longitude_coarse(epoch) assert true_lon.dms_str(n_dec=0) == "199d 54' 36.0''", \ "ERROR: 1st true_longitude_coarse() test, 'true_lon' doesn't match" assert abs(round(r, 5) - 0.99766) < TOL, \ "ERROR: 2nd true_longitude_coarse() test, 'r' value doesn't match" def test_sun_apparent_longitude_coarse(): """Tests apparent_longitude_coarse() method of Sun class""" epoch = Epoch(1992, 10, 13) alon, r = Sun.apparent_longitude_coarse(epoch) assert alon.dms_str(n_dec=0) == "199d 54' 32.0''", \ "ERROR: 1st apparent_longitude_coarse() test, 'alon' doesn't match" def test_sun_apparent_rightascension_declination_coarse(): """Tests apparent_rightascension_declination_coarse() method of Sun class""" epoch = Epoch(1992, 10, 13) ra, delta, r = Sun.apparent_rightascension_declination_coarse(epoch) assert ra.ra_str(n_dec=1) == "13h 13' 31.4''", \ "ERROR: 1st rightascension_declination_coarse() test doesn't match" assert delta.dms_str(n_dec=0) == "-7d 47' 6.0''", \ "ERROR: 2nd rightascension_declination_coarse() test doesn't match" def test_sun_geometric_geocentric_position(): """Tests the geometric_geocentric_position() method of Sun class""" epoch = Epoch(1992, 10, 13.0) lon, lat, r = Sun.geometric_geocentric_position(epoch, tofk5=False) assert abs(round(lon.to_positive(), 6) - 199.907297) < TOL, \ "ERROR: 1st geometric_geocentric_position() test, 'lon' doesn't match" assert lat.dms_str(n_dec=3) == "0.744''", \ "ERROR: 2nd geometric_geocentric_position() test, 'lat' doesn't match" assert abs(round(r, 8) - 0.99760852) < TOL, \ "ERROR: 3rd geometric_geocentric_position() test, 'r' doesn't match" def test_sun_apparent_geocentric_position(): """Tests the apparent_geocentric_position() method of Sun class""" epoch = Epoch(1992, 10, 13.0) lon, lat, r = Sun.apparent_geocentric_position(epoch) assert lon.to_positive().dms_str(n_dec=3) == "199d 54' 21.548''", \ "ERROR: 1st apparent_geocentric_position() test, 'lon' doesn't match" assert lat.dms_str(n_dec=3) == "0.721''", \ "ERROR: 2nd apparent_geocentric_position() test, 'lat' doesn't match" assert abs(round(r, 8) - 0.99760852) < TOL, \ "ERROR: 3rd apparent_geocentric_position() test, 'r' doesn't match" def test_rectangular_coordinates_mean_equinox(): """Tests rectangular_coordinates_mean_equinox() method of Sun class""" epoch = Epoch(1992, 10, 13.0) x, y, z = Sun.rectangular_coordinates_mean_equinox(epoch) assert abs(round(x, 7) - (-0.9379963)) < TOL, \ "ERROR: 1st rectangular_coordinates_mean_equinox(), 'x' doesn't match" assert abs(round(y, 6) - (-0.311654)) < TOL, \ "ERROR: 2nd rectangular_coordinates_mean_equinox(), 'y' doesn't match" assert abs(round(z, 7) - (-0.1351207)) < TOL, \ "ERROR: 3rd rectangular_coordinates_mean_equinox(), 'z' doesn't match" def test_rectangular_coordinates_j2000(): """Tests rectangular_coordinates_j2000() method of Sun class""" epoch = Epoch(1992, 10, 13.0) x, y, z = Sun.rectangular_coordinates_j2000(epoch) assert abs(round(x, 8) - (-0.93740485)) < TOL, \ "ERROR: 1st rectangular_coordinates_j2000() test, 'x' doesn't match" assert abs(round(y, 8) - (-0.3131474)) < TOL, \ "ERROR: 2nd rectangular_coordinates_j2000() test, 'y' doesn't match" assert abs(round(z, 8) - (-0.13577045)) < TOL, \ "ERROR: 3rd rectangular_coordinates_j2000() test, 'z' doesn't match" def test_rectangular_coordinates_b1950(): """Tests rectangular_coordinates_b1950() method of Sun class""" epoch = Epoch(1992, 10, 13.0) x, y, z = Sun.rectangular_coordinates_b1950(epoch) assert abs(round(x, 8) - (-0.94149557)) < TOL, \ "ERROR: 1st rectangular_coordinates_b1950() test, 'x' doesn't match" assert abs(round(y, 8) - (-0.30259922)) < TOL, \ "ERROR: 2nd rectangular_coordinates_b1950() test, 'y' doesn't match" assert abs(round(z, 8) - (-0.11578695)) < TOL, \ "ERROR: 3rd rectangular_coordinates_b1950() test, 'z' doesn't match" def test_rectangular_coordinates_equinox(): """Tests rectangular_coordinates_equinox() method of Sun class""" epoch = Epoch(1992, 10, 13.0) e_equinox = Epoch(2467616.0) x, y, z = Sun.rectangular_coordinates_equinox(epoch, e_equinox) assert abs(round(x, 8) - (-0.93368986)) < TOL, \ "ERROR: 1st rectangular_coordinates_equinox() test, 'x' doesn't match" assert abs(round(y, 8) - (-0.32235085)) < TOL, \ "ERROR: 2nd rectangular_coordinates_equinox() test, 'y' doesn't match" assert abs(round(z, 8) - (-0.13977098)) < TOL, \ "ERROR: 3rd rectangular_coordinates_equinox() test, 'z' doesn't match" def test_sun_get_equinox_solstice(): """Tests the get_equinox_solstice() method of Sun class""" epoch = Sun.get_equinox_solstice(1962, target="summer") y, m, d, h, mi, s = epoch.get_full_date() st = "{}/{}/{} {}:{}:{}".format(y, m, d, h, mi, round(s, 0)) assert st == "1962/6/21 21:24:42.0", \ "ERROR: 1st get_equinox_solstice() test, time stamp doesn't match" def test_sun_equation_of_time(): """Tests the equation_of_time() method of Sun class""" epoch = Epoch(1992, 10, 13.0) m, s = Sun.equation_of_time(epoch) assert abs(m) - 13 < TOL, \ "ERROR: 1st equation_of_time() test, 'm' doesn't match" assert abs(round(s, 1)) - 42.6 < TOL, \ "ERROR: 2nd equation_of_time() test, 's' doesn't match" def test_sun_ephemeris_physical_observations(): """Tests the ephemeris_physical_observations() method of Sun class""" epoch = Epoch(1992, 10, 13) p, b0, l0 = Sun.ephemeris_physical_observations(epoch) assert abs(round(p, 2)) - 26.27 < TOL, \ "ERROR: 1st ephemeris_physical_observations() test, 'p' doesn't match" assert abs(round(b0, 2)) - 5.99 < TOL, \ "ERROR: 2nd ephemeris_physical_observations() test, 'b0' doesn't match" assert abs(round(l0, 2)) - 238.63 < TOL, \ "ERROR: 3rd ephemeris_physical_observations() test, 'l0' doesn't match" pymeeus-0.3.6/tests/test_uranus.py000066400000000000000000000144651355545537700173340ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from pymeeus.base import TOL from pymeeus.Uranus import Uranus from pymeeus.Epoch import Epoch # Uranus class def test_uranus_geometric_heliocentric_position(): """Tests the geometric_heliocentric_position() method of Uranus class""" epoch = Epoch(2018, 10, 27.0) lon, lat, r = Uranus.geometric_heliocentric_position(epoch) assert abs(round(lon.to_positive(), 4) - 30.5888) < TOL, \ "ERROR: 1st geometric_heliocentric_position() test doesn't match" assert abs(round(lat, 4) - (-0.5315)) < TOL, \ "ERROR: 2nd geometric_heliocentric_position() test doesn't match" assert abs(round(r, 5) - 19.86964) < TOL, \ "ERROR: 3rd geometric_heliocentric_position() test doesn't match" def test_uranus_orbital_elements_mean_equinox(): """Tests the orbital_elements_mean_equinox() method of Uranus class""" epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Uranus.orbital_elements_mean_equinox(epoch) assert abs(round(l, 6) - 235.517526) < TOL, \ "ERROR: 1st orbital_elements_mean_equinox() test doesn't match" assert abs(round(a, 8) - 19.21844604) < TOL, \ "ERROR: 2nd orbital_elements_mean_equinox() test doesn't match" assert abs(round(e, 7) - 0.0463634) < TOL, \ "ERROR: 3rd orbital_elements_mean_equinox() test doesn't match" assert abs(round(i, 6) - 0.77372) < TOL, \ "ERROR: 4th orbital_elements_mean_equinox() test doesn't match" assert abs(round(ome, 5) - 74.34776) < TOL, \ "ERROR: 5th orbital_elements_mean_equinox() test doesn't match" assert abs(round(arg, 6) - 99.630865) < TOL, \ "ERROR: 6th orbital_elements_mean_equinox() test doesn't match" def test_uranus_orbital_elements_j2000(): """Tests the orbital_elements_j2000() method of Uranus class""" epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Uranus.orbital_elements_j2000(epoch) assert abs(round(l, 6) - 234.602641) < TOL, \ "ERROR: 1st orbital_elements_j2000() test doesn't match" assert abs(round(a, 8) - 19.21844604) < TOL, \ "ERROR: 2nd orbital_elements_j2000() test doesn't match" assert abs(round(e, 7) - 0.0463634) < TOL, \ "ERROR: 3rd orbital_elements_j2000() test doesn't match" assert abs(round(i, 6) - 0.772094) < TOL, \ "ERROR: 4th orbital_elements_j2000() test doesn't match" assert abs(round(ome, 5) - 74.05468) < TOL, \ "ERROR: 5th orbital_elements_j2000() test doesn't match" assert abs(round(arg, 6) - 99.009058) < TOL, \ "ERROR: 6th orbital_elements_j2000() test doesn't match" def test_uranus_geocentric_position(): """Tests the geocentric_position() method of Uranus class""" epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Uranus.geocentric_position(epoch) assert ra.ra_str(n_dec=1) == "19h 13' 48.7''", \ "ERROR: 1st geocentric_position() test doesn't match" assert dec.dms_str(n_dec=1) == "-22d 46' 13.0''", \ "ERROR: 2nd geocentric_position() test doesn't match" assert elon.dms_str(n_dec=1) == "18d 44' 18.7''", \ "ERROR: 3rd geocentric_position() test doesn't match" def test_uranus_conjunction(): """Tests the conjunction() method of Uranus class""" epoch = Epoch(1993, 10, 1.0) conjunction = Uranus.conjunction(epoch) y, m, d = conjunction.get_date() assert abs(round(y, 0) - 1994) < TOL, \ "ERROR: 1st conjunction() test doesn't match" assert abs(round(m, 0) - 1) < TOL, \ "ERROR: 2nd conjunction() test doesn't match" assert abs(round(d, 4) - 12.7365) < TOL, \ "ERROR: 3rd conjunction() test doesn't match" def test_uranus_opposition(): """Tests the opposition() method of Uranus class""" epoch = Epoch(1780, 12, 1.0) oppo = Uranus.opposition(epoch) y, m, d = oppo.get_date() assert abs(round(y, 0) - 1780) < TOL, \ "ERROR: 1st opposition() test doesn't match" assert abs(round(m, 0) - 12) < TOL, \ "ERROR: 2nd opposition() test doesn't match" assert abs(round(d, 4) - 17.5998) < TOL, \ "ERROR: 3rd opposition() test doesn't match" def test_uranus_perihelion_aphelion(): """Tests the perihelion_aphelion() method of Uranus class""" epoch = Epoch(1960, 1, 1.0) e = Uranus.perihelion_aphelion(epoch) y, m, d, h, mi, s = e.get_full_date() assert abs(y - 1966) < TOL, \ "ERROR: 1st perihelion_aphelion() test doesn't match" assert abs(m - 5) < TOL, \ "ERROR: 2nd perihelion_aphelion() test doesn't match" assert abs(d - 18) < TOL, \ "ERROR: 3rd perihelion_aphelion() test doesn't match" epoch = Epoch(2009, 1, 1.0) e = Uranus.perihelion_aphelion(epoch, perihelion=False) y, m, d, h, mi, s = e.get_full_date() assert abs(y - 2009) < TOL, \ "ERROR: 4th perihelion_aphelion() test doesn't match" assert abs(m - 2) < TOL, \ "ERROR: 5th perihelion_aphelion() test doesn't match" assert abs(d - 23) < TOL, \ "ERROR: 6th perihelion_aphelion() test doesn't match" def test_uranus_passage_nodes(): """Tests the passage_nodes() method of Uranus class""" epoch = Epoch(2019, 1, 1) time, r = Uranus.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) r = round(r, 4) assert abs(y - 2028) < TOL, \ "ERROR: 1st passage_nodes() test doesn't match" assert abs(m - 8) < TOL, \ "ERROR: 2nd passage_nodes() test doesn't match" assert abs(d - 23.2) < TOL, \ "ERROR: 3rd passage_nodes() test doesn't match" assert abs(r - 19.3201) < TOL, \ "ERROR: 4th passage_nodes() test doesn't match" pymeeus-0.3.6/tests/test_venus.py000066400000000000000000000230541355545537700171510ustar00rootroot00000000000000# -*- coding: utf-8 -*- # PyMeeus: Python module implementing astronomical algorithms. # Copyright (C) 2018 Dagoberto Salazar # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . from pymeeus.base import TOL from pymeeus.Venus import Venus from pymeeus.Epoch import Epoch from pymeeus.Angle import Angle # Venus class def test_venus_geometric_heliocentric_position(): """Tests the geometric_heliocentric_position() method of Venus class""" epoch = Epoch(1992, 12, 20.0) lon, lat, r = Venus.geometric_heliocentric_position(epoch, tofk5=False) assert abs(round(lon.to_positive(), 5) - 26.11412) < TOL, \ "ERROR: 1st geometric_heliocentric_position() test doesn't match" assert abs(round(lat, 4) - (-2.6206)) < TOL, \ "ERROR: 2nd geometric_heliocentric_position() test doesn't match" assert abs(round(r, 6) - 0.724602) < TOL, \ "ERROR: 3rd geometric_heliocentric_position() test doesn't match" def test_venus_orbital_elements_mean_equinox(): """Tests the orbital_elements_mean_equinox() method of Venus class""" epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Venus.orbital_elements_mean_equinox(epoch) assert abs(round(l, 6) - 338.646306) < TOL, \ "ERROR: 1st orbital_elements_mean_equinox() test doesn't match" assert abs(round(a, 8) - 0.72332982) < TOL, \ "ERROR: 2nd orbital_elements_mean_equinox() test doesn't match" assert abs(round(e, 7) - 0.0067407) < TOL, \ "ERROR: 3rd orbital_elements_mean_equinox() test doesn't match" assert abs(round(i, 6) - 3.395319) < TOL, \ "ERROR: 4th orbital_elements_mean_equinox() test doesn't match" assert abs(round(ome, 5) - 77.27012) < TOL, \ "ERROR: 5th orbital_elements_mean_equinox() test doesn't match" assert abs(round(arg, 6) - 55.211257) < TOL, \ "ERROR: 6th orbital_elements_mean_equinox() test doesn't match" def test_venus_orbital_elements_j2000(): """Tests the orbital_elements_j2000() method of Venus class""" epoch = Epoch(2065, 6, 24.0) l, a, e, i, ome, arg = Venus.orbital_elements_j2000(epoch) assert abs(round(l, 6) - 337.731227) < TOL, \ "ERROR: 1st orbital_elements_j2000() test doesn't match" assert abs(round(a, 8) - 0.72332982) < TOL, \ "ERROR: 2nd orbital_elements_j2000() test doesn't match" assert abs(round(e, 7) - 0.0067407) < TOL, \ "ERROR: 3rd orbital_elements_j2000() test doesn't match" assert abs(round(i, 6) - 3.394087) < TOL, \ "ERROR: 4th orbital_elements_j2000() test doesn't match" assert abs(round(ome, 5) - 76.49782) < TOL, \ "ERROR: 5th orbital_elements_j2000() test doesn't match" assert abs(round(arg, 6) - 55.068476) < TOL, \ "ERROR: 6th orbital_elements_j2000() test doesn't match" def test_venus_geocentric_position(): """Tests the geocentric_position() method of Venus class""" epoch = Epoch(1992, 12, 20.0) ra, dec, elon = Venus.geocentric_position(epoch) assert ra.ra_str(n_dec=1) == "21h 4' 41.5''", \ "ERROR: 1st geocentric_position() test doesn't match" assert dec.dms_str(n_dec=1) == "-18d 53' 16.8''", \ "ERROR: 2nd geocentric_position() test doesn't match" assert elon.dms_str(n_dec=1) == "44d 46' 8.9''", \ "ERROR: 3rd geocentric_position() test doesn't match" def test_venus_inferior_conjunction(): """Tests the inferior_conjunction() method of Venus class""" epoch = Epoch(1882, 12, 1.0) conjunction = Venus.inferior_conjunction(epoch) y, m, d = conjunction.get_date() assert abs(round(y, 0) - 1882) < TOL, \ "ERROR: 1st inferior_conjunction() test doesn't match" assert abs(round(m, 0) - 12) < TOL, \ "ERROR: 2nd inferior_conjunction() test doesn't match" assert abs(round(d, 1) - 6.7) < TOL, \ "ERROR: 3rd inferior_conjunction() test doesn't match" def test_venus_superior_conjunction(): """Tests the superior_conjunction() method of Venus class""" epoch = Epoch(1993, 10, 1.0) conjunction = Venus.superior_conjunction(epoch) y, m, d = conjunction.get_date() assert abs(round(y, 0) - 1994) < TOL, \ "ERROR: 1st superior_conjunction() test doesn't match" assert abs(round(m, 0) - 1) < TOL, \ "ERROR: 2nd superior_conjunction() test doesn't match" assert abs(round(d, 2) - 17.05) < TOL, \ "ERROR: 3rd superior_conjunction() test doesn't match" def test_venus_western_elongation(): """Tests the western_elongation() method of Venus class""" epoch = Epoch(2019, 1, 1.0) time, elongation = Venus.western_elongation(epoch) y, m, d = time.get_date() assert abs(round(y, 0) - 2019) < TOL, \ "ERROR: 1st western_elongation() test doesn't match" assert abs(round(m, 0) - 1) < TOL, \ "ERROR: 2nd western_elongation() test doesn't match" assert abs(round(d, 4) - 6.1895) < TOL, \ "ERROR: 3rd western_elongation() test doesn't match" assert abs(round(elongation, 4) - 46.9571) < TOL, \ "ERROR: 4th western_elongation() test doesn't match" def test_venus_eastern_elongation(): """Tests the eastern_elongation() method of Venus class""" epoch = Epoch(2019, 10, 1.0) time, elongation = Venus.eastern_elongation(epoch) y, m, d = time.get_date() assert abs(round(y, 0) - 2020) < TOL, \ "ERROR: 1st eastern_elongation() test doesn't match" assert abs(round(m, 0) - 3) < TOL, \ "ERROR: 2nd eastern_elongation() test doesn't match" assert abs(round(d, 4) - 24.9179) < TOL, \ "ERROR: 3rd eastern_elongation() test doesn't match" assert abs(round(elongation, 4) - 46.078) < TOL, \ "ERROR: 3rd eastern_elongation() test doesn't match" def test_venus_station_longitude_1(): """Tests the station_longitude_1() method of Venus class""" epoch = Epoch(2018, 12, 1.0) sta1 = Venus.station_longitude_1(epoch) y, m, d = sta1.get_date() assert abs(round(y, 0) - 2018) < TOL, \ "ERROR: 1st station_longitude_1() test doesn't match" assert abs(round(m, 0) - 10) < TOL, \ "ERROR: 2nd station_longitude_1() test doesn't match" assert abs(round(d, 4) - 5.7908) < TOL, \ "ERROR: 3rd station_longitude_1() test doesn't match" def test_venus_station_longitude_2(): """Tests the station_longitude_2() method of Venus class""" epoch = Epoch(2018, 12, 1.0) sta2 = Venus.station_longitude_2(epoch) y, m, d = sta2.get_date() assert abs(round(y, 0) - 2018) < TOL, \ "ERROR: 1st station_longitude_2() test doesn't match" assert abs(round(m, 0) - 11) < TOL, \ "ERROR: 2nd station_longitude_2() test doesn't match" assert abs(round(d, 4) - 16.439) < TOL, \ "ERROR: 3rd station_longitude_2() test doesn't match" def test_venus_perihelion_aphelion(): """Tests the perihelion_aphelion() method of Venus class""" epoch = Epoch(1978, 10, 15.0) e = Venus.perihelion_aphelion(epoch) y, m, d, h, mi, s = e.get_full_date() assert abs(y - 1978) < TOL, \ "ERROR: 1st perihelion_aphelion() test doesn't match" assert abs(m - 12) < TOL, \ "ERROR: 2nd perihelion_aphelion() test doesn't match" assert abs(d - 31) < TOL, \ "ERROR: 3rd perihelion_aphelion() test doesn't match" assert abs(h - 4) < TOL, \ "ERROR: 4th perihelion_aphelion() test doesn't match" epoch = Epoch(1979, 2, 1.0) e = Venus.perihelion_aphelion(epoch, perihelion=False) y, m, d, h, mi, s = e.get_full_date() assert abs(y - 1979) < TOL, \ "ERROR: 5th perihelion_aphelion() test doesn't match" assert abs(m - 4) < TOL, \ "ERROR: 6th perihelion_aphelion() test doesn't match" assert abs(d - 22) < TOL, \ "ERROR: 7th perihelion_aphelion() test doesn't match" assert abs(h - 12) < TOL, \ "ERROR: 8th perihelion_aphelion() test doesn't match" def test_venus_passage_nodes(): """Tests the passage_nodes() method of Venus class""" epoch = Epoch(1979, 1, 1) time, r = Venus.passage_nodes(epoch) y, m, d = time.get_date() d = round(d, 1) r = round(r, 4) assert abs(y - 1978) < TOL, \ "ERROR: 1st passage_nodes() test doesn't match" assert abs(m - 11) < TOL, \ "ERROR: 2nd passage_nodes() test doesn't match" assert abs(d - 27.4) < TOL, \ "ERROR: 3rd passage_nodes() test doesn't match" assert abs(r - 0.7205) < TOL, \ "ERROR: 4th passage_nodes() test doesn't match" def test_venus_illuminated_fraction(): """Tests the illuminated_fraction() method of Venus class""" epoch = Epoch(1992, 12, 20) k = Venus.illuminated_fraction(epoch) assert abs(round(k, 2) - 0.64) < TOL, \ "ERROR: 1st illuminated_fraction() test doesn't match" def test_venus_magnitude(): """Tests the magnitude() method of Venus class""" sun_dist = 0.724604 earth_dist = 0.910947 phase_angle = Angle(72.96) m = Venus.magnitude(sun_dist, earth_dist, phase_angle) assert abs(round(m, 1) - (-3.8)) < TOL, \ "ERROR: 1st magnitude() test doesn't match"