Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
GeoInt_SIDT
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Mario Chirinos Colunga
GeoInt_SIDT
Commits
bb35fe54
Commit
bb35fe54
authored
Mar 28, 2019
by
Emmanuel René Huchim Puc
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of gitlab.geoint.mx:mario.chirinos/GeoInt_SIDT into dev
parents
e5be4d17
242d42f3
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
348 additions
and
110 deletions
+348
-110
crossrange.css
catalog/static/catalog/css/crossrange.css
+91
-0
dataRetrieval.js
catalog/static/catalog/js/dataRetrieval.js
+14
-5
map.html
catalog/templates/map.html
+20
-1
aside.html
reports/templates/aside.html
+0
-11
sclData.html
reports/templates/sclData.html
+2
-3
views.py
reports/views.py
+221
-90
No files found.
catalog/static/catalog/css/crossrange.css
0 → 100644
View file @
bb35fe54
.cross-range
{
-webkit-appearance
:
none
;
width
:
100%
;
margin
:
4.05px
0
;
}
.cross-range
:focus
{
outline
:
none
;
}
.cross-range
::-webkit-slider-runnable-track
{
width
:
100%
;
height
:
7.9px
;
cursor
:
pointer
;
box-shadow
:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
background
:
#dc7828
;
border-radius
:
25px
;
border
:
1px
solid
#dc7828
;
}
.cross-range
::-webkit-slider-thumb
{
box-shadow
:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
border
:
1px
solid
#000000
;
height
:
16px
;
width
:
16px
;
border-radius
:
50px
;
background
:
#ffffff
;
cursor
:
pointer
;
-webkit-appearance
:
none
;
margin-top
:
-5.05px
;
}
.cross-range
:focus::-webkit-slider-runnable-track
{
background
:
#e0863e
;
}
.cross-range
::-moz-range-track
{
width
:
100%
;
height
:
7.9px
;
cursor
:
pointer
;
box-shadow
:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
background
:
#dc7828
;
border-radius
:
25px
;
border
:
1px
solid
#dc7828
;
}
.cross-range
::-moz-range-thumb
{
box-shadow
:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
border
:
1px
solid
#000000
;
height
:
16px
;
width
:
16px
;
border-radius
:
50px
;
background
:
#ffffff
;
cursor
:
pointer
;
}
.cross-range
::-ms-track
{
width
:
100%
;
height
:
7.9px
;
cursor
:
pointer
;
background
:
transparent
;
border-color
:
transparent
;
color
:
transparent
;
}
.cross-range
::-ms-fill-lower
{
background
:
#ca6c21
;
border
:
1px
solid
#dc7828
;
border-radius
:
50px
;
box-shadow
:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
}
.cross-range
::-ms-fill-upper
{
background
:
#dc7828
;
border
:
1px
solid
#dc7828
;
border-radius
:
50px
;
box-shadow
:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
}
.cross-range
::-ms-thumb
{
box-shadow
:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
border
:
1px
solid
#000000
;
height
:
16px
;
width
:
16px
;
border-radius
:
50px
;
background
:
#ffffff
;
cursor
:
pointer
;
height
:
7.9px
;
}
.cross-range
:focus::-ms-fill-lower
{
background
:
#dc7828
;
}
.cross-range
:focus::-ms-fill-upper
{
background
:
#e0863e
;
}
#opacitySlide
{
background
:
transparent
;
padding-left
:
10px
;
padding-right
:
10px
;
}
catalog/static/catalog/js/dataRetrieval.js
View file @
bb35fe54
...
@@ -237,11 +237,15 @@ function drawApiResponse(element) {
...
@@ -237,11 +237,15 @@ function drawApiResponse(element) {
if
(
data
.
uuid
===
element
.
id
.
replace
(
"-li"
,
''
))
{
if
(
data
.
uuid
===
element
.
id
.
replace
(
"-li"
,
''
))
{
console
.
log
(
"footprint:
\n
"
,
data
.
product
.
footprint
);
console
.
log
(
"footprint:
\n
"
,
data
.
product
.
footprint
);
if
(
!
prevfeature
.
has
(
data
.
uuid
)){
if
(
!
prevfeature
.
has
(
data
.
uuid
)){
element
.
style
.
textDecoration
=
'underline'
;
//element.style.textDecoration = 'underline';
let
divh4
=
element
.
children
[
0
].
children
[
1
].
children
[
0
];
divh4
.
innerHTML
=
divh4
.
textContent
+
' <i class="fa fa-eye" style="color:green"> </i>'
;
prevfeature
.
set
(
data
.
uuid
,
osmap
.
addfootprint
(
data
.
product
.
footprint
,
prevfeature
));
prevfeature
.
set
(
data
.
uuid
,
osmap
.
addfootprint
(
data
.
product
.
footprint
,
prevfeature
));
}
else
{
}
else
{
if
(
prevfeature
.
length
!=
0
){
if
(
prevfeature
.
length
!=
0
){
element
.
style
.
textDecoration
=
'none'
;
//element.style.textDecoration = 'none';
let
divh4
=
element
.
children
[
0
].
children
[
1
].
children
[
0
]
divh4
.
innerHTML
=
divh4
.
textContent
+
' <i class="fa fa-eye-slash" style="color: #dd4b39"> </i>'
;
osmap
.
deletefootprint
(
prevfeature
.
get
(
data
.
uuid
));
osmap
.
deletefootprint
(
prevfeature
.
get
(
data
.
uuid
));
prevfeature
.
delete
(
data
.
uuid
);
prevfeature
.
delete
(
data
.
uuid
);
}
}
...
@@ -452,14 +456,13 @@ $(document).ready(function () {
...
@@ -452,14 +456,13 @@ $(document).ready(function () {
success
:
function
(
res
)
{
success
:
function
(
res
)
{
data
.
img
=
res
.
img
;
data
.
img
=
res
.
img
;
var
temp
=
document
.
querySelector
(
'#product_list_template'
);
var
temp
=
document
.
querySelector
(
'#product_list_template'
);
// filling template
// filling template
temp
.
content
.
querySelector
(
'.single-product-input'
).
id
=
data
.
uuid
+
"-div"
;
temp
.
content
.
querySelector
(
'.single-product-input'
).
id
=
data
.
uuid
+
"-div"
;
temp
.
content
.
querySelector
(
'input'
).
value
=
data
.
uuid
;
temp
.
content
.
querySelector
(
'input'
).
value
=
data
.
uuid
;
temp
.
content
.
querySelector
(
'li'
).
id
=
data
.
uuid
+
"-li"
;
temp
.
content
.
querySelector
(
'li'
).
id
=
data
.
uuid
+
"-li"
;
temp
.
content
.
querySelector
(
'h4'
).
id
=
data
.
uuid
+
"-h4"
;
temp
.
content
.
querySelector
(
'h4'
).
id
=
data
.
uuid
+
"-h4"
;
temp
.
content
.
querySelector
(
'
h4'
).
textContent
=
data
.
product
.
producttype
+
"_"
+
data
.
product
.
tileid
;
temp
.
content
.
querySelector
(
'
p'
).
textContent
=
data
.
product
.
producttype
+
"_"
+
data
.
product
.
tileid
;
temp
.
content
.
querySelector
(
'
p'
).
textContent
=
data
.
product
.
beginposition
;
temp
.
content
.
querySelector
(
'
h4'
).
innerHTML
=
parserDate
(
data
.
product
.
beginposition
)
+
' <i class="fa fa-eye-slash" style="color: #dd4b39"> </i>'
;
temp
.
content
.
querySelector
(
'img'
).
src
=
"data:image/jpeg;base64, "
+
data
.
img
;
temp
.
content
.
querySelector
(
'img'
).
src
=
"data:image/jpeg;base64, "
+
data
.
img
;
temp
.
content
.
querySelectorAll
(
'span'
)[
1
].
textContent
=
data
.
product
.
identifier
;
temp
.
content
.
querySelectorAll
(
'span'
)[
1
].
textContent
=
data
.
product
.
identifier
;
temp
.
content
.
querySelectorAll
(
'span'
)[
2
].
textContent
=
data
.
product
.
size
;
temp
.
content
.
querySelectorAll
(
'span'
)[
2
].
textContent
=
data
.
product
.
size
;
...
@@ -496,6 +499,12 @@ $(document).ready(function () {
...
@@ -496,6 +499,12 @@ $(document).ready(function () {
});
});
});
});
function
parserDate
(
parsedate
){
let
fullDate
=
parsedate
.
split
(
'T'
);
let
date
=
fullDate
[
0
].
split
(
'-'
);
date
=
date
[
1
]
+
"/"
+
date
[
2
]
+
"/"
+
date
[
0
];
return
date
+
" "
+
fullDate
[
1
].
split
(
'.'
)[
0
];
}
// adds product to cart
// adds product to cart
$
(
'#product-to-cart-form'
).
submit
(
function
(
event
)
{
$
(
'#product-to-cart-form'
).
submit
(
function
(
event
)
{
...
...
catalog/templates/map.html
View file @
bb35fe54
...
@@ -5,6 +5,7 @@
...
@@ -5,6 +5,7 @@
<link
rel=
"stylesheet"
href=
"{% static 'catalog/css/map.css' %}"
type=
"text/css"
>
<link
rel=
"stylesheet"
href=
"{% static 'catalog/css/map.css' %}"
type=
"text/css"
>
<link
rel=
"stylesheet"
href=
"{% static 'catalog/css/body.css' %}"
type=
"text/css"
>
<link
rel=
"stylesheet"
href=
"{% static 'catalog/css/body.css' %}"
type=
"text/css"
>
<link
rel=
"stylesheet"
href=
"{% static 'catalog/css/modal1.css' %}"
type=
"text/css"
>
<link
rel=
"stylesheet"
href=
"{% static 'catalog/css/modal1.css' %}"
type=
"text/css"
>
<link
rel=
"stylesheet"
href=
"{% static 'catalog/css/crossrange.css' %}"
type=
"text/css"
>
<!-- <link rel="stylesheet" href="https://openlayers.org/en/v4.6.4/css/ol.css" type="text/css">-->
<!-- <link rel="stylesheet" href="https://openlayers.org/en/v4.6.4/css/ol.css" type="text/css">-->
<link
rel=
"stylesheet"
href=
"https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/css/ol.css"
>
<link
rel=
"stylesheet"
href=
"https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/css/ol.css"
>
<link
rel=
"stylesheet"
href=
"{% static 'catalog/css/waitingModal.css' %}"
type=
"text/css"
>
<link
rel=
"stylesheet"
href=
"{% static 'catalog/css/waitingModal.css' %}"
type=
"text/css"
>
...
@@ -190,7 +191,8 @@
...
@@ -190,7 +191,8 @@
</a>
</a>
<ul
class=
"treeview-menu sidebar-form"
>
<ul
class=
"treeview-menu sidebar-form"
>
<li>
<li>
<input
class=
"form-control"
type=
"number"
value=
"100"
name=
"cloudPercentage"
>
<input
class=
"form-text"
id=
"clouds"
value=
"5"
oninput=
"setCloudPercentageSlider(this.value)"
name=
"cloudPercentage"
disabled
>
<input
class=
"cross-range"
type=
"range"
min=
"0"
max=
"100"
step=
"1"
value=
"5"
oninput=
"setCloudPercentage(this.value)"
id=
"cloudPercentageSelector"
name=
cloudPercentage
>
</li>
</li>
</ul>
</ul>
</li>
</li>
...
@@ -322,6 +324,23 @@
...
@@ -322,6 +324,23 @@
</script>
</script>
<script>
<script>
function
setCloudPercentage
(
clouds
)
{
//console.log(clouds)
document
.
getElementById
(
"clouds"
).
value
=
clouds
;
}
function
setCloudPercentageSlider
(
clouds
)
{
//console.log(clouds)
//TODO
document
.
getElementById
(
"cloudPercentageSelector"
).
value
=
clouds
;
if
(
parseInt
(
clouds
)
>
100
){
document
.
getElementById
(
"cloudPercentageSelector"
).
value
=
100
;
}
if
(
parseInt
(
clouds
)
<
0
){
document
.
getElementById
(
"cloudPercentageSelector"
).
value
=
0
;
}
}
//var osmap = new OpenStreetMapsClass("map", -99.145556,19.419444, 10);
//var osmap = new OpenStreetMapsClass("map", -99.145556,19.419444, 10);
var
osmap
=
new
sidtMap
(
"map"
,
-
89.63873079999999
,
21.0404457
,
7
);
var
osmap
=
new
sidtMap
(
"map"
,
-
89.63873079999999
,
21.0404457
,
7
);
osmap
.
geolocation
();
osmap
.
geolocation
();
...
...
reports/templates/aside.html
View file @
bb35fe54
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<br>
<br>
<ul
class=
"sidebar-menu"
data-widget=
"tree"
>
<ul
class=
"sidebar-menu"
data-widget=
"tree"
>
{% if request.user.is_authenticated %}
<li>
<a
class=
"treeview "
href=
"{{ BASE_URL }}/reports"
>
<i
class=
"fa fa-map"
></i>
<span>
Home
</span>
<span
class=
"pull-right-container"
>
<span
class=
"label label-primary pull-right"
></span>
</span>
</a>
</li>
{% endif %}
{% if folders %}
{% if folders %}
<li
class=
"treeview"
>
<li
class=
"treeview"
>
<a
href=
"#"
>
<a
href=
"#"
>
...
...
reports/templates/sclData.html
View file @
bb35fe54
...
@@ -119,12 +119,11 @@
...
@@ -119,12 +119,11 @@
<!-- Main content -->
<!-- Main content -->
<div
class=
"container floating-panel"
style=
"position:absolute; bottom: 40px; left: 12%; width: 500px; z-index: 1000"
>
<div
class=
"container floating-panel"
style=
"position:absolute; bottom: 40px; left: 12%; width: 500px; z-index: 1000"
>
<div
class=
"range-control"
id=
"rangecontrol"
>
<div
class=
"range-control"
id=
"rangecontrol"
>
<span
id=
"tooltiptext"
>
No Data
</span>
<span
id=
"tooltiptext"
>
{{ labels|first|slice:"6:8" }}/{{ labels|first|slice:"4:6" }}/{{ labels|first|slice:"0:4" }}
</span>
<input
class=
"cross-range"
id=
"inputRange"
type=
"range"
min=
"
0"
max=
"{{ labels|length }}"
step=
"1"
value=
"0
"
data-thumbwidth=
"20"
style=
"background: transparent;"
>
<input
class=
"cross-range"
id=
"inputRange"
type=
"range"
min=
"
1"
max=
"{{ labels|length }}"
step=
"1"
value=
"1
"
data-thumbwidth=
"20"
style=
"background: transparent;"
>
<datalist
class=
"range__list"
id=
"number"
>
<datalist
class=
"range__list"
id=
"number"
>
<option>
No Data
</option>
{% for label in labels %}
{% for label in labels %}
<option
class=
"range__opt"
value=
"{{ label }}"
>
{{ label|slice:"6:8" }}/{{ label|slice:"4:6" }}/{{label|slice:"0:4" }}
</option>
<option
class=
"range__opt"
value=
"{{ label }}"
>
{{ label|slice:"6:8" }}/{{ label|slice:"4:6" }}/{{label|slice:"0:4" }}
</option>
{% endfor %}
{% endfor %}
...
...
reports/views.py
View file @
bb35fe54
...
@@ -3,6 +3,7 @@ from __future__ import unicode_literals
...
@@ -3,6 +3,7 @@ from __future__ import unicode_literals
import
json
import
json
import
os
import
os
import
string
import
xml.etree.ElementTree
as
ET
import
xml.etree.ElementTree
as
ET
# Create your views here.
# Create your views here.
from
collections
import
OrderedDict
from
collections
import
OrderedDict
...
@@ -17,6 +18,17 @@ from django.views.decorators.csrf import csrf_exempt
...
@@ -17,6 +18,17 @@ from django.views.decorators.csrf import csrf_exempt
from
GeoInt_SIDT.settings
import
BASE_URL
from
GeoInt_SIDT.settings
import
BASE_URL
from
catalog.models
import
Purchase
from
catalog.models
import
Purchase
from
reportlab.pdfgen.canvas
import
Canvas
from
reportlab.lib.pagesizes
import
letter
from
reportlab.lib.styles
import
getSampleStyleSheet
from
reportlab.lib.units
import
inch
from
reportlab.lib
import
colors
from
reportlab.platypus
import
Paragraph
,
Frame
,
Spacer
,
Image
,
Table
,
TableStyle
,
SimpleDocTemplate
,
PageBreak
from
reportlab.graphics.charts.barcharts
import
VerticalBarChart
from
reportlab.graphics.shapes
import
Drawing
,
String
from
reportlab.graphics.charts.textlabels
import
Label
,
LabelOffset
from
reportlab.graphics.charts.legends
import
Legend
# -------------------------------------------------------------------------------
# -------------------------------------------------------------------------------
########### lee archivo de configuración ################
########### lee archivo de configuración ################
...
@@ -34,12 +46,11 @@ def report_L2ASCL(request, purchase_id):
...
@@ -34,12 +46,11 @@ def report_L2ASCL(request, purchase_id):
template
=
"sclData.html"
template
=
"sclData.html"
reporteDir
=
'mask'
reporteDir
=
'mask'
folders
=
""
folders
=
""
purchase
=
Purchase
.
objects
.
values
(
'user__email'
,
'is_public'
)
.
filter
(
pk
=
purchase_id
)
purchase
=
Purchase
.
objects
.
values
(
'user__email'
,
'is_public'
)
.
filter
(
pk
=
purchase_id
)
email
=
purchase
[
0
][
'user__email'
]
email
=
purchase
[
0
][
'user__email'
]
path
=
USERS_PATH
+
email
+
'/'
+
purchase_id
+
'/'
path
=
USERS_PATH
+
email
+
'/'
+
purchase_id
+
'/'
scl_data_path
=
USERS_PATH
+
email
+
"/"
+
purchase_id
+
"/scl_data.json"
scl_data_path
=
USERS_PATH
+
email
+
"/"
+
purchase_id
+
"/scl_data.json"
with
open
(
USERS_PATH
+
email
+
"/"
+
purchase_id
+
"/findProducts.json"
)
as
p
:
with
open
(
USERS_PATH
+
email
+
"/"
+
purchase_id
+
"/findProducts.json"
)
as
p
:
dataProduct
=
json
.
load
(
p
)
dataProduct
=
json
.
load
(
p
)
startDate
=
str
(
dataProduct
[
'startDate'
])[:
4
]
+
'-'
+
str
(
dataProduct
[
'startDate'
])[
4
:
6
]
+
'-'
+
str
(
startDate
=
str
(
dataProduct
[
'startDate'
])[:
4
]
+
'-'
+
str
(
dataProduct
[
'startDate'
])[
4
:
6
]
+
'-'
+
str
(
...
@@ -47,14 +58,15 @@ def report_L2ASCL(request, purchase_id):
...
@@ -47,14 +58,15 @@ def report_L2ASCL(request, purchase_id):
endDate
=
str
(
dataProduct
[
'endDate'
])[:
4
]
+
'-'
+
str
(
dataProduct
[
'endDate'
])[
4
:
6
]
+
'-'
+
str
(
endDate
=
str
(
dataProduct
[
'endDate'
])[:
4
]
+
'-'
+
str
(
dataProduct
[
'endDate'
])[
4
:
6
]
+
'-'
+
str
(
dataProduct
[
'endDate'
])[
6
:
8
]
dataProduct
[
'endDate'
])[
6
:
8
]
graphData
,
label
,
defaultLabel
,
defaultDataset
,
datasets
=
ProcessChartData
(
scl_data_path
)
graphData
,
label
,
defaultLabel
,
defaultDataset
,
datasets
=
ProcessChartData
(
scl_data_path
)
image_path
=
email
+
"/"
+
purchase_id
+
"/"
+
"out/"
+
reporteDir
+
"/TCI/thumbnails/"
image_path
=
email
+
"/"
+
purchase_id
+
"/"
+
"out/"
+
reporteDir
+
"/TCI/thumbnails/"
SCL_path
=
email
+
"/"
+
purchase_id
+
"/"
+
"out/"
+
reporteDir
+
"/SCL/"
SCL_path
=
email
+
"/"
+
purchase_id
+
"/"
+
"out/"
+
reporteDir
+
"/SCL/"
if
os
.
path
.
exists
(
path
+
reporteDir
+
".pdf"
):
print
(
"si existe"
)
#PDFGenerator(request, path, reporteDir,)
else
:
PDFGenerator
(
request
,
path
,
reporteDir
,
datasets
)
return
render
(
request
,
template
,
{
"graphData"
:
json
.
dumps
(
graphData
),
return
render
(
request
,
template
,
{
"graphData"
:
json
.
dumps
(
graphData
),
"report_name"
:
"SCL Image Classification Data(Km²)"
,
"report_name"
:
"SCL Image Classification Data(Km²)"
,
...
@@ -65,11 +77,12 @@ def report_L2ASCL(request, purchase_id):
...
@@ -65,11 +77,12 @@ def report_L2ASCL(request, purchase_id):
'defaultDataSet'
:
defaultDataset
,
"folders"
:
folders
,
'defaultDataSet'
:
defaultDataset
,
"folders"
:
folders
,
"zone"
:
reporteDir
,
"purchaseID"
:
purchase_id
,
"zone"
:
reporteDir
,
"purchaseID"
:
purchase_id
,
"labels"
:
graphData
[
'data'
][
'labels'
],
"labels"
:
graphData
[
'data'
][
'labels'
],
"polygon"
:
dataProduct
[
'wkt'
],
"email"
:
email
})
"polygon"
:
dataProduct
[
'wkt'
],
"email"
:
email
})
# -------------------------------------------------------------------------------def Reports(request):
# -------------------------------------------------------------------------------def Reports(request):
def
Reports
(
request
):
def
Reports
(
request
):
progress
=
0
progress
=
0
productList
=
[]
productList
=
[]
...
@@ -77,7 +90,8 @@ def Reports(request):
...
@@ -77,7 +90,8 @@ def Reports(request):
folders
=
[]
folders
=
[]
zip
=
""
zip
=
""
product_list
=
Purchase
.
objects
.
values
(
'id'
,
'productList'
,
'aggreg_date'
,
'search__clouds'
,
'search__startDate'
,
product_list
=
Purchase
.
objects
.
values
(
'id'
,
'productList'
,
'aggreg_date'
,
'search__clouds'
,
'search__startDate'
,
'search__endDate'
,
'search__process_id__name'
,
'search__search_name'
,
'is_public'
)
.
filter
(
'search__endDate'
,
'search__process_id__name'
,
'search__search_name'
,
'is_public'
)
.
filter
(
user_id
=
request
.
user
.
id
,
purchased
=
1
)
user_id
=
request
.
user
.
id
,
purchased
=
1
)
for
producto
in
product_list
:
for
producto
in
product_list
:
log_info
=
USERS_PATH
+
request
.
user
.
email
+
"/"
+
str
(
producto
[
'id'
])
+
"/L2ASCL_AreaProcessing.log"
log_info
=
USERS_PATH
+
request
.
user
.
email
+
"/"
+
str
(
producto
[
'id'
])
+
"/L2ASCL_AreaProcessing.log"
...
@@ -120,22 +134,19 @@ def Reports(request):
...
@@ -120,22 +134,19 @@ def Reports(request):
print
(
"folder out noes not exists"
)
print
(
"folder out noes not exists"
)
else
:
else
:
for
files
in
os
.
listdir
(
absolute_path
):
for
files
in
os
.
listdir
(
absolute_path
):
if
files
==
'scl_data.json'
:
if
files
==
'scl_data.json'
:
#print(files)
#
print(files)
initial_folder
=
files
[:
8
]
initial_folder
=
files
[:
8
]
break
break
elif
files
.
endswith
(
'_sclData.json'
):
elif
files
.
endswith
(
'_sclData.json'
):
initial_folder
=
files
[:
14
]
initial_folder
=
files
[:
14
]
#
if len(folders) == 0:
#
if len(folders) == 0:
# initial_folder = "../#"
# initial_folder = "../#"
#
else:
#
else:
# initial_folder = folders.pop(0) + "_sclData"
# initial_folder = folders.pop(0) + "_sclData"
print
(
initial_folder
)
print
(
initial_folder
)
zip_path
=
USERS_PATH
+
request
.
user
.
email
+
"/"
+
str
(
producto
[
'id'
])
zip_path
=
USERS_PATH
+
request
.
user
.
email
+
"/"
+
str
(
producto
[
'id'
])
# print(zip_path)
# print(zip_path)
...
@@ -180,7 +191,7 @@ def wsProcessProgress(request):
...
@@ -180,7 +191,7 @@ def wsProcessProgress(request):
if
request
.
is_ajax
():
if
request
.
is_ajax
():
progress
=
0
progress
=
0
productList2
=
[]
productList2
=
[]
product_list
=
Purchase
.
objects
.
values
(
'id'
,
'user__email'
,
'productList'
,
'aggreg_date'
,
'search__clouds'
,
product_list
=
Purchase
.
objects
.
values
(
'id'
,
'user__email'
,
'productList'
,
'aggreg_date'
,
'search__clouds'
,
'search__startDate'
,
'search__endDate'
,
'search__startDate'
,
'search__endDate'
,
'search__process_id__name'
,
'progress'
)
.
filter
(
user_id
=
request
.
user
.
id
,
'search__process_id__name'
,
'progress'
)
.
filter
(
user_id
=
request
.
user
.
id
,
purchased
=
1
)
purchased
=
1
)
...
@@ -227,6 +238,7 @@ def wsProcessProgress(request):
...
@@ -227,6 +238,7 @@ def wsProcessProgress(request):
else
:
else
:
raise
Http404
raise
Http404
# tiles
# tiles
def
tiles
(
request
,
purchase_id
,
report
,
layer_type
,
date
,
z
,
x
,
y
):
def
tiles
(
request
,
purchase_id
,
report
,
layer_type
,
date
,
z
,
x
,
y
):
purchase
=
Purchase
.
objects
.
values
(
'user__email'
,
'is_public'
)
.
filter
(
pk
=
purchase_id
)
purchase
=
Purchase
.
objects
.
values
(
'user__email'
,
'is_public'
)
.
filter
(
pk
=
purchase_id
)
...
@@ -258,8 +270,6 @@ def tileinfo(request):
...
@@ -258,8 +270,6 @@ def tileinfo(request):
purchase
=
Purchase
.
objects
.
values
(
'user__email'
)
.
filter
(
pk
=
int
(
req
[
'purchase_id'
][
0
]))
purchase
=
Purchase
.
objects
.
values
(
'user__email'
)
.
filter
(
pk
=
int
(
req
[
'purchase_id'
][
0
]))
email
=
purchase
[
0
][
'user__email'
]
email
=
purchase
[
0
][
'user__email'
]
resource_path
=
"{}{}/{}/out/{}/TCI/tiles/{}_TCI_10m/tilemapresource.xml"
.
format
(
resource_path
=
"{}{}/{}/out/{}/TCI/tiles/{}_TCI_10m/tilemapresource.xml"
.
format
(
USERS_PATH
,
email
,
req
[
'purchase_id'
][
0
],
req
[
'report'
][
0
],
USERS_PATH
,
email
,
req
[
'purchase_id'
][
0
],
req
[
'report'
][
0
],
req
[
'date'
][
0
]
req
[
'date'
][
0
]
...
@@ -268,7 +278,6 @@ def tileinfo(request):
...
@@ -268,7 +278,6 @@ def tileinfo(request):
if
not
os
.
path
.
exists
(
resource_path
):
if
not
os
.
path
.
exists
(
resource_path
):
raise
Http404
raise
Http404
tree
=
ET
.
parse
(
resource_path
)
tree
=
ET
.
parse
(
resource_path
)
bounding_box
=
tree
.
find
(
'BoundingBox'
)
bounding_box
=
tree
.
find
(
'BoundingBox'
)
sets
=
[
int
(
set
.
get
(
'order'
))
for
set
in
tree
.
findall
(
'TileSets/TileSet'
)]
sets
=
[
int
(
set
.
get
(
'order'
))
for
set
in
tree
.
findall
(
'TileSets/TileSet'
)]
...
@@ -292,81 +301,202 @@ def tileinfo(request):
...
@@ -292,81 +301,202 @@ def tileinfo(request):
raise
Http404
raise
Http404
# ------------------------------------------------------------------------
# ------------------------------------------------------------------------
def
PDFGenerator
(
request
,
ruta
,
reporteDir
,
datasets
):
# take the data and make ready for paragraph
thumbs
=
ruta
+
'out/'
+
reporteDir
+
'/TCI/thumbnails/'
def
dataToParagraph
(
name
,
data
):
SCL
=
ruta
+
'out/'
+
reporteDir
+
'/SCL/'
p
=
'<strong>Subject name: </strong>'
+
name
+
'<br/>'
+
'<strong>Data: </strong> ('
for
i
in
range
(
len
(
data
)):
p
+=
str
(
data
[
i
])
if
i
!=
len
(
data
)
-
1
:
p
+=
', '
else
:
p
+=
')'
return
p
#################################################################################
# check https://developers.google.com/chart/image/docs/making_charts #
# check https://developers.google.com/chart/image/docs/chart_params#gcharts_cht #
# cht = type #
# chd = data values #
# chl = labels #
#################################################################################
path
,
dirs
,
files
=
next
(
os
.
walk
(
thumbs
))
# take the data and convert to list of strings ready for table
w
,
h
=
letter
def
dataToTable
(
name
,
data
):
data
=
[
str
(
x
)
for
x
in
data
]
data
.
insert
(
0
,
name
)
return
data
c
=
canvas
.
Canvas
(
ruta
+
reporteDir
+
".pdf"
,
pagesize
=
letter
,
)
# Header #
# create the table for our document
c
.
drawImage
(
USERS_PATH
+
'header.png'
,
170
,
h
-
90
,
width
=
300
,
height
=
70
)
def
myTable
(
path1
,
path2
,
basefile
):
image1
=
Image
(
path1
,
height
=
300
,
width
=
200
,
mask
=
'auto'
)
path
,
dirs
,
files
=
next
(
os
.
walk
(
path2
))
for
file
in
files
:
c
.
showPage
()
if
file
.
startswith
(
basefile
[:
8
]):
variable
=
""
if
file
.
endswith
(
'.tif'
)
and
not
file
.
endswith
(
'0.tif'
):
# aqui estan los datos de todas las lineas #
# image2 = Image(path2 + file, height=300, width=200, mask='auto')
for
data2
in
datasets
:
image2
=
image1
# solo de la linea verde #
print
(
data2
[
'data'
])
# print(data2['data'][1])
# variable = "0,0.0216,0,5.1408,29.8728,34.1892,57.0528,142.6788,506.6496,107.8344,0"
data
=
[[
'TCI'
,
'SCL'
],
[
image1
,
image2
]]
variable
+=
str
(
data2
[
'data'
][
0
])
variable
+=
","
print
(
variable
)
# body #
t
=
Table
(
data
)
for
file
in
files
:
GRID_STYLE
=
TableStyle
(
[
(
'ALIGN'
,
(
0
,
0
),
(
-
1
,
-
1
),
'CENTER'
),
(
'VALIGN'
,
(
0
,
0
),
(
-
1
,
-
1
),
'TOP'
),
],
)
t
.
setStyle
(
GRID_STYLE
)
return
t
# create a bar chart and specify positions, sizes, and colors
def
myBarChart
(
data
,
maxi
,
fecha
):
drawing
=
Drawing
(
600
,
200
)
bc
=
VerticalBarChart
()
bc
.
x
=
50
bc
.
y
=
50
bc
.
height
=
125
bc
.
width
=
500
bc
.
data
=
data
bc
.
barWidth
=
.3
*
inch
bc
.
groupSpacing
=
.2
*
inch
bc
.
strokeColor
=
colors
.
black
bc
.
valueAxis
.
valueMin
=
0
bc
.
valueAxis
.
valueMax
=
maxi
bc
.
valueAxis
.
valueStep
=
50
bc
.
categoryAxis
.
labels
.
boxAnchor
=
'ne'
bc
.
categoryAxis
.
labels
.
dx
=
8
bc
.
categoryAxis
.
labels
.
dy
=
-
2
catNames
=
fecha
[
6
:
8
]
+
"/"
+
fecha
[
4
:
6
]
+
"/"
+
fecha
[
0
:
4
]
catNames
=
catNames
.
split
()
bc
.
categoryAxis
.
categoryNames
=
catNames
bc
.
bars
[
0
]
.
fillColor
=
colors
.
brown
bc
.
bars
[
1
]
.
fillColor
=
colors
.
lightgrey
bc
.
bars
[
2
]
.
fillColor
=
colors
.
gray
bc
.
bars
[
3
]
.
fillColor
=
colors
.
lightblue
bc
.
bars
[
4
]
.
fillColor
=
colors
.
darkgray
bc
.
bars
[
5
]
.
fillColor
=
colors
.
green
bc
.
bars
[
6
]
.
fillColor
=
colors
.
yellow
# bc.bars[7].fillColor = colors.black
bc
.
barSpacing
=
1
bc
.
categoryAxis
.
labels
.
dx
=
8
bc
.
categoryAxis
.
labels
.
dy
=
-
2
bc
.
barLabelFormat
=
'
%
f km²'
bc
.
barLabels
.
nudge
=
7
bc
.
valueAxis
.
labelTextFormat
=
'
%
d km²'
bc
.
valueAxis
.
valueMin
=
0
drawing
.
add
(
bc
)
return
drawing
# add a legend for the bar chart
def
myBarLegend
(
drawing
,
labels
):
"Add sample swatches to a diagram."
d
=
drawing
or
Drawing
(
400
,
200
)
swatches
=
Legend
()
swatches
.
alignment
=
'right'
swatches
.
x
=
80
swatches
.
y
=
160
swatches
.
deltax
=
60
swatches
.
dxTextSpace
=
10
swatches
.
columnMaximum
=
4
items
=
[
(
colors
.
brown
,
labels
[
0
]),
(
colors
.
lightgrey
,
labels
[
1
]),
(
colors
.
gray
,
labels
[
2
]),
(
colors
.
lightblue
,
labels
[
3
]),
(
colors
.
darkgray
,
labels
[
4
]),
(
colors
.
green
,
labels
[
5
]),
(
colors
.
yellow
,
labels
[
6
]
+
"km2"
),
# (colors.black, labels[7]),
]
swatches
.
colorNamePairs
=
items
d
.
add
(
swatches
,
'legend'
)
return
d
def
PDFGenerator
(
request
,
ruta
,
reporteDir
,
datasets
):
thumbs
=
ruta
+
'out/'
+
reporteDir
+
'/TCI/thumbnails/'
SCL
=
ruta
+
'out/'
+
reporteDir
+
'/SCL/split/'
story
=
[]
# define the style for our paragraph text
styles
=
getSampleStyleSheet
()
styleN
=
styles
[
'Normal'
]
# Header
im
=
Image
(
USERS_PATH
+
'header.png'
,
width
=
300
,
height
=
70
)
im
.
hAlign
=
'CENTER'
story
.
append
(
im
)
story
.
append
(
PageBreak
())
path
,
dirs
,
files
=
next
(
os
.
walk
(
thumbs
))
print
(
len
(
files
))
for
index
,
file
in
enumerate
(
files
):
values
=
[]
labels
=
[]
maxi
=
0
#for data in datasets:
for
data
in
datasets
[:
len
(
datasets
)
-
1
]:
if
maxi
>
data
[
'data'
][
index
]:
maxi
=
maxi
else
:
maxi
=
data
[
'data'
][
index
]
#print (maxi)
values
.
append
([
data
[
'data'
][
index
]])
labels
.
append
(
data
[
'label'
])
path1
=
thumbs
+
file
# Header
im
=
Image
(
USERS_PATH
+
'header.png'
,
width
=
300
,
height
=
70
)
im
.
hAlign
=
'CENTER'
story
.
append
(
im
)
date
=
datetime
.
strptime
(
file
[:
8
],
'
%
Y
%
m
%
d'
)
.
strftime
(
'
%
d/
%
m/
%
Y'
)
story
.
append
(
Spacer
(
1
,
.5
*
inch
)
)
c
.
drawString
(
280
,
h
-
125
,
date
)
# add the title
# story.append(Paragraph("<strong>Results for Vizard Experiment</strong>", styleN))
# story.append(Spacer(1, .25 * inch))
c
.
drawString
(
160
,
h
-
165
,
'TCI'
)
# convert data to paragraph form and then add paragraphs
c
.
drawString
(
440
,
h
-
165
,
'SCL'
)
# story.append(Paragraph(dataToParagraph(subject1, results1), styleN))
c
.
drawImage
(
USERS_PATH
+
'header.png'
,
170
,
h
-
90
,
width
=
300
,
height
=
70
)
# story.append(Spacer(1, .25 * inch))
# story.append(Paragraph(dataToParagraph(subject2, results2), styleN))
# story.append(Spacer(1, .5 * inch))
# Thumb image #
c
.
drawImage
(
thumbs
+
file
,
70
,
h
-
470
,
height
=
300
,
width
=
200
,
mask
=
'auto'
)
# SCL image #
# table with images
path2
,
dirs2
,
files2
=
next
(
os
.
walk
(
SCL
))
story
.
append
(
myTable
(
path1
,
SCL
,
file
))
for
file2
in
files2
:
story
.
append
(
Spacer
(
1
,
.5
*
inch
))
if
file2
.
startswith
(
file
[:
8
]):
if
not
file2
.
endswith
(
'.tif'
):
c
.
drawImage
(
SCL
+
file2
,
350
,
h
-
470
,
height
=
300
,
width
=
200
,
mask
=
'auto'
)
# Chart #
# add barchart and legend
# los valores deben ir en chd para cada elemento #
#drawing = myBarChart(values[:len(values) - 1], maxi, file)
grafica
=
"https://chart.googleapis.com/chart?"
\
drawing
=
myBarChart
(
values
,
maxi
,
file
)
"&chs=900x150"
\
#drawing = myBarLegend(drawing, labels[:len(labels) - 1])
"&cht=bvs"
\
drawing
=
myBarLegend
(
drawing
,
labels
)
"&chd=t:"
+
variable
+
""
\
drawing
.
hAlign
=
'CENTER'
"&chds=a"
\
story
.
append
(
drawing
)
"&chco=ff8afa|659acc|99d4d9|696767|98775b|ababab|dddddd|d9f9ff|44ba5d|fff98b|383838"
\
"&chxt=y"
\
"&chm=N,000000,0,-1,11"
c
.
drawImage
(
grafica
,
140
,
h
-
650
,
width
=
900
,
height
=
150
)
story
.
append
(
PageBreak
())
c
.
drawImage
(
USERS_PATH
+
'values.png'
,
70
,
h
-
680
,
width
=
500
,
height
=
25
)
c
.
showPage
()
# build our document with the list of flowables we put together
c
.
save
()
doc
=
SimpleDocTemplate
(
ruta
+
reporteDir
+
".pdf"
,
pagesize
=
letter
,
topMargin
=
0
)
doc
.
build
(
story
)
pass
pass
#-----------------------------------------------------------------------------------------------------------------
# -----------------------------------------------------------------------------------------------------------------
def
ProcessChartData
(
path
):
def
ProcessChartData
(
path
):
with
open
(
path
)
as
f
:
with
open
(
path
)
as
f
:
json_data
=
OrderedDict
(
json
.
load
(
f
))
json_data
=
OrderedDict
(
json
.
load
(
f
))
...
@@ -412,18 +542,19 @@ def ProcessChartData(path):
...
@@ -412,18 +542,19 @@ def ProcessChartData(path):
label
=
graphData
[
'data'
][
'labels'
][
0
]
label
=
graphData
[
'data'
][
'labels'
][
0
]
defaultLabel
=
graphData
[
'data'
][
'labels'
][
0
]
defaultLabel
=
graphData
[
'data'
][
'labels'
][
0
]
defaultDataset
=
label
[
0
:
4
]
+
"/"
+
label
[
4
:
6
]
+
"/"
+
label
[
6
:]
defaultDataset
=
label
[
0
:
4
]
+
"/"
+
label
[
4
:
6
]
+
"/"
+
label
[
6
:]
return
graphData
,
label
,
defaultLabel
,
defaultDataset
,
data
[
'datasets'
]
return
graphData
,
label
,
defaultLabel
,
defaultDataset
,
data
[
'datasets'
]
#---------------------------------------------------------------------------------
#
---------------------------------------------------------------------------------
def
wsIs_Public
(
request
):
def
wsIs_Public
(
request
):
if
request
.
is_ajax
():
if
request
.
is_ajax
():
status
=
request
.
GET
.
get
(
"status"
)
status
=
request
.
GET
.
get
(
"status"
)
path
=
"/reports/"
+
request
.
GET
.
get
(
"purchase_id"
)
+
"/scl_data"
path
=
"/reports/"
+
request
.
GET
.
get
(
"purchase_id"
)
+
"/scl_data"
purchase
=
Purchase
.
objects
.
get
(
pk
=
request
.
GET
.
get
(
"purchase_id"
))
purchase
=
Purchase
.
objects
.
get
(
pk
=
request
.
GET
.
get
(
"purchase_id"
))
purchase
.
is_public
=
request
.
GET
.
get
(
"status"
)
purchase
.
is_public
=
request
.
GET
.
get
(
"status"
)
purchase
.
save
()
purchase
.
save
()
#print (purchase.aggreg_date)
#
print (purchase.aggreg_date)
return
HttpResponse
(
"hola"
)
return
HttpResponse
(
"hola"
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment