From 6cdf4d5197e5b122f4683a2c5c6a102ce6eda650 Mon Sep 17 00:00:00 2001 From: Pablo <42.pablo.ms@gmail.com> Date: Mon, 13 Jul 2020 01:07:56 +0200 Subject: [PATCH] first commit --- .drone.yml | 12 + .gitignore | 3 + Dockerfile | 11 + LICENSE | 625 ++++++++++++++++++++++++ README.md | 5 + dataset/.gitignore | 4 + dataset/README.md | 2 + docker-compose.yml | 27 + gunicorn_conf.py | 46 ++ main.py | 196 ++++++++ probeutils/utils.py | 293 +++++++++++ requirements.txt | 3 + static/css/main.css | 265 ++++++++++ static/css/normalize.css | 349 +++++++++++++ static/img/castaway.jpg | Bin 0 -> 21292 bytes static/img/fire.jpg | Bin 0 -> 51747 bytes static/img/gopro.png | Bin 0 -> 93659 bytes static/img/phycoctd.jpg | Bin 0 -> 19829 bytes static/img/placeholder.svg | 1 + static/img/suna.jpg | Bin 0 -> 7922 bytes static/js/plugins.js | 28 ++ static/js/vendor/jquery-3.4.1.min.js | 2 + static/js/vendor/modernizr-3.8.0.min.js | 3 + templates/base.html | 56 +++ templates/error.html | 11 + templates/regenerate.html | 22 + templates/successful.html | 33 ++ templates/upload.html | 127 +++++ 28 files changed, 2124 insertions(+) create mode 100644 .drone.yml create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 README.md create mode 100644 dataset/.gitignore create mode 100644 dataset/README.md create mode 100644 docker-compose.yml create mode 100644 gunicorn_conf.py create mode 100644 main.py create mode 100644 probeutils/utils.py create mode 100644 requirements.txt create mode 100644 static/css/main.css create mode 100644 static/css/normalize.css create mode 100644 static/img/castaway.jpg create mode 100644 static/img/fire.jpg create mode 100644 static/img/gopro.png create mode 100644 static/img/phycoctd.jpg create mode 100644 static/img/placeholder.svg create mode 100644 static/img/suna.jpg create mode 100644 static/js/plugins.js create mode 100644 static/js/vendor/jquery-3.4.1.min.js create mode 100644 static/js/vendor/modernizr-3.8.0.min.js create mode 100644 templates/base.html create mode 100644 templates/error.html create mode 100644 templates/regenerate.html create mode 100644 templates/successful.html create mode 100644 templates/upload.html diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..12f0804 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,12 @@ +kind: pipeline +type: exec +name: default + +platform: + os: linux + arch: amd64 + +steps: +- name: run + commands: + - docker-compose up -d --remove-orphans --build \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..268f784 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +__pycache__/ +.vscode/ +TODO.md \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5126449 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM tiangolo/meinheld-gunicorn-flask:python3.7 + +RUN pip install flask + +COPY ./requirements.txt /app/requirements.txt + +WORKDIR /app + +RUN pip install -r requirements.txt + +COPY . /app \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..e142a52 --- /dev/null +++ b/LICENSE @@ -0,0 +1,625 @@ +GNU GENERAL PUBLIC LICENSE + +Version 3, 29 June 2007 + +Copyright © 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 . diff --git a/README.md b/README.md new file mode 100644 index 0000000..9b80e59 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# sdc-lifecycle + +[![Build Status](https://drone.med.upct.es/api/badges/ocean/sdc-lifecycle/status.svg)](https://drone.med.upct.es/ocean/sdc-lifecycle) + +Web tool to upload, process and store data collected during the campaigns \ No newline at end of file diff --git a/dataset/.gitignore b/dataset/.gitignore new file mode 100644 index 0000000..78dc380 --- /dev/null +++ b/dataset/.gitignore @@ -0,0 +1,4 @@ +* +# Except this files +!.gitignore +!README.md diff --git a/dataset/README.md b/dataset/README.md new file mode 100644 index 0000000..bef6593 --- /dev/null +++ b/dataset/README.md @@ -0,0 +1,2 @@ +This folder contains all the sensor data uploaded to the server + diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..ca58d4f --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,27 @@ +version: '3.7' + +services: + + ## TODO: Add true proxy WSGI Server instead of running the builtin + uploadtool: + build: . + restart: unless-stopped + volumes: + - /mnt/storage/dataset-neo:/app/dataset + labels: + - traefik.enable=true + - traefik.http.routers.sdc-uploader.entryPoints=web-secure + - traefik.http.routers.sdc-uploader.rule=Host(`upload.med.upct.es`) + - traefik.http.routers.sdc-uploader.tls.certresolver=default + + download: + image: abiosoft/caddy + restart: unless-stopped + volumes: + - /mnt/storage/dataset-neo:/srv + labels: + - traefik.enable=true + - traefik.http.routers.sdc-download.entryPoints=web-secure + - traefik.http.routers.sdc-download.rule=Host(`download.med.upct.es`) + - traefik.http.routers.sdc-download.tls.certresolver=default + - traefik.http.services.sdc-download.loadbalancer.server.port=2015 \ No newline at end of file diff --git a/gunicorn_conf.py b/gunicorn_conf.py new file mode 100644 index 0000000..f26b4bf --- /dev/null +++ b/gunicorn_conf.py @@ -0,0 +1,46 @@ +# cat /gunicorn_conf.py inside container +# Copied to project so we can tune max_content_length +from __future__ import print_function + +import json +import multiprocessing +import os + +workers_per_core_str = os.getenv("WORKERS_PER_CORE", "2") +web_concurrency_str = os.getenv("WEB_CONCURRENCY", None) +host = os.getenv("HOST", "0.0.0.0") +port = os.getenv("PORT", "80") +bind_env = os.getenv("BIND", None) +use_loglevel = os.getenv("LOG_LEVEL", "info") +if bind_env: + use_bind = bind_env +else: + use_bind = "{host}:{port}".format(host=host, port=port) + +cores = multiprocessing.cpu_count() +workers_per_core = float(workers_per_core_str) +default_web_concurrency = workers_per_core * cores +if web_concurrency_str: + web_concurrency = int(web_concurrency_str) + assert web_concurrency > 0 +else: + web_concurrency = int(default_web_concurrency) + +# Gunicorn config variables +loglevel = use_loglevel +workers = web_concurrency +bind = use_bind +keepalive = 120 +errorlog = "-" + +# For debugging and testing +log_data = { + "loglevel": loglevel, + "workers": workers, + "bind": bind, + # Additional, non-gunicorn variables + "workers_per_core": workers_per_core, + "host": host, + "port": port, +} +print(json.dumps(log_data)) \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..50a99ec --- /dev/null +++ b/main.py @@ -0,0 +1,196 @@ +from flask import Flask, render_template, request +from datetime import datetime +from probeutils import utils as probeutils +import re +import fnmatch +import os +import meinheld + + +app = Flask(__name__) + +app.config['UPLOAD_FOLDER'] = "./dataset/" + +app.config['MAX_CONTENT_LENGTH'] = 10000000000 # 10GB +meinheld.set_max_content_length(100*1024*1024) + +app.config['DOWNLOADS_URL'] = "https://download.med.upct.es/" + +probes = [{ + 'sensor': 'SUNA', + 'img': 'suna.jpg', + 'active': ['SATSLF0037'], + 'stations': ['M1', 'M2', 'M3'] +}, { + 'sensor': 'FIRe', + 'img': 'fire.jpg', + 'active': ['SATFIS0006'], + 'stations': ['M1', 'M2', 'M3'] +}, { + 'sensor': 'PhycoCTD', + 'img': 'phycoctd.jpg', + 'active': ['phyco_v1', 'phyco_v2'], + 'stations': ['M1', 'M2', 'M3'] +}, { + 'sensor': 'CastAway', + 'img': 'castaway.jpg', + 'active': ['CC1326008'], + 'stations': ['M1', 'M2', 'M3'] +} +#,{ +# 'sensor': 'GoPro', +# 'img': 'gopro.png', +# 'active': ['gopro1'], +# 'stations': ['M1', 'M2', 'M3'] +#} +] + +# Return our beautiful Bootstrap webpage. That we totally have. +@app.route('/') +def upload(): + return render_template('upload.html', probes=probes) + +# What happens when the files just don't fit +@app.errorhandler(413) +def request_entity_too_large(error): + return 'File Too Thicc', 413 + +# What happens when we did an oopsie +@app.errorhandler(500) +def internal_server_error(error): + return render_template('error.html') + +# What happens when someone uploads a thingy +@app.route('/uploader', methods=['POST']) +def upload_file(): + if request.method == 'POST': + f = request.files['file'] + + # Get which probe the user uploaded + probe = request.form.get('probe') + + # Get selected probe + activeProbe = request.form.get('activeProbe') + + # Check if its a valid file to upload + # TODO: Implement this method + # probeutils.check(probe, f) + + # Check if folder exists + try: + if not os.path.exists( + os.path.join(app.config['UPLOAD_FOLDER'], probe)): + os.makedirs(os.path.join(app.config['UPLOAD_FOLDER'], probe)) + + if not os.path.exists( + os.path.join(app.config['UPLOAD_FOLDER'], probe, 'raw')): + os.makedirs(os.path.join( + app.config['UPLOAD_FOLDER'], probe, 'raw')) + except Exception: + return render_template('error.html') + + # Strip station + # if forceStation is checked, override all station parsing + if (request.form.get("forceStation" + probe) != None): + station = request.form.get("stations" + probe) + else: + if (fnmatch.fnmatch((f.filename).upper(), '*M1*') or fnmatch.fnmatch((f.filename).upper(), 'M1*')): + station = 'M1' + elif (fnmatch.fnmatch((f.filename).upper(), "*M2*") or fnmatch.fnmatch((f.filename).upper(), "M2*")): + station = 'M2' + elif (fnmatch.fnmatch((f.filename).upper(), "*M3*") or fnmatch.fnmatch((f.filename).upper(), "M3*")): + station = 'M3' + + # Date Parser of filename + match1 = re.search('\d{4}-\d{2}-\d{2}', f.filename) + if (match1 == None): + match1 = re.search('\d{2}-\d{2}-\d{4}', f.filename) + try: + date = datetime.strptime(match1.group(), '%d-%m-%Y').date() + except Exception: + # Error! More strange data format XD + match1 = re.search('\d{4}\d{2}\d{2}', f.filename) + if (match1 == None): + match1 = re.search('\d{2}\d{2}\d{4}', f.filename) + date = datetime.strptime(match1.group(), '%d%m%Y').date() + else: + date = datetime.strptime(match1.group(), '%Y%m%d').date() + else: + date = datetime.strptime(match1.group(), '%Y-%m-%d').date() + + # Crafting the real overpowered name!!!! + filename = probe + '-' + station + '-'+ activeProbe + '-'+ date.strftime("%Y-%m-%d") + '.csv' + #print(filename) + + # Setting the filePath and saving it + finalFilename = 'raw-'+filename + rawFilePath = os.path.join(app.config['UPLOAD_FOLDER'], probe, 'raw', finalFilename) + f.save(rawFilePath) + + # Start with probe definition + if (probe == 'CastAway'): + ''' CastAway Files ''' + + df_table = probeutils.process_castaway(rawFilePath) + + elif (probe == 'SUNA'): + ''' SUNA Files ''' + + df_table = probeutils.process_suna(rawFilePath) + + elif (probe == 'FIRe'): + ''' FIRe Files ''' + + df_table = probeutils.process_fire(rawFilePath) + + elif (probe == 'PhycoCTD'): + ''' PhycoCTD Files ''' + + df_table = probeutils.process_phyco(rawFilePath) + else: + ''' Empty probe ''' + + df_table = "
" + + # Save file on raw folder and create URL download + url_download = app.config['DOWNLOADS_URL'] + probe + "/" + finalFilename + + # Return success webpage + return render_template('successful.html', url=url_download, tables=df_table) + else: + # No POST Found + return render_template('error.html') + +## Force regenerate QC +@app.route('/regenerate') +def regenerate(): + error_list = [] + #for each file in raw folder, execute all QC + PATH = './dataset/FIRe/raw' + for filename in os.listdir(PATH): + try: + filename_nn = probeutils.execution_NN(filename) + probeutils.execution_PAR(filename_nn) + except Exception as err: + #print(filename) + #print(repr(err)) + error_list.append([filename, repr(err)]) + + #print('Regenerate FIRe done') + + PATH = './dataset/PhycoCTD/raw' + for filename in os.listdir(PATH): + try: + probeutils.check_if_old_phyco(filename) + probeutils.execution_pb_phyco(filename) + except Exception as err: + #print(filename) + #print(repr(err)) + error_list.append([filename, repr(err)]) + + #print('Regenerate Phyco done') + + return render_template('regenerate.html', error_list=error_list) + +if __name__ == '__main__': + app.run() diff --git a/probeutils/utils.py b/probeutils/utils.py new file mode 100644 index 0000000..dd352e8 --- /dev/null +++ b/probeutils/utils.py @@ -0,0 +1,293 @@ +from datetime import datetime +from shutil import copy2 +import pandas as pd +import numpy as np +import os, csv + +UPLOAD_FOLDER = './dataset/' +tableClass = 'table table-striped table-sm table-responsive' + +def get_date(probe, file): + ''' Test utils file ''' + return datetime.now().strftime("%Y-%m-%d-%H:%M:%S") + +# TODO: +# - Check if is a good file +# +#def checkUploadedFile(probe, file): +# return 1 + +# TODO: +# - clean the head of csv, need to extract info an remove the %% (maybe new file with metadata info?) [done] +# - create the empty csv, first row with headers [done] +# - desviation and more data things +def process_castaway(file): + + try: + # Copy raw file to process folder + with open(file) as CastAwayFile: + filename = os.path.basename(CastAwayFile.name).strip('raw-') + processFilePath = os.path.join( + UPLOAD_FOLDER, 'CastAway', filename) + #copy2(file, processFilePath) + + # Getting some metadata info + #with open(file, newline='') as castfile: + # lines = castfile.readlines() + # device = lines[0].split(',')[1].replace('\r\n', '') + # filename = lines[1].split(',')[1].replace('\r\n', '') + # start_latitude = lines[9].split(',')[1].replace('\r\n', '') + # start_longitude = lines[10].split(',')[1].replace('\r\n', '') + # start_altitude = lines[11].split(',')[1].replace('\r\n', '') + # castfile.close() + + # Opening the csv with pandas + df = pd.read_csv(file, skiprows=28) + + # Extract perfil bajada, el 1 es por el header + index_max = df['Depth (Meter)'].idxmax() + 1 + #df_perfilBajada = df[df['depth'].between(0, df['depth'].max())] # No funciona muy bien + # Limitamos a solo el perfil de bajada + df_perfilBajada = df[:index_max] + + # Guardamos solo el perfilBajada en carpeta PB + if not os.path.exists(os.path.join(UPLOAD_FOLDER, 'CastAway', 'PB')): + os.makedirs(os.path.join(UPLOAD_FOLDER, 'CastAway', 'PB')) + + filenamePB = filename.strip('.csv') + '-PB.csv' + perfilBajadaFilePath = os.path.join( + UPLOAD_FOLDER, 'CastAway', 'PB', filenamePB) + df_perfilBajada.to_csv(perfilBajadaFilePath, index=False) + + # Trying to show Dataframe on webpage + return df.to_html(classes=tableClass) + + except Exception as ex: + print('Exception: '+repr(ex)) + return ex + +def process_suna(file): + try: + df = pd.read_csv(file, encoding="ISO-8859-1", header=None) + + #df.columns = ['fechaHora', 'INSTRUMENT', 'Start-time', 'Nitrato(uMol/L)','Nitrato(MG/L)', 'ERROR', 'T_lamp', ] + + #if not os.path.exists(os.path.join(UPLOAD_FOLDER, 'SUNA', 'HEAD')): + # os.makedirs(os.path.join(UPLOAD_FOLDER, 'SUNA', 'HEAD')) + + # Return webpage + return df.to_html(classes=tableClass) + except Exception as ex: + print('Exception: '+repr(ex)) + return ex + +# TODO: +# - Ask for FIRe examples, actually only bin files found (done) +# - Extract file to process folder (done) +# - Save a File with PAR info +# - Headers on email (ask for new headers)[done] +# - Remove negative values (this, done) +# - Arrange similar windows depth and do measure +def process_fire(file): + ''' Processing FIRe ''' + + try: + # Copy raw file to process folder + with open(file) as FIReFile: + filename_raw = os.path.basename(FIReFile.name) + filename = os.path.basename(FIReFile.name).strip('raw-') + #raw_file_path = os.path.join(UPLOAD_FOLDER, 'FIRe', 'raw', filename_raw) + processFilePath = os.path.join( + UPLOAD_FOLDER, 'FIRe', filename) + #copy2(file, processFilePath) + + # First, need to check the csv headers + # Open the process file with pandas + df = pd.read_csv(file, header=None) + + # Headers (now working fine) + df.columns = ['fechaHora', 'estacion', 'fecha', 'hora', 'profundidad', 'Fo', 'Fm', 'Fv', 'Fv/Fm', 'p', 'Abs_rel', 'Abs_abs', 'led_light', 'ETR', 'coma1', 'coma2', 'coma3', 'coma4', 'coma5', 'coma6','error_norm', 'PAR', 'V', 'cero1', 'cero2', 'cero3', 'cero4', 'raro'] + df.loc[:, 'coma1'] = 0 + df.loc[:, 'coma2'] = 0 + df.loc[:, 'coma3'] = 0 + df.loc[:, 'coma4'] = 0 + df.loc[:, 'coma5'] = 0 + df.loc[:, 'coma6'] = 0 + + # Fixing empty values + #df.to_csv(os.path.join(UPLOAD_FOLDER, 'FIRe', 'raw', 'raw-'+filename), index=False) + + filename_nn = execution_NN(filename_raw) + + execution_PAR(filename_nn) + + return df.to_html(classes=tableClass) + + except Exception as ex: + print('Exception: '+repr(ex)) + return ex + +# TODO: +# - Only perfil bajada (done) +def process_phyco(file): + ''' Processing PhycoCTD''' + + try: + # Copy raw file to process folder + with open(file, "r+") as phycoFile: + # Sustract raw- of filename + filename_raw = os.path.basename(phycoFile.name) + filename = os.path.basename(phycoFile.name).strip('raw-') + processFilePath = os.path.join( + UPLOAD_FOLDER, 'PhycoCTD', filename) + #copy2(file, processFilePath) + + # Working with the process file + df = pd.read_csv(file, delimiter=';') + + check_if_old_phyco(filename_raw) + execution_pb_phyco(filename_raw) + + # Return webpage + return df.to_html(classes=tableClass) + except Exception as ex: + print('Exception: '+repr(ex)) + return ex + +def check_if_old_phyco(filename): + # Checking if old file csv + PATH = os.path.join(UPLOAD_FOLDER, 'PhycoCTD', 'raw', filename) + with open(PATH, "r+") as phycoFile: + # Check if old version + line = phycoFile.readline() + if (',' in line): + old = True + else: + old = False + + if (old == True): + df_old = pd.read_csv(PATH, header=None, skiprows=1) + if (len(df_old.columns) == 16): + df_old.columns = ['station', 'latitude', 'longitude', 'time', 'depth', 'temp1', 'temp2', 'cdom[gain]', + 'cdom[ppb]', 'cdom[mv]', 'pe[gain]', 'pe[ppb]', 'pe[mv]', 'chl[gain]', 'chl[ppb]', 'chl[mv]'] + else: + df_old.columns = ['station', 'time', 'depth', 'temp1', 'temp2', 'cdom[gain]', 'cdom[ppb]', + 'cdom[mv]', 'pe[gain]', 'pe[ppb]', 'pe[mv]', 'chl[gain]', 'chl[ppb]', 'chl[mv]'] + raw_path = os.path.join(UPLOAD_FOLDER, 'PhycoCTD', 'raw', filename) + df_old.to_csv(raw_path, index=False, sep=';') + +def execution_pb_phyco(filename): + # Guardamos solo el perfilBajada + if not os.path.exists(os.path.join(UPLOAD_FOLDER, 'PhycoCTD', 'PB')): + os.makedirs(os.path.join(UPLOAD_FOLDER, 'PhycoCTD', 'PB')) + + PATH = os.path.join(UPLOAD_FOLDER, 'PhycoCTD', 'raw', filename) + df = pd.read_csv(PATH, delimiter=';') + + # Checking if NaN values exists [for hack lab version csv upload] + if (df['temp2'].isnull().sum() > 0): + df.loc[:, 'temp2'] = 0 + df = df.dropna() + + # Extract perfil bajada, el 1 es por el header + index_max = df['depth'].idxmax() + 1 + #df_perfilBajada = df[df['depth'].between(0, df['depth'].max())] # No funciona muy bien + # Limitamos a solo el perfil de bajada + df_pb= df[:index_max] + + filename_pb = filename.strip('raw-').strip('.csv') + '-PB.csv' + pb_path = os.path.join(UPLOAD_FOLDER, 'PhycoCTD', 'PB', filename_pb) + df_pb.to_csv(pb_path, sep=';', index=False) + +def execution_NN(filename): + + PATH = os.path.join(UPLOAD_FOLDER, 'FIRe', 'raw', filename) + df = pd.read_csv(PATH, header=None) + + # Headers (now working fine) + df.columns = ['fechaHora', 'estacion', 'fecha', 'hora', 'profundidad', 'Fo', 'Fm', 'Fv', 'Fv/Fm', 'p', 'Abs_rel', 'Abs_abs', 'led_light', + 'ETR', 'coma1', 'coma2', 'coma3', 'coma4', 'coma5', 'coma6', 'error_norm', 'PAR', 'V', 'cero1', 'cero2', 'cero3', 'cero4', 'raro'] + df.loc[:, 'coma1'] = 0 + df.loc[:, 'coma2'] = 0 + df.loc[:, 'coma3'] = 0 + df.loc[:, 'coma4'] = 0 + df.loc[:, 'coma5'] = 0 + df.loc[:, 'coma6'] = 0 + + # NonNegative values rutine + if not os.path.exists(os.path.join(UPLOAD_FOLDER, 'FIRe', 'NN')): + os.makedirs(os.path.join(UPLOAD_FOLDER, 'FIRe', 'NN')) + + # Remove rows with negatives values + df_nn = df[(df.iloc[:, 4:27] >= 0).all(1)] + filename_nn = filename.strip('raw-').strip('.csv') + '-NN.csv' + nonnegative_path = os.path.join(UPLOAD_FOLDER, 'FIRe', 'NN', filename_nn) + df_nn.to_csv(nonnegative_path, index=False) + + return filename_nn + +def execution_PAR(filename): + # PAR rutine + if not os.path.exists(os.path.join(UPLOAD_FOLDER, 'FIRe', 'PAR')): + os.makedirs(os.path.join(UPLOAD_FOLDER, 'FIRe', 'PAR')) + + PATH = os.path.join(UPLOAD_FOLDER, 'FIRe', 'NN', filename) + df = pd.read_csv(PATH) + + # PAR execution + PAR_columns = ['estacion', 'fecha', 'profundidad', 'Fo', 'Fm', 'Fv', 'Fv/Fm', 'p', 'Abs_rel', 'Abs_abs', 'led_light', + 'ETR', 'error_norm', 'PAR'] + + df_PAR = pd.DataFrame(columns=PAR_columns) + + index_max = df['profundidad'].idxmax() + index_min = df['profundidad'].idxmin() + 1 + depth_list = df[index_max:index_min]['profundidad'].to_list() + + last_value = df['profundidad'].max() + similar_depth = [] + for i in range(len(depth_list)): + #print(depth_list[i]) + + if (abs(last_value - depth_list[i]) <= 2000): + last_value = depth_list[i] + similar_depth.append(depth_list[i]) + elif (abs(last_value - depth_list[i]) >= 6000): + ## Save the actual list to DataFrame + #print(similar_depth) + index_first = pd.to_numeric(df.index[df['profundidad'] == similar_depth[0]])[0] + index_last = pd.to_numeric(df.index[df['profundidad'] == similar_depth[-1]])[0] + 1 + df_range = df.iloc[index_first:index_last] + + # Working with df_range + estacion = df['estacion'][0] + fecha = df['fecha'][0] + profundidad = df_range['profundidad'].mean() + Fo = df_range['Fo'].mean() + Fm = df_range['Fm'].mean() + Fv = df_range['Fv'].mean() + FvFm = df_range['Fv/Fm'].mean() + p = df_range['p'].mean() + Abs_rel = df_range['Abs_rel'].mean() + Abs_abs = df_range['Abs_abs'].mean() + led_light = df_range['led_light'].mean() + ETR = df_range['ETR'].mean() + error_norm = df_range['error_norm'].mean() + PAR = df_range['PAR'].mean() + data = [estacion, fecha, profundidad, Fo, Fm, Fv, FvFm, p, Abs_rel, Abs_abs, led_light, ETR, error_norm, PAR] + row = pd.Series(data, index=PAR_columns) + df_PAR = df_PAR.append(row, ignore_index=True) + + ## Empty the list + similar_depth = [] + last_value = depth_list[i] + + ## Adding to the new list + similar_depth.append(depth_list[i]) + + # Saving the DataFrame + # TODO: check last values, around 400 depth + filenamePAR = filename.strip('-NN.csv') + '-PAR.csv' + PARFilePath = os.path.join(UPLOAD_FOLDER, 'FIRe', 'PAR', filenamePAR) + df_PAR.to_csv(PARFilePath, index=False) + diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..508dae9 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +Flask +pandas +meinheld \ No newline at end of file diff --git a/static/css/main.css b/static/css/main.css new file mode 100644 index 0000000..c1316d4 --- /dev/null +++ b/static/css/main.css @@ -0,0 +1,265 @@ +/*! HTML5 Boilerplate v7.3.0 | MIT License | https://html5boilerplate.com/ */ + +/* main.css 2.0.0 | MIT License | https://github.com/h5bp/main.css#readme */ +/* + * What follows is the result of much research on cross-browser styling. + * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal, + * Kroc Camen, and the H5BP dev community and team. + */ + +/* ========================================================================== + Base styles: opinionated defaults + ========================================================================== */ + +html { + color: #222; + font-size: 1em; + line-height: 1.4; +} + +/* + * Remove text-shadow in selection highlight: + * https://twitter.com/miketaylr/status/12228805301 + * + * Vendor-prefixed and regular ::selection selectors cannot be combined: + * https://stackoverflow.com/a/16982510/7133471 + * + * Customize the background color to match your design. + */ + +::-moz-selection { + background: #b3d4fc; + text-shadow: none; +} + +::selection { + background: #b3d4fc; + text-shadow: none; +} + +/* + * A better looking default horizontal rule + */ + +hr { + display: block; + height: 1px; + border: 0; + border-top: 1px solid #ccc; + margin: 1em 0; + padding: 0; +} + +/* + * Remove the gap between audio, canvas, iframes, + * images, videos and the bottom of their containers: + * https://github.com/h5bp/html5-boilerplate/issues/440 + */ + +audio, +canvas, +iframe, +img, +svg, +video { + vertical-align: middle; +} + +/* + * Remove default fieldset styles. + */ + +fieldset { + border: 0; + margin: 0; + padding: 0; +} + +/* + * Allow only vertical resizing of textareas. + */ + +textarea { + resize: vertical; +} + +/* ========================================================================== + Browser Upgrade Prompt + ========================================================================== */ + +.browserupgrade { + margin: 0.2em 0; + background: #ccc; + color: #000; + padding: 0.2em 0; +} + +/* ========================================================================== + Author's custom styles + ========================================================================== */ + +/* ========================================================================== + Helper classes + ========================================================================== */ + +/* + * Hide visually and from screen readers + */ + +.hidden { + display: none !important; +} + +/* +* Hide only visually, but have it available for screen readers: +* https://snook.ca/archives/html_and_css/hiding-content-for-accessibility +* +* 1. For long content, line feeds are not interpreted as spaces and small width +* causes content to wrap 1 word per line: +* https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe +*/ + +.sr-only { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + white-space: nowrap; + width: 1px; + /* 1 */ +} + +/* +* Extends the .sr-only class to allow the element +* to be focusable when navigated to via the keyboard: +* https://www.drupal.org/node/897638 +*/ + +.sr-only.focusable:active, +.sr-only.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + white-space: inherit; + width: auto; +} + +/* +* Hide visually and from screen readers, but maintain layout +*/ + +.invisible { + visibility: hidden; +} + +/* +* Clearfix: contain floats +* +* For modern browsers +* 1. The space content is one way to avoid an Opera bug when the +* `contenteditable` attribute is included anywhere else in the document. +* Otherwise it causes space to appear at the top and bottom of elements +* that receive the `clearfix` class. +* 2. The use of `table` rather than `block` is only necessary if using +* `:before` to contain the top-margins of child elements. +*/ + +.clearfix:before, +.clearfix:after { + content: " "; + /* 1 */ + display: table; + /* 2 */ +} + +.clearfix:after { + clear: both; +} + +/* ========================================================================== + EXAMPLE Media Queries for Responsive Design. + These examples override the primary ('mobile first') styles. + Modify as content requires. + ========================================================================== */ + +@media only screen and (min-width: 35em) { + /* Style adjustments for viewports that meet the condition */ +} + +@media print, + (-webkit-min-device-pixel-ratio: 1.25), + (min-resolution: 1.25dppx), + (min-resolution: 120dpi) { + /* Style adjustments for high resolution devices */ +} + +/* ========================================================================== + Print styles. + Inlined to avoid the additional HTTP request: + https://www.phpied.com/delay-loading-your-print-css/ + ========================================================================== */ + +@media print { + *, + *:before, + *:after { + background: transparent !important; + color: #000 !important; + /* Black prints faster */ + box-shadow: none !important; + text-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + /* + * Don't show links that are fragment identifiers, + * or use the `javascript:` pseudo protocol + */ + a[href^="#"]:after, + a[href^="javascript:"]:after { + content: ""; + } + pre { + white-space: pre-wrap !important; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + /* + * Printing Tables: + * https://web.archive.org/web/20180815150934/http://css-discuss.incutio.com/wiki/Printing_Tables + */ + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } +} + diff --git a/static/css/normalize.css b/static/css/normalize.css new file mode 100644 index 0000000..192eb9c --- /dev/null +++ b/static/css/normalize.css @@ -0,0 +1,349 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ + +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} diff --git a/static/img/castaway.jpg b/static/img/castaway.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8a443dc6888df23e99e47252a4eb3dc22b2998d1 GIT binary patch literal 21292 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 literal 0 HcmV?d00001 diff --git a/static/img/fire.jpg b/static/img/fire.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b41d0b52bc4bb1719edfb2a927a6c36dcb4a2fb9 GIT binary patch literal 51747 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

Kt9eNS>uXjmT(J7&jREl7n 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 literal 0 HcmV?d00001 diff --git a/static/img/phycoctd.jpg b/static/img/phycoctd.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1ca6cb63f74af922d40c8505b28bc6346edb0d7c GIT binary patch literal 19829 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 V(??2C){qVcoH|o!Pu-vo|Jk7;nK1wW literal 0 HcmV?d00001 diff --git a/static/img/placeholder.svg b/static/img/placeholder.svg new file mode 100644 index 0000000..f446121 --- /dev/null +++ b/static/img/placeholder.svg @@ -0,0 +1 @@ +200x200 \ No newline at end of file diff --git a/static/img/suna.jpg b/static/img/suna.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fe31850cf10b41a16ede8901ffed13977badeb2e GIT binary patch literal 7922 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]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="

",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 00&&(t+=" "+n+e.join(" "+n)),S?b.className.baseVal=t:b.className=t)}function i(e,t){if("object"==typeof e)for(var n in e)P(e,n)&&i(n,e[n]);else{e=e.toLowerCase();var r=e.split("."),s=Modernizr[r[0]];if(2===r.length&&(s=s[r[1]]),void 0!==s)return Modernizr;t="function"==typeof t?t():t,1===r.length?Modernizr[r[0]]=t:(!Modernizr[r[0]]||Modernizr[r[0]]instanceof Boolean||(Modernizr[r[0]]=new Boolean(Modernizr[r[0]])),Modernizr[r[0]][r[1]]=t),o([(t&&!1!==t?"":"no-")+r.join("-")]),Modernizr._trigger(e,t)}return Modernizr}function s(){return"function"!=typeof t.createElement?t.createElement(arguments[0]):S?t.createElementNS.call(t,"http://www.w3.org/2000/svg",arguments[0]):t.createElement.apply(t,arguments)}function a(){var e=t.body;return e||(e=s(S?"svg":"body"),e.fake=!0),e}function l(e,n,r,o){var i,l,u,f,c="modernizr",d=s("div"),p=a();if(parseInt(r,10))for(;r--;)u=s("div"),u.id=o?o[r]:c+(r+1),d.appendChild(u);return i=s("style"),i.type="text/css",i.id="s"+c,(p.fake?p:d).appendChild(i),p.appendChild(d),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(t.createTextNode(e)),d.id=c,p.fake&&(p.style.background="",p.style.overflow="hidden",f=b.style.overflow,b.style.overflow="hidden",b.appendChild(p)),l=n(d,e),p.fake?(p.parentNode.removeChild(p),b.style.overflow=f,b.offsetHeight):d.parentNode.removeChild(d),!!l}function u(e,t){return!!~(""+e).indexOf(t)}function f(e){return e.replace(/([A-Z])/g,function(e,t){return"-"+t.toLowerCase()}).replace(/^ms-/,"-ms-")}function c(t,n,r){var o;if("getComputedStyle"in e){o=getComputedStyle.call(e,t,n);var i=e.console;if(null!==o)r&&(o=o.getPropertyValue(r));else if(i){var s=i.error?"error":"log";i[s].call(i,"getComputedStyle returning null, its possible modernizr test results are inaccurate")}}else o=!n&&t.currentStyle&&t.currentStyle[r];return o}function d(t,r){var o=t.length;if("CSS"in e&&"supports"in e.CSS){for(;o--;)if(e.CSS.supports(f(t[o]),r))return!0;return!1}if("CSSSupportsRule"in e){for(var i=[];o--;)i.push("("+f(t[o])+":"+r+")");return i=i.join(" or "),l("@supports ("+i+") { #modernizr { position: absolute; } }",function(e){return"absolute"===c(e,null,"position")})}return n}function p(e){return e.replace(/([a-z])-([a-z])/g,function(e,t,n){return t+n.toUpperCase()}).replace(/^-/,"")}function m(e,t,o,i){function a(){f&&(delete L.style,delete L.modElem)}if(i=!r(i,"undefined")&&i,!r(o,"undefined")){var l=d(e,o);if(!r(l,"undefined"))return l}for(var f,c,m,h,A,v=["modernizr","tspan","samp"];!L.style&&v.length;)f=!0,L.modElem=s(v.shift()),L.style=L.modElem.style;for(m=e.length,c=0;c + + + + + {% block title %}{% endblock %} - UPCT + + + + + + + + + + + + + + + + + + + + + + +
+
SDC Lifecycle 0.1
+ +
+ + + + {% block content %}{% endblock %} + + + + \ No newline at end of file diff --git a/templates/error.html b/templates/error.html new file mode 100644 index 0000000..93eebdc --- /dev/null +++ b/templates/error.html @@ -0,0 +1,11 @@ +{% extends "base.html" %} +{% block title %}ERROR{% endblock %} + +{% block content %} + +
+
+

ERROR en la subida

+
+ +{% endblock %} \ No newline at end of file diff --git a/templates/regenerate.html b/templates/regenerate.html new file mode 100644 index 0000000..bc1c714 --- /dev/null +++ b/templates/regenerate.html @@ -0,0 +1,22 @@ +{% extends "base.html" %} +{% block title %}DONE{% endblock %} + +{% block content %} + +
+
+

Control de calidad aplicado.

+ + + + {% for error in error_list %} + + + + + {% endfor %} +
{{ error[0] }}{{ error[1] }}
+ +
+ +{% endblock %} \ No newline at end of file diff --git a/templates/successful.html b/templates/successful.html new file mode 100644 index 0000000..06f6d6d --- /dev/null +++ b/templates/successful.html @@ -0,0 +1,33 @@ +{% extends "base.html" %} +{% block title %}OK{% endblock %} + +{% block content %} + +
+
+ +
+ +
+ Volver + + Descargar Archivo + +
+
+ {{ tables|safe }} +
+
+ +
+
+
+
+ +{% endblock %} \ No newline at end of file diff --git a/templates/upload.html b/templates/upload.html new file mode 100644 index 0000000..ce4ac8d --- /dev/null +++ b/templates/upload.html @@ -0,0 +1,127 @@ +{% extends "base.html" %} +{% block title %}Subida{% endblock %} + +{% block content %} + + +
+

Sensores

+
+ +
+
+ + +
+ {% for i in probes %} +
+
+
+

{{ i.sensor }}

+
+ +
+
+ ... +
+
+ + +
+
+ {% endfor%} +
+ + + {% for i in probes %} + + {% endfor %} + + +
+ +{% endblock %} \ No newline at end of file