-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
179 lines (129 loc) · 6.78 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
* Features:
- Captures device location based on request IP of device.
- Feed data location will be based on request IP geo location, so as to enable geo tracking of weather points.
- Device streams only if day is current day.
- If current day, then previous 24 hours w.r.t. to current time are shown, else only the given day's 24 hour data.
- Widgets are responsive on load.
- Data charts show aggregated hourly data for PM10, PM25, Temp and Humidity.
- Histograms shows spread/frequency of the datapoints, which are drillable by dragging on the charts
- CSV download of data enabled.
- Django Admin backend to modify/view data
- REST API Docs: http://aqi.indiaspend.org/aq/api-docs/#!/
* INSTALL INSTRUCTIONS
** FOR LINUX DEVELOPMENT
** FOR LINUX DEPLOYMENT
** FOR WINDOWS DEVELOPMENT
** FOR LINUX DEVELOPMENT
mkdir airquality
cd airquality
sudo apt-get install python-virtualenv # if virtualenv not installed
virtualenv .
source bin/activate
git clone https://github.com/johnsonc/airquality.git
cd airquality
sudo bash dependencies.sh # run as root to install deps
pip install -r requirements.txt
python manage.py runserver
** FOR LINUX DEPLOYMENT
If you want to deploy, follow intial setup steps from /srv/
the folder structure should look like:
/srv/airquality/airquality
Clean room practice:
To create a clean separation and record of threads, processes and system resource usage,
we create a linux user for our process
sudo useradd -m -d /srv/airquality -U -s /bin/bash airquality
sudo apt-get install python-virtualenv # if virtualenv not installed
cd /srv/airquality
sudo su airquality
virtualenv .
source bin/activate
git clone https://github.com/johnsonc/airquality.git
#git clone https://[email protected]/johnsonc/airquality.git
cd airquality
sudo bash dependencies.sh # run as root to install deps, you will have to use another login, user airquality does not have sudo rights
pip install -r requirements.txt
#Copy the site conf to apache2
cp wsgi/airquality.conf /etc/apache2/sites-available/
a2ensite airquality
sudo service apache2 reload
The site will start on the suburl /airquality
and one may test it using:
http://<Address>/airquality
If we want to remove the user after testing
one may remove the user like so:
userdel airquality
rm -r /srv/airquality
** FOR WINDOWS DEVELOPMENT
First, download the latest Python 2.7 installer from: https://python.org/download/
if you have a 32-bit system: https://www.python.org/downloads/release/python-2710/
I have installed python2.7 (x64 bit)
link: https://www.python.org/ftp/python/2.7.10/python-2.7.10.amd64.msi
Next, run the installer and keep the defaults for example,
keep 'install for all users' checked and the installation path set as C:\Python27
This will install pip as well:
Install 'Github For Windows'. This gives us the powershell as well.
link: https://github-windows.s3.amazonaws.com/GitHubSetup.exe
Install mongodb for windows:
https://www.mongodb.org/downloads
go to: C:\mongodb\mongodb\bin
click on mongod to run the service
REFERENCE DOC: https://docs.djangoproject.com/en/1.8/ref/contrib/gis/install/#windows
Then open up the git shell
Go to the desired location where you want to store the repo.
mkdir airquality
cd airquality
pip install virtualenv
Run:
virtualenv .
./Scripts/activate
git clone https://github.com/johnsonc/airquality.git
cd airquality
pip install -r requirements.txt
Run python from command line to determine the compiler version used to build python (mine shows:
Python 2.7.10 (default, Aug 24 2015, 09:15:03) [MSC v.1600 64 bit (AMD64)] on x64)
According to the version number, MSC and 32/64 bit,
Download the corresponding SDK from this link:
Download the following:
OSGeo4W
link: http://trac.osgeo.org/osgeo4w/
The OSGeo4W installer makes it simple to install the PROJ.4, GDAL, and GEOS libraries required by GeoDjango. First, download the OSGeo4W installer, and run it.
Select Express Web-GIS Install and click next.
In the 'Select Packages' list, ensure that GDAL is selected;
MapServer and Apache are also enabled by default, but are not required by GeoDjango and may be unchecked safely.
After clicking next, the packages will be automatically downloaded and installed, after which you may exit the installer.
** Modify Windows environment variables
REF:
https://docs.djangoproject.com/en/1.8/ref/contrib/gis/install/#windows
In order to use GeoDjango, you will need to add your Python and OSGeo4W directories to your Windows system Path, as well as create GDAL_DATA and PROJ_LIB environment variables. The following set of commands, executable with cmd.exe, will set this up:
set OSGEO4W_ROOT=C:\OSGeo4W
set PYTHON_ROOT=C:\Python27
set GDAL_DATA=%OSGEO4W_ROOT%\share\gdal
set PROJ_LIB=%OSGEO4W_ROOT%\share\proj
set PATH=%PATH%;%PYTHON_ROOT%;%OSGEO4W_ROOT%\bin
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /f /d "%PATH%"
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v GDAL_DATA /t REG_EXPAND_SZ /f /d "%GDAL_DATA%"
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROJ_LIB /t REG_EXPAND_SZ /f /d "%PROJ_LIB%"
Add these line at the end of indiaspend/local_settings.py
GEOS_LIBRARY_PATH = 'C:\\OSGeo4W64\\bin\\geos_c.dll'
REST_FRAMEWORK={}
(The windows version will not have CSV downloads enabled in the API as well. Further testing would be needed. )
Run the dev instance.
python manage.py runserver
Download the c++ compiler for Python:
This is so that certain packages which do not have binaries will stil get compiled.
link: http://download.microsoft.com/download/7/9/6/796EF2E4-801B-4FC4-AB28-B59FBF6D907B/VCForPython27.msi
** Some miscellaneous troubleshooting links:
https://groups.google.com/forum/#!topic/geodjango/QwUw3JWj6sQ
https://pypi.python.org/pypi/Shapely/1.2#downloads
http://stackoverflow.com/questions/9684254/i-cannot-install-numpy-because-it-cant-find-python-2-7-althought-i-have-instal
http://www.gisinternals.com/release.php
http://www.gisinternals.com/query.html?content=filelist&file=release-1600-x64-gdal-1-11-1-mapserver-6-4-1.zip
* DATA
The device does need initial data which will be available from the server:
DUMP:
mongodump --out dbbackup --db indiaspend
RESTORE:
mongorestore --db indiaspend ./dbbackup/indiaspend --drop
PER COLLECTION:
mongodump --out dbbackup --collection <model_name> --db indiaspend
mongorestore -c <model_name> --db indiaspend ./dbbackup/indiaspend/aqi_aqdevice.bson --drop