网站建设与运营预算,wordpress 豆瓣电影,企业cms免费,宇泽佛山网站建设1 简介
ClimateSERV 2.0允许开发从业者、科学家/研究人员和政府决策者可视化和下载历史降雨数据、植被状况数据以及 180 天的降雨和温度预报#xff0c;以增进对农业和水资源供应相关问题的理解并做出改进的决策。
这些数据可以通过 Web 应用程序直接访问#xff0c;也可以…1 简介
ClimateSERV 2.0允许开发从业者、科学家/研究人员和政府决策者可视化和下载历史降雨数据、植被状况数据以及 180 天的降雨和温度预报以增进对农业和水资源供应相关问题的理解并做出改进的决策。
这些数据可以通过 Web 应用程序直接访问也可以使用 Python 应用程序中的 ClimateSERVpy 通过应用程序 API 进行访问。
可以通过以下方式安装 ClimateSERVpy包
pip install climateserv
conda install -c servir climateserv环境要求
Python 3.9.5 或更高版本 (建议使用 3.9.5)PostgreSQL (版本 13)THREDDS (版本 4.6.14)Linux 服务器
具体安装需要使用两个环境一个用于数据库另一个用于应用程序。
2 在conda 环境中设置数据库
创建环境
mkdir -p /cserv2/python_environments/conda/anaconda3/envs/
conda create --prefix/cserv2/python_environments/conda/anaconda3/envs/psqlenv python3.9.5
conda create --name psqlenv python3.9.5进入环境
conda activate psqlenv通过 Conda 安装 PostgreSQL
conda install -y -c conda-forge postgresql创建基本数据库
cd /cserv2
mkdir db
cd dbinitdb -D local_climateserv启动 Postgres 的服务器模式/实例
pg_ctl -D local_climateserv -l logfile start创建非超级用户(更安全)
createuser --encrypted --pwprompt csadmin使用此用户在 Base Database 中创建内部数据库
createdb --ownercsadmin cs2_db
conda deactivate创建数据库连接文件
将以下内容粘贴到下面的文件 /cserv2/django_app/ClimateSERV2/climateserv2/data.json {NAME: cs2_db,USER: csadmin,PASSWORD: PASSWORD_YOU_SET_FOR_THIS_USER,HOST: 127.0.0.1,SECRET_KEY: Your_super_secret_key_for_djangoDEBUG: False
}对于 SECRET_KEY 必须是一个较大的随机值并且必须保密。
对于 DEBUG在 development 中将其设置为 “True”对于生产环境将其设置为 “False”。
3 在conda 环境中设置应用程序
安装 conda 后运行以下命令来创建 python 环境并激活
conda create --prefix/cserv2/python_environments/conda/anaconda3/envs/climateserv2 python3.9.5
conda activate ClimateSERV2cd 到项目目录然后运行以下两个安装命令
pip install -r requirements.txt
conda install --file conda_requirements.txt完成后再添加一个全局 lib 来代理消息队列
sudo apt-get install rabbitmq-server
sudo systemctl enable rabbitmq-server
sudo service rabbitmq-server start现在可以创建一个服务和配置文件来启动 celery这是任务队列专注于实时处理。
需要创建两个文件一个位于 /etc/systemd/system/celery.service另一个位于 /etc/conf.d/celery
在 celery.service 中需要以下内容(可能需要调整路径)
[Unit]
DescriptionCelery Service
Afterrabbitmq-server.service network.target
Requiresrabbitmq-server.service
RuntimeDirectorycelery [Service]
Typeforking
Userwww-data
Groupwww-data
EnvironmentFile/etc/conf.d/celery
WorkingDirectory/cserv2/django_app/ClimateSERV2
ExecStart/bin/bash -c ${CELERY_BIN} -A $CELERY_APP multi start $CELERYD_NODES \--pidfile${CELERYD_PID_FILE} --logfile${CELERYD_LOG_FILE} \--loglevel${CELERYD_LOG_LEVEL} $CELERYD_OPTS
ExecStop/bin/sh -c ${CELERY_BIN} multi stopwait $CELERYD_NODES \--pidfile${CELERYD_PID_FILE} --logfile${CELERYD_LOG_FILE} \--loglevel${CELERYD_LOG_LEVEL}
ExecReload/bin/sh -c ${CELERY_BIN} -A $CELERY_APP multi restart $CELERYD_NODES \--pidfile${CELERYD_PID_FILE} --logfile${CELERYD_LOG_FILE} \--loglevel${CELERYD_LOG_LEVEL} $CELERYD_OPTS
Restartalways[Install]
WantedBymulti-user.target在 /etc/conf.d/celery 中可以粘贴
CELERYD_NODESw1 w2 w3
DJANGO_SETTINGS_MODULEclimateserv2.settings# Absolute or relative path to the celery command:
CELERY_BIN/cserv2/python_environments/conda/anaconda3/envs/climateserv2/bin/celery# App instance to use
CELERY_APPclimateserv2
CELERYD_MULTImulti# Extra command-line arguments to the worker
CELERYD_OPTS--time-limit300 --concurrency8
CELERYD_PID_FILE/var/run/celery/%n.pid
CELERYD_LOG_FILE/var/log/celery/%n%I.logCelery 使用一个临时目录该目录需要在重启时自动创建。创建 /usr/lib/tmpfiles.d 并将以下内容粘贴到其中
D /var/run/celery 0777 root root - -手动创建此目录以及其他几个目录
sudo mkdir /var/run/celery
sudo chmod 777 /var/run/celery -Rsudo mkdir /opt/celery
sudo chmod 777 /opt/celerysudo mkdir /var/log/celery
sudo chmod 777 /var/log/celery -R可以启用并启动 celery
sudo chmod 644 /etc/systemd/system/celery.service
sudo systemctl daemon-reload
sudo systemctl enable celery
sudo service celery restart开始应用程序设置
python manage.py migrate这将负责设置数据库。
运行前需要创建一个超级用户
python manage.py createsuperuser启动应用程序
python manage.py runserver4 其他
web端还提供不同参数的统计计算以及不同数据的图层可视化 参考https://github.com/SERVIR/ClimateSERV2