Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
GeoSentinel
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
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Mario Chirinos Colunga
GeoSentinel
Commits
8ae0bb49
Commit
8ae0bb49
authored
Dec 16, 2018
by
Mario Chirinos Colunga
💬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
3fa28e6d
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
169 additions
and
153 deletions
+169
-153
.rasterWkt.py.swp
geosentinel/.rasterWkt.py.swp
+0
-0
L2ASCLtoJSON.py
geosentinel/L2ASCLtoJSON.py
+15
-3
rasterWkt.py
geosentinel/rasterWkt.py
+50
-123
rasterWkt.pyc
geosentinel/rasterWkt.pyc
+0
-0
L2ASCL_AreaProcessing.sh
tools/L2ASCL_AreaProcessing.sh
+21
-11
mergeImages.sh
tools/mergeImages.sh
+22
-8
mergeImages.sh.save
tools/mergeImages.sh.save
+49
-0
mergeImagesByDirectory.sh
tools/mergeImagesByDirectory.sh
+12
-8
No files found.
geosentinel/.rasterWkt.py.swp
deleted
100644 → 0
View file @
3fa28e6d
File deleted
geosentinel/L2ASCLtoJSON.py
View file @
8ae0bb49
...
...
@@ -7,18 +7,30 @@ import gdal
import
sys
import
json
from
collections
import
Counter
sys
.
path
.
append
(
'/home/mario/git/GeoSentinel'
)
from
geosentinel
import
rasterWkt
#-------------------------------------------------------------------------------
def
L2ASCLtoDict
(
filename
,
wkt
):
'''
L2ASCLtoDict
'''
intput
=
gdal
.
Open
(
filename
)
rows
,
cols
,
geotransform
=
intput
.
RasterYSize
,
intput
.
RasterXSize
,
intput
.
GetGeoTransform
()
data
=
intput
.
GetRasterBand
(
1
)
.
ReadAsArray
(
0
,
0
,
cols
,
rows
)
inputImage
=
gdal
.
Open
(
filename
)
rows
,
cols
,
geotransform
=
inputImage
.
RasterYSize
,
inputImage
.
RasterXSize
,
inputImage
.
GetGeoTransform
()
data
=
inputImage
.
GetRasterBand
(
1
)
.
ReadAsArray
(
0
,
0
,
cols
,
rows
)
# count = Counter([])
# for r in data:
# count = count + Counter(r)
# sclDict = {str(k):v for k,v in dict(count).items()}
# print ("data")
# print (sclDict)
data
=
np
.
bitwise_and
(
data
,
rasterWkt
.
getPolygonArray
(
inputImage
,
wkt
))
count
=
Counter
([])
for
r
in
data
:
count
=
count
+
Counter
(
r
)
sclDict
=
{
str
(
k
):
v
for
k
,
v
in
dict
(
count
)
.
items
()}
# print ("data & POLY")
# print (sclDict)
return
sclDict
#-------------------------------------------------------------------------------
def
main
(
argv
):
...
...
geosentinel/rasterWkt.py
View file @
8ae0bb49
...
...
@@ -6,86 +6,55 @@ import osgeo.osr as osr
import
numpy
as
np
import
gdal
import
sys
#-------------------------------------------------------------------------------
def
createLayer
(
wkt
,
layerName
=
"wkt"
):
# create the spatial reference, WGS84
srs
=
osr
.
SpatialReference
()
srs
.
ImportFromEPSG
(
4326
)
layer
=
data_source
.
CreateLayer
(
layerName
,
srs
,
ogr
.
wkbPolygon
)
# Create the point from the Well Known Text
geometry
=
ogr
.
CreateGeometryFromWkt
(
wkt
)
# create the feature
feature
=
ogr
.
Feature
(
layer
.
GetLayerDefn
())
# Set the feature geometry using the point
feature
.
SetGeometry
(
geometry
)
# Create the feature in the layer (shapefile)
layer
.
CreateFeature
(
feature
)
# Dereference the feature
feature
=
None
return
layer
from
collections
import
Counter
#-------------------------------------------------------------------------------
def
getPolygonArray
(
image
,
wkt_geom
):
rows
,
cols
,
geotransform
=
image
.
RasterYSize
,
image
.
RasterXSize
,
image
.
GetGeoTransform
()
print
(
rows
,
cols
,
geotransform
)
sr
=
osr
.
SpatialReference
(
wkt
=
image
.
GetProjection
())
# sr.ImportFromWkt(image.GetProjection())
# shapefile
# driverShp = ogr.GetDriverByName("ESRI Shapefile")
# data_source = driverShp.CreateDataSource("myShape.shp")
# srs = osr.SpatialReference()
# srs.ImportFromEPSG(4326)
# layer = data_source.CreateLayer("wkt", sr, ogr.wkbPolygon)
# geometry = ogr.CreateGeometryFromWkt(wkt_geom)
# feature = ogr.Feature(layer.GetLayerDefn())
# feature.SetStyleString("PEN(c:#FF0000,w:5px);")
# feature.SetGeometry(geometry)
# layer.CreateFeature(feature)
# data_source = None
rast_ogr_ds
=
ogr
.
GetDriverByName
(
'Memory'
)
.
CreateDataSource
(
'out'
)
rast_mem_lyr
=
rast_ogr_ds
.
CreateLayer
(
"wkt"
,
sr
,
ogr
.
wkbPolygon
)
# rast_mem_lyr = rast_ogr_ds.CreateLayer( 'poly', srs=sr )
rows
=
image
.
RasterYSize
cols
=
image
.
RasterXSize
geotransform
=
image
.
GetGeoTransform
()
projection
=
image
.
GetProjection
()
sr
=
osr
.
SpatialReference
(
wkt
=
projection
)
sr4326
=
osr
.
SpatialReference
()
sr4326
.
ImportFromEPSG
(
4326
)
driverMEM
=
gdal
.
GetDriverByName
(
'MEM'
)
driverMemory
=
ogr
.
GetDriverByName
(
'Memory'
)
driverTiff
=
gdal
.
GetDriverByName
(
'GTiff'
)
driverShape
=
ogr
.
GetDriverByName
(
"ESRI Shapefile"
)
#RASTER
target_ds
=
driverMEM
.
Create
(
'raster.tif'
,
cols
,
rows
,
1
,
gdal
.
GDT_Byte
)
#MEM
target_ds
.
GetRasterBand
(
1
)
.
SetNoDataValue
(
0
)
target_ds
.
GetRasterBand
(
1
)
.
WriteArray
(
np
.
zeros
((
rows
,
cols
),
dtype
=
np
.
uint8
))
target_ds
.
SetProjection
(
projection
)
target_ds
.
SetGeoTransform
(
geotransform
)
target_ds
.
GetRasterBand
(
1
)
.
FlushCache
()
#VECTOR
rast_ogr_ds
=
driverMemory
.
CreateDataSource
(
'myshape.shp'
)
rast_mem_lyr
=
rast_ogr_ds
.
CreateLayer
(
'POLYGON'
,
sr4326
,
ogr
.
wkbPolygon
)
feat
=
ogr
.
Feature
(
rast_mem_lyr
.
GetLayerDefn
()
)
feat
.
SetGeometry
(
ogr
.
CreateGeometryFromWkt
(
wkt_geom
))
# feat.SetGeometryDirectly( ogr.Geometry(wkt = wkt_geom) )
feat
.
SetGeometry
(
ogr
.
CreateGeometryFromWkt
(
wkt_geom
)
)
rast_mem_lyr
.
CreateFeature
(
feat
)
# Run the algorithm.
# err = gdal.RasterizeLayer( target_ds, [3,2,1], rast_mem_lyr, burn_values = [200,220,240] )
#Set up polygon raster
driverTiff
=
gdal
.
GetDriverByName
(
'GTiff'
)
polygonRaster
=
driverTiff
.
Create
(
"polygonTmp.tif"
,
cols
,
rows
,
1
,
gdal
.
GDT_Byte
)
polygonRaster
.
GetRasterBand
(
1
)
.
SetNoDataValue
(
-
99
)
polygonRaster
.
GetRasterBand
(
1
)
.
WriteArray
(
np
.
zeros
((
rows
,
cols
)))
polygonRaster
.
GetRasterBand
(
1
)
.
FlushCache
()
polygonRaster
.
SetProjection
(
image
.
GetProjectionRef
())
polygonRaster
.
SetGeoTransform
(
image
.
GetGeoTransform
())
err
=
gdal
.
RasterizeLayer
(
target_ds
,
[
1
],
rast_mem_lyr
,
burn_values
=
[
255
])
#Burn Polygon
err
=
gdal
.
RasterizeLayer
(
polygonRaster
,
[
1
],
rast_mem_lyr
,
burn_values
=
[
255
])
if
err
!=
0
:
print
(
err
)
gdaltest
.
post_reason
(
'got non-zero result code from RasterizeLayer'
)
return
'fail'
polygonRaster
.
GetRasterBand
(
1
)
.
FlushCache
()
np_polygon
=
polygonRaster
.
GetRasterBand
(
1
)
.
ReadAsArray
(
0
,
0
,
cols
,
rows
)
rast_ogr_ds
=
None
# data_source = None
polygonRaster
=
None
target_ds
.
GetRasterBand
(
1
)
.
FlushCache
()
np_polygon
=
target_ds
.
GetRasterBand
(
1
)
.
ReadAsArray
(
0
,
0
,
cols
,
rows
)
count
=
Counter
([])
# for r in np_polygon:
# count = count + Counter(r)
# colorDict = {str(k):v for k,v in dict(count).items()}
# print(colorDict)
target_ds
=
None
return
np_polygon
#-------------------------------------------------------------------------------
...
...
@@ -93,74 +62,32 @@ def rasterWkt(wkt, inputfile, outputfile):
'''
Draw WKT Polygon into a Image
'''
print
(
wkt
)
# return
print
(
inputfile
)
print
(
outputfile
)
inputImage
=
gdal
.
Open
(
inputfile
)
rows
,
cols
,
geotransform
=
inputImage
.
RasterYSize
,
inputImage
.
RasterXSize
,
inputImage
.
GetGeoTransform
()
rows
=
inputImage
.
RasterYSize
cols
=
inputImage
.
RasterXSize
geotransform
=
inputImage
.
GetGeoTransform
()
projection
=
inputImage
.
GetProjection
()
sr
=
osr
.
SpatialReference
()
sr
.
ImportFromWkt
(
inputImage
.
GetProjection
())
# Read the input bands as numpy arrays.
sr
.
ImportFromWkt
(
projection
)
print
(
"driver"
)
driverTiff
=
gdal
.
GetDriverByName
(
'GTiff'
)
output
=
driverTiff
.
Create
(
outputfile
,
cols
,
rows
,
inputImage
.
RasterCount
,
gdal
.
GDT_Byte
)
# polygonRaster = driverTiff.Create("polygonTmp.tif", cols, rows, 1, gdal.GDT_Byte)
# #Set up polygon raster
# polygonRaster.GetRasterBand(1).SetNoDataValue(-99)
# polygonRaster.GetRasterBand(1).WriteArray(np.zeros((rows, cols)))
# polygonRaster.GetRasterBand(1).FlushCache()
# polygonRaster.SetGeoTransform(geotransform)
# polygonRaster.SetGeoTransform(geotransform)
# polygonRaster.SetProjection(sr.ExportToWkt())
# print("Shapefile")
# # shapefile
# driver = ogr.GetDriverByName("ESRI Shapefile")
# data_source = driver.CreateDataSource("myShape.shp")
# print("Burn Polygon")
# #Burn Polygon
# srs = osr.SpatialReference()
# srs.ImportFromEPSG(4326)
# layer = data_source.CreateLayer("wkt", srs, ogr.wkbPolygon)
# geometry = ogr.CreateGeometryFromWkt(wkt)
# feature = ogr.Feature(layer.GetLayerDefn())
# print("features")
# feature.SetStyleString("PEN(c:#FF0000,w:5px);")
# feature.SetGeometry(geometry)
# layer.CreateFeature(feature)
# gdal.RasterizeLayer(polygonRaster, [1], layer, burn_values=[255])
# polygonRaster.GetRasterBand(1).FlushCache()
## Draw output image
# np_polygon = polygonRaster.GetRasterBand(1).ReadAsArray(0,0,cols,rows)
np_polygon
=
getPolygonArray
(
inputImage
,
wkt
)
print
(
"Setup"
)
for
b
in
range
(
1
,
output
.
RasterCount
+
1
):
np_input
=
inputImage
.
GetRasterBand
(
b
)
.
ReadAsArray
(
0
,
0
,
cols
,
rows
)
output
.
GetRasterBand
(
b
)
.
SetNoDataValue
(
-
99
)
output
.
GetRasterBand
(
b
)
.
WriteArray
(
np
_polygon
)
output
.
GetRasterBand
(
b
)
.
SetNoDataValue
(
0
)
output
.
GetRasterBand
(
b
)
.
WriteArray
(
np
.
bitwise_and
(
np_polygon
,
np_input
)
)
output
.
GetRasterBand
(
b
)
.
FlushCache
()
# output.SetGeoTransform(geotransform)
# output.SetProjection(sr.ExportToWkt())
output
.
SetProjection
(
inputImage
.
GetProjectionRef
())
output
.
SetGeoTransform
(
inputImage
.
GetGeoTransform
())
output
.
SetGeoTransform
(
geotransform
)
output
.
SetProjection
(
projection
)
print
(
"end"
)
#Close files
# feature = None
# data_source = None
# polygonRaster = None
polygonRaster
=
None
output
=
None
inputImage
=
None
...
...
geosentinel/rasterWkt.pyc
0 → 100644
View file @
8ae0bb49
File added
tools/L2ASCL_AreaProcessing.sh
View file @
8ae0bb49
This diff is collapsed.
Click to expand it.
tools/mergeImages.sh
View file @
8ae0bb49
#!/bin/sh
DIR
=
$1
#Output filename
POLYGON
=
$2
#Crop Window
INDIR
=
$1
#Output filename
OUTDIR
=
$2
#Output filename
POLYGON
=
$3
#Crop Window
DIRNAME
=
$(
echo
$INDIR
|
cut
-d
"/"
-f1
)
echo
"INDIR:"
$INDIR
echo
"OUTDIR:"
$OUTDIR
#echo $POLYGON
cd
$INDIR
#if [ ! -d $OUTDIR ]; then
# mkdir $OUTDIR
#fi
#BOX=$(polygonToBox.py "$POLYGON")
BOX
=
$POLYGON
##------------------------------------------------------------------------------
cd
$DIR
DIRNAME
=
$(
echo
$DIR
|
cut
-d
"/"
-f1
)
echo
$DIRNAME
for
f
in
$(
ls
)
;
do
echo
${
f
}
;
done
;
#exit
##------------------------------------------------------------------------------
MERGEDIMAGE
=
$DIRNAME
"_TCI_60m_merged.tif"
if
[
!
-e
$MERGEDIMAGE
]
;
then
...
...
@@ -17,12 +30,13 @@ else
echo
PASSING
$MERGEDIMAGE
FOUND
fi
CROPEDIMAGE
=
../merge_out/
$DIRNAME
"_TCI_60m.tif"
CROPEDIMAGE
=
$OUTDIR
$DIRNAME
"_TCI_60m.tif"
if
[
!
-e
$CROPEDIMAGE
]
;
then
gdal_translate
-projwin
$BOX
-projwin_srs
WGS84
-ot
Byte
-of
JPEG
$MERGEDIMAGE
$CROPEDIMAGE
gdal_translate
-projwin
$BOX
-projwin_srs
WGS84
-ot
Byte
-of
GTiff
$MERGEDIMAGE
$CROPEDIMAGE
else
echo
PASSING
$CROPEDIMAGE
FOUND
fi
##------------------------------------------------------------------------------
MERGEDIMAGE
=
$DIRNAME
"_SCL_60m_merged.tif"
if
[
!
-e
$MERGEDIMAGE
]
;
then
...
...
@@ -32,9 +46,9 @@ else
echo
PASSING
$MERGEDIMAGE
FOUND
fi
CROPEDIMAGE
=
../merge_out/
$DIRNAME
"_SCL_60m.tif"
CROPEDIMAGE
=
$OUTDIR
$DIRNAME
"_SCL_60m.tif"
if
[
!
-e
$CROPEDIMAGE
]
;
then
gdal_translate
-projwin
$BOX
-projwin_srs
WGS84
-ot
Byte
-of
JPEG
$MERGEDIMAGE
$CROPEDIMAGE
gdal_translate
-projwin
$BOX
-projwin_srs
WGS84
-ot
Byte
-of
GTiff
$MERGEDIMAGE
$CROPEDIMAGE
else
echo
PASSING
$CROPEDIMAGE
FOUND
fi
...
...
tools/mergeImages.sh.save
0 → 100755
View file @
8ae0bb49
#!/bin/sh
DIR
=
$1
#Output filename
POLYGON
=
$2
#Crop Window
echo
$DIR
echo
$POLYGON
#BOX=$(polygonToBox.py "$POLYGON")
BOX
=
$POLYGON
##------------------------------------------------------------------------------
cd
$DIR
DIRNAME
=
$(
echo
$DIR
|
cut
-d
"/"
-f1
)
echo
$DIRNAME
##------------------------------------------------------------------------------
MERGEDIMAGE
=
$DIRNAME
"_TCI_60m_merged.tif"
if
[
!
-e
$MERGEDIMAGE
]
;
then
echo
"gdal_merge.py -o "
$MERGEDIMAGE
$(
ls
*
TCI_10m.jp2
)
gdal_merge.py
-o
$MERGEDIMAGE
$(
ls
*
TCI_10m.jp2
)
else
echo
PASSING
$MERGEDIMAGE
FOUND
fi
CROPEDIMAGE
=
../merge_out/
$DIRNAME
"_TCI_60m.jp2"
if
[
!
-e
$CROPEDIMAGE
]
;
then
gdal_translate
-projwin
$BOX
-projwin_srs
WGS84
-ot
Byte
-of
JPEG
$MERGEDIMAGE
$CROPEDIMAGE
else
echo
PASSING
$CROPEDIMAGE
FOUND
fi
##------------------------------------------------------------------------------
MERGEDIMAGE
=
$DIRNAME
"_SCL_60m_merged.tif"
if
[
!
-e
$MERGEDIMAGE
]
;
then
echo
"gdal_merge.py -o "
$MERGEDIMAGE
$(
ls
*
SCL_60m.jp2
)
gdal_merge.py
-o
$MERGEDIMAGE
$(
ls
*
SCL_60m.jp2
)
else
echo
PASSING
$MERGEDIMAGE
FOUND
fi
CROPEDIMAGE
=
../merge_out/
$DIRNAME
"_SCL_60m.jp2"
if
[
!
-e
$CROPEDIMAGE
]
;
then
gdal_translate
-projwin
$BOX
-projwin_srs
WGS84
-ot
Byte
-of
JPEG
$MERGEDIMAGE
$CROPEDIMAGE
else
echo
PASSING
$CROPEDIMAGE
FOUND
fi
cd
..
tools/mergeImagesByDirectory.sh
View file @
8ae0bb49
#!/bin/sh
JP2DIR
=
$1
#JP2 Directory
POLYGON
=
$2
#Crop Window
JOBS
=
${
3
:-
1
}
OUTDIR
=
$2
POLYGON
=
$3
#Crop Window
JOBS
=
${
4
:-
1
}
DIRNAME
=
$(
echo
$JP2DIR
|
cut
-d
"/"
-f1
)
#echo "POLYGON"
#echo $POLYGON
BOX
=
$(
polygonToBox.py
"
$POLYGON
"
)
if
[
"$#"
-le
1
]
;
then
echo
"Usage "
$0
" <Parent Directory with subdirectories> <POLYGON> [jobs]"
exit
fi
echo
"cd "
$JP2DIR
cd
$JP2DIR
mkdir
merge_out
ls
-d
*
/ | parallel
-q
--jobs
$JOBS
mergeImages.sh
{}
"
$BOX
"
for
f
in
$(
ls
)
;
do
echo
${
f
}
;
done
;
ls
-d
*
/ | parallel
-q
--jobs
$JOBS
mergeImages.sh
{}
$OUTDIR
"
$BOX
"
#ls -d */ | parallel -q --jobs $JOBS test.sh {} ../../{} "$BOX"
find
.
-name
*
.xml
-type
f
-delete
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