{ "info": { "author": "Allard de Wit", "author_email": "allard.dewit@wur.nl", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: European Union Public Licence 1.2 (EUPL 1.2)", "Programming Language :: Python :: 3" ], "description": "# pyCGMS\n\n## The European system for crop monitoring and yield forecasting\n\nThe Joint Research Centre of the European Commission runs an operational system for\ncrop monitoring and yield forecasting called [MARS] (Monitoring Agricultural ReSources).\nMARS is used within agricultural monitoring activities applied to Europe, sub-Saharan \nAfrica and other areas of the world. Crop yield forecasting is undertaken to provide monthly \nbulletins forecasting crop yields to support the EU's Common Agriculture Policy (CAP). \nProviding early warning of crop shortages or failure provides rapid information for EU \ndevelopment aid activities to support food insecure countries.\n\nThe MARS system implements different components for monitoring including meteorological \ndata, crop simulation modelling, satellite data and field vists. Finally, statistical \npost-processing is used in combination with regional yield statistics to make \nforecasts of actual crop yield and production. \n\n## The Crop Growth Monitoring System (CGMS)\nThe crop simulation component in MARS is implemented by a system called [CGMS] (Crop Growth\nMonitoring System) which includes the [WOFOST] crop simulation model \nand was originally implemented in C++. CGMS links to a database structure which provides the inputs \n(weather data, crop parameters, soil types and crop calendars) and stores the output \n(simulated biomass, yield, leaf area index, etc) from the crop simulation model.\nSeveral version of this CGMS database structure exist: V8, V12 and the current V14.\n\nThe C++ implementation of CGMS is proprietary, owned by EC-JRC and is not available for\ndownload. In recent implementations of CGMS, the C++ version of C++ is superseded by\nthe crop simulation models implemented in the [BioMA] framework.\n\n## A python version of CGMS\n\nThe PyCGMS package provides a python implementation of the crop simulation \nsystem embedded in the Crop Growth Monitoring System (CGMS). Under the hood,\nthe actual crop simulations are carried out by the WOFOST implementation in \n[PCSE] which provides a fully open source implementation of many crop simulation\nmodels developed in Wageningen.\n\nPyCGMS was designed to be compatible\nwith all versions of the CGMS database and can therefore also run on legacy CGMS\nimplementations. The original C++ CGMS executable also provided functionality for \ninterpolating weather data. pyCGMS does not provide this functionality and it will \nnot do so in the future as dedicated packages are available for processing of weather\ndata. \n\n## Limitations\n\nPyCGMS is very much a work in progress and therefore does not yet provide all functionality\nthat was implemented by the C++ CGMS version. Notably, PyCGMS does not provide support for\nwriting output to the CGMS database structure. This is also a design choice because CGMS provides\nlarge amount of simulation output that can be better loaded into the database using \ndedicated loaders. However, such loaders are not yet available.\n\n\n## Installation and usage\n\nFirst of all, PyCGMS requires a [CGMS database] structure in order to retrieve its input\ndata. A definition of the structure can be found in JRC wiki using the link above.\nAn example CGMS8 database in SQLite can be found [here].\n\nNext, a python environment must be created for PyCGMS. The environment for PyCGMS is similar to\nthe environment required for [PCSE], so please have a look at the detailed instructions there.\nAfter installing PCSE into the environment PyCGMS can be installed with:\n\n pip install pycgms\n \nNote that depending on the database system you are using, additional database drivers may\nneed to be installed.\n\nUsing PyCGMS can be started using the commandline script `pycgms`. Use:\n\n\n $ pycgms --help\n usage: pycgms [-h] --db_version {8,12,14} --dsn DSN --crop CROP --year YEAR\n [--grid GRID] [--run_till yyyy-mm-dd]\n [--aggr_level {stu,smu,grid}] --output OUT_PATH\n [--output_type {csv,xls,hdf5,json}]\n [--use_isw_date USE_ISW_DATE]\n \n Run a gridded WOFOST simulation on a CGMS database.\n \n optional arguments:\n -h, --help show this help message and exit\n --db_version {8,12,14}\n Type of CGMS DB to use (either 8, 12 or 14).\n --dsn DSN SQLAlchemy connection URL for CGMS DB to connect to.\n See also\n http://docs.sqlalchemy.org/en/latest/core/engines.html\n --crop CROP Run simulations for given crop number.\n --year YEAR Run simulations for given year. The year refers to the\n year in the crop_calendar table which usually\n indicates the year where sowing of emergence takes\n place.\n --grid GRID Run simulations for given grid. Optional, by default\n all grids will be simulated where the crop is defined.\n --run_till yyyy-mm-dd\n Run simulations up till this date. This is useful for\n simulations in the current year where not all weather\n data are available up till the end of the simulation.\n --aggr_level {stu,smu,grid}\n Aggregation level for output, default is \"stu\"\n --output OUT_PATH Store simulation results at this location.\n --output_type {csv,xls,hdf5,json}\n Type of output file to write\n --use_isw_date USE_ISW_DATE\n If True the start_date from the table\n INITIAL_SOIL_WATER will be used ascampaign_start_date,\n default False.\n\n \n\n\n[CGMS]: https://www.researchgate.net/publication/262335822_CGMS_Version_80_User_Manual_and_Technical_Documentation\n[BioMA]: http://bioma.jrc.ec.europa.eu/\n[MARS]: https://ec.europa.eu/jrc/en/mars\n[WOFOST]: https://www.sciencedirect.com/science/article/pii/S0308521X17310107\n[CGMS-DB]: https://marswiki.jrc.ec.europa.eu/agri4castwiki/index.php/Appendix_5:_Database_objects\n[here]: https://wageningenur4-my.sharepoint.com/:u:/g/personal/allard_dewit_wur_nl/EdwuayKW2IhOp6zCYElA0zsB3NGxcKjZc2zE_JGfVPv89Q?e=oeBjPm\n[PCSE]: http://pcse.readthedocs.io \n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ajwdewit/pyCGMS", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pycgms", "package_url": "https://pypi.org/project/pycgms/", "platform": "", "project_url": "https://pypi.org/project/pycgms/", "project_urls": { "Homepage": "https://github.com/ajwdewit/pyCGMS" }, "release_url": "https://pypi.org/project/pycgms/0.1.0/", "requires_dist": [ "pcse >=5.4" ], "requires_python": "", "summary": "The PyCGMS package provides a python implementation of the crop simulation", "version": "0.1.0" }, "last_serial": 4349949, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "42f40dd8f93f3e61bf45c2a7b4dfbf9e", "sha256": "e1e74b74977b4782ab304f1aa862531f0e6ffa896613f6365b953eaab415e0eb" }, "downloads": -1, "filename": "pycgms-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "42f40dd8f93f3e61bf45c2a7b4dfbf9e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25706, "upload_time": "2018-10-07T19:51:45", "url": "https://files.pythonhosted.org/packages/77/2d/7131b8dba9bd621c00688d349a3374e5646b5f61dd32a205475a49ff6c47/pycgms-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ebdf564e805309fd24a5971f735a33fa", "sha256": "18fa473dac0fccbb4103b2d5cb161d55e44709bac1983c0ec3f88b0f78a40513" }, "downloads": -1, "filename": "pycgms-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ebdf564e805309fd24a5971f735a33fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9158, "upload_time": "2018-10-07T19:51:55", "url": "https://files.pythonhosted.org/packages/fd/0f/f8b18d75c10793fad7d01e9576ab85ff226f2a2fdbd33b32c5e463f20527/pycgms-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "42f40dd8f93f3e61bf45c2a7b4dfbf9e", "sha256": "e1e74b74977b4782ab304f1aa862531f0e6ffa896613f6365b953eaab415e0eb" }, "downloads": -1, "filename": "pycgms-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "42f40dd8f93f3e61bf45c2a7b4dfbf9e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25706, "upload_time": "2018-10-07T19:51:45", "url": "https://files.pythonhosted.org/packages/77/2d/7131b8dba9bd621c00688d349a3374e5646b5f61dd32a205475a49ff6c47/pycgms-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ebdf564e805309fd24a5971f735a33fa", "sha256": "18fa473dac0fccbb4103b2d5cb161d55e44709bac1983c0ec3f88b0f78a40513" }, "downloads": -1, "filename": "pycgms-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ebdf564e805309fd24a5971f735a33fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9158, "upload_time": "2018-10-07T19:51:55", "url": "https://files.pythonhosted.org/packages/fd/0f/f8b18d75c10793fad7d01e9576ab85ff226f2a2fdbd33b32c5e463f20527/pycgms-0.1.0.tar.gz" } ] }