Compare commits

..

38 Commits

Author SHA1 Message Date
5909142080 From work office 2025-09-26 19:08:40 +05:00
bfc5c22c95 GeoJSON from SQL 2025-09-24 07:38:49 +05:00
57b8d8eca7 geojson 2025-09-18 02:15:57 +05:00
9d62a37b12 GeoJSON 2025-09-17 17:15:40 +05:00
fd69b5378f GeoGSON 2025-09-17 07:34:15 +05:00
7fdf572d19 GeoJSON by HTTP 2025-09-16 17:08:40 +05:00
11d8e00bbc Update files to new version QGIS 2025-09-15 17:00:39 +05:00
5a7b8a5932 New SMAP file 2025-09-15 07:23:26 +05:00
da1d3e1098 add resources 2025-09-14 15:04:12 +05:00
a949b49b35 Merge branch 'develop' of https://git.ccalm.org/igor/org.ccalm.main into develop 2025-09-14 14:48:46 +05:00
9837e3a5b9 JSON log 2025-09-14 14:48:36 +05:00
e01edc7224 Add locust type 2025-09-09 17:12:31 +05:00
c2762414c2 Merge branch 'develop' of https://git.ccalm.org/igor/org.ccalm.main into develop
# Conflicts:
#	src/main/resources/templates/engine/index.html
2025-09-08 18:11:23 +05:00
52f3b89664 SMAP 2025-09-08 12:15:57 +05:00
83ff9cba16 add getJsonData function 2025-09-08 07:30:55 +05:00
340be124d6 Modif "uploadFILE" function to ASDC 2025-09-04 15:42:19 +05:00
72a862ea23 Add save "efficacy_impact_type" 2025-09-04 07:36:19 +05:00
66b1f78745 import repair 2025-08-25 07:37:35 +05:00
9f67439db3 SendWarning 2025-08-12 17:15:44 +05:00
f9e83b1f0e +lon lat send in warnings 2025-08-12 07:45:12 +05:00
8a28b58513 Merge branch 'develop' of https://git.ccalm.org/igor/org.ccalm.main into develop 2025-08-11 15:26:20 +05:00
93383c8c23 v16 2025-08-11 15:26:08 +05:00
9f06a550fc Repair send threshold warnings for soil and air temperature 2025-08-11 07:20:50 +05:00
e423647a59 Delete Excel import 2025-08-08 07:22:40 +05:00
53e7c7e158 Merge branch 'develop' of https://git.mesh.kz/igor/org.ccalm.main into develop
# Conflicts:
#	src/main/java/org/ccalm/main/AcceptJSON.java
2025-07-30 08:58:58 +05:00
d4bfe17898 get fito 2025-07-30 08:54:13 +05:00
fab0c34ffb AcceptJSON_RUS model 2025-07-23 07:37:24 +05:00
e3f93fed10 Update "/api/locust/v01/AcceptJSON_KAZ" 2025-07-20 19:45:59 +05:00
884d3ceb62 import kaz 2025-07-17 07:12:10 +05:00
686109361f Import mod 2025-07-15 07:40:21 +05:00
914b2aae03 add throw 2025-07-14 17:34:41 +05:00
d254140b91 Download reports repair 2025-07-14 15:07:32 +05:00
d2c1f9c7da UZB Update 2025-07-14 11:58:43 +05:00
3c44dac29e UZB integration 2025-07-14 07:37:34 +05:00
39db27fca1 repair warn_air 2025-07-04 07:27:49 +05:00
6e4c74c426 Repair warning 2025-07-03 17:55:01 +05:00
91a1e86415 IVI modif 2025-07-03 07:35:02 +05:00
36783d2de7 Testing /api/locust/v01/SendWarning 2025-06-30 07:27:44 +05:00
193 changed files with 52164 additions and 2882 deletions

2
.gitignore vendored
View File

@ -1,4 +1,4 @@
/src/main/resources/static/resources /src/main/resources/static/resources/metadata
/src/main/java/tctable /src/main/java/tctable
/logs/ /logs/

View File

@ -10,8 +10,8 @@ spring:
application: application:
name: org-ccalm-main name: org-ccalm-main
datasource: datasource:
url: jdbc:postgresql://almaty.ccalm.org:5432/CCALM?ApplicationName=org_ccalm_main&ssl=true&sslmode=require&connectTimeout=10000&socketTimeout=10000 #url: jdbc:postgresql://10.0.0.1:5432/CCALM?ApplicationName=org_ccalm_main&connectTimeout=10000&socketTimeout=30000
#url: jdbc:postgresql://ccalm.org:5432/CCALM?ApplicationName=org_ccalm_main&ssl=true&sslmode=require&connectTimeout=10000&socketTimeout=10000 url: jdbc:postgresql://ccalm.org:5432/CCALM?ApplicationName=org_ccalm_main&ssl=true&sslmode=require&connectTimeout=10000&socketTimeout=10000
#url: jdbc:postgresql://127.0.0.1:5432/CCALM?ApplicationName=org_ccalm_main&ssl=true&sslmode=require&connectTimeout=10000&socketTimeout=10000 #url: jdbc:postgresql://127.0.0.1:5432/CCALM?ApplicationName=org_ccalm_main&ssl=true&sslmode=require&connectTimeout=10000&socketTimeout=10000
username: postgres username: postgres
password: 309A86FF65A78FB428F4E38DFE35F730 password: 309A86FF65A78FB428F4E38DFE35F730

19
pom.xml
View File

@ -5,12 +5,12 @@
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
<version>3.4.2</version> <version>3.5.5</version>
<relativePath/> <!-- lookup parent from repository --> <relativePath/> <!-- lookup parent from repository -->
</parent> </parent>
<groupId>org.ccalm</groupId> <groupId>org.ccalm</groupId>
<artifactId>main</artifactId> <artifactId>main</artifactId>
<version>1.0.1</version> <version>1.0.7</version>
<name>main</name> <name>main</name>
<description>main</description> <description>main</description>
<properties> <properties>
@ -57,7 +57,7 @@
<dependency> <dependency>
<groupId>org.postgresql</groupId> <groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId> <artifactId>postgresql</artifactId>
<version>42.7.3</version> <version>42.7.7</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.json</groupId> <groupId>org.json</groupId>
@ -81,11 +81,7 @@
</dependency> </dependency>
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>6.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/edu.ucar/netcdfAll --> <!-- https://mvnrepository.com/artifact/edu.ucar/netcdfAll -->
<dependency> <dependency>
<groupId>edu.ucar</groupId> <groupId>edu.ucar</groupId>
@ -143,6 +139,13 @@
<version>1.18.36</version> <version>1.18.36</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>8.1</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -392,7 +392,8 @@ public class AcceptASDCController implements ServletContextAware {
risk_probe_analysis_name=${risk_probe_analysis_name}, risk_probe_analysis_name=${risk_probe_analysis_name},
risk_probe_analysis_number=${risk_probe_analysis_number}, risk_probe_analysis_number=${risk_probe_analysis_number},
test=${test}, test=${test},
geom=ST_SetSRID(ST_GeomFromGeoJSON(${geom}),4326) geom=ST_SetSRID(ST_GeomFromGeoJSON(${geom}),4326),
efficacy_impact_type=${efficacy_impact_type}
where uid=main.strtouuid(${uid}) where uid=main.strtouuid(${uid})
"""; """;
}else }else
@ -490,7 +491,8 @@ public class AcceptASDCController implements ServletContextAware {
risk_probe_analysis_name, risk_probe_analysis_name,
risk_probe_analysis_number, risk_probe_analysis_number,
test, test,
geom geom,
efficacy_impact_type
)values( )values(
main.strtouuid(${uid}), main.strtouuid(${uid}),
main.strtouuid(${frmlocustdel_uid}), main.strtouuid(${frmlocustdel_uid}),
@ -583,7 +585,8 @@ public class AcceptASDCController implements ServletContextAware {
${risk_probe_analysis_name}, ${risk_probe_analysis_name},
${risk_probe_analysis_number}, ${risk_probe_analysis_number},
${test}, ${test},
ST_SetSRID(ST_GeomFromGeoJSON(${geom}),4326) ST_SetSRID(ST_GeomFromGeoJSON(${geom}),4326),
${efficacy_impact_type}
)"""; )""";
} }
@ -801,6 +804,9 @@ public class AcceptASDCController implements ServletContextAware {
value = jsonObj.optString("geom",null); value = jsonObj.optString("geom",null);
stmtn.setString("geom",value); stmtn.setString("geom",value);
value = jsonObj.optString("efficacy_impact_type",null);
stmtn.setString("efficacy_impact_type",value);
//Execute SQL //Execute SQL
try { try {
PreparedStatement stmt=stmtn.getPreparedStatement(); PreparedStatement stmt=stmtn.getPreparedStatement();
@ -1182,7 +1188,7 @@ public class AcceptASDCController implements ServletContextAware {
if(exists) if(exists)
{ {
String sql="update main.frmlocust set\n" String sql="update main.frmlocust set\n"
+" uid = ?,\n" +" uid = main.strtouuid(?),\n"
+" changed = false,\n" +" changed = false,\n"
+" user_id=?,\n" +" user_id=?,\n"
+" device_id=?,\n" +" device_id=?,\n"
@ -1351,7 +1357,7 @@ public class AcceptASDCController implements ServletContextAware {
+" geom,\n" +" geom,\n"
+" test\n" +" test\n"
+")values(\n" +")values(\n"
+" ?,\n" //1 uid +" main.strtouuid(?),\n" //1 uid
+" false,\n" +" false,\n"
+" ?,\n" //2 user_id +" ?,\n" //2 user_id
+" ?,\n" //3 device_id +" ?,\n" //3 device_id
@ -1879,6 +1885,7 @@ public class AcceptASDCController implements ServletContextAware {
+" comments=?,\n" +" comments=?,\n"
+" geom=ST_SetSRID(ST_GeomFromGeoJSON(?),4326),\n" +" geom=ST_SetSRID(ST_GeomFromGeoJSON(?),4326),\n"
+" locust_purpose_id=?,\n" //Чтобы много циферек не перебивать сделал внизу запроса +" locust_purpose_id=?,\n" //Чтобы много циферек не перебивать сделал внизу запроса
+" efficacy_impact=?,\n"
+" test=?\n" +" test=?\n"
+" where uid=main.strtouuid('"+uid+"')"; +" where uid=main.strtouuid('"+uid+"')";
try { try {
@ -1999,6 +2006,7 @@ public class AcceptASDCController implements ServletContextAware {
+" comments,\n" +" comments,\n"
+" geom,\n" +" geom,\n"
+" locust_purpose_id,\n" +" locust_purpose_id,\n"
+" efficacy_impact,\n"
+" test\n" +" test\n"
+")values(\n" +")values(\n"
+" main.strtouuid(?),\n" //1 uid +" main.strtouuid(?),\n" //1 uid
@ -2106,7 +2114,8 @@ public class AcceptASDCController implements ServletContextAware {
+" ?,\n" //102 comments +" ?,\n" //102 comments
+" ST_SetSRID(ST_GeomFromGeoJSON(?),4326),\n" //103 geom +" ST_SetSRID(ST_GeomFromGeoJSON(?),4326),\n" //103 geom
+" ?,\n" //104 locust_purpose_id +" ?,\n" //104 locust_purpose_id
+" ?\n" //105 test +" ?,\n" //105 efficacy_impact
+" ?\n" //106 test
+")"; +")";
try { try {
stmt = conn.prepareStatement(sql); stmt = conn.prepareStatement(sql);
@ -2232,6 +2241,7 @@ public class AcceptASDCController implements ServletContextAware {
String comments=getCdataValue(reqNode, "comments"); String comments=getCdataValue(reqNode, "comments");
String geom=getCdataValue(reqNode, "geom"); String geom=getCdataValue(reqNode, "geom");
String locust_purpose_id=getCdataValue(reqNode, "locust_purpose_id"); String locust_purpose_id=getCdataValue(reqNode, "locust_purpose_id");
String efficacy_impact=getCdataValue(reqNode, "efficacy_impact");
String test=getCdataValue(reqNode, "test"); String test=getCdataValue(reqNode, "test");
if(test==null) test="0"; if(test==null) test="0";
@ -2428,11 +2438,11 @@ public class AcceptASDCController implements ServletContextAware {
stmt.setNull(104, Types.INTEGER, null); stmt.setNull(104, Types.INTEGER, null);
else else
stmt.setInt(104,Integer.parseInt(locust_purpose_id)); stmt.setInt(104,Integer.parseInt(locust_purpose_id));
stmt.setString(105,efficacy_impact);
if(test==null) stmt.setNull(105, Types.BOOLEAN, null); if(test==null) stmt.setNull(106, Types.BOOLEAN, null);
else { else {
if(test.equals("1")) stmt.setBoolean(105,true); if(test.equals("1")) stmt.setBoolean(106,true);
else stmt.setBoolean(105,false); else stmt.setBoolean(106,false);
} }
} catch (SQLException ex) { } catch (SQLException ex) {
@ -2498,6 +2508,9 @@ public class AcceptASDCController implements ServletContextAware {
} }
return result; return result;
} }
/**
* reqS - Миллисекунд сначала 1970 года
* */
@RequestMapping(value = {"/get/", "/api/locust/v01/get/"},params = {"fn"},method = { RequestMethod.GET, RequestMethod.POST }) @RequestMapping(value = {"/get/", "/api/locust/v01/get/"},params = {"fn"},method = { RequestMethod.GET, RequestMethod.POST })
@ResponseBody @ResponseBody
public Object uploadFILE(HttpServletResponse response,@RequestHeader(required=false,name="Content-Type") String contentType,@RequestBody(required=false) String reqData,@RequestParam(required=false,name="file") MultipartFile file,@RequestParam(required=false,name="fn") String fn,@RequestParam(required=false,name="r") String reqR,@RequestParam(required=false,name="n") String reqN,@RequestParam(required=false,name="s") String reqS,@RequestParam(required=false,name="l") String reqL,@RequestParam(required=false,name="days",defaultValue = "0") int days,@RequestParam(required=false,name="country_id",defaultValue = "0") int country_id,@RequestParam(required=false,name="android_id",defaultValue = "") String device_id) { public Object uploadFILE(HttpServletResponse response,@RequestHeader(required=false,name="Content-Type") String contentType,@RequestBody(required=false) String reqData,@RequestParam(required=false,name="file") MultipartFile file,@RequestParam(required=false,name="fn") String fn,@RequestParam(required=false,name="r") String reqR,@RequestParam(required=false,name="n") String reqN,@RequestParam(required=false,name="s") String reqS,@RequestParam(required=false,name="l") String reqL,@RequestParam(required=false,name="days",defaultValue = "0") int days,@RequestParam(required=false,name="country_id",defaultValue = "0") int country_id,@RequestParam(required=false,name="android_id",defaultValue = "") String device_id) {
@ -2544,7 +2557,7 @@ public class AcceptASDCController implements ServletContextAware {
{ {
//int pR=0; //int pR=0;
String pN=""; String pN="";
int pS=0; long pS=0;
//int pL=0; //int pL=0;
String val; String val;
@ -2552,7 +2565,13 @@ public class AcceptASDCController implements ServletContextAware {
//if(val!=null) pR=Integer.parseInt(val); //if(val!=null) pR=Integer.parseInt(val);
pN = reqN; pN = reqN;
val = reqS; val = reqS;
if(val!=null) pS=Integer.parseInt(val); if(val!=null && !val.isEmpty()) {
try {
pS = Long.parseLong(val);
} catch (Exception ex) {
logger.error(UUID.randomUUID().toString(), ex.getMessage()+" val="+val, ex);
}
}
val = reqL; val = reqL;
//if(val!=null) pL=100; //if(val!=null) pL=100;
@ -2563,14 +2582,16 @@ public class AcceptASDCController implements ServletContextAware {
String sql; String sql;
if(pN.equals("frmlocustdel_locations") && days>0 && country_id>0){ if(pN.equals("frmlocustdel_locations") && days>0 && country_id>0){
sql = "select fldl.* from main.frmlocustdel_locations fldl join main.frmlocustdel fld on main.strtouuid(fld.uid)=main.strtouuid(fldl.frmlocustdel_uid) where fld.date>now()-interval '"+String.valueOf(days)+" days' and fld.country_id="+String.valueOf(country_id)+" and fld.device_id!='"+device_id+"' order by fldl.seq";
//sql = "select fldl.* from main.frmlocustdel_locations fldl join main.frmlocustdel fld on main.strtouuid(fld.uid)=main.strtouuid(fldl.frmlocustdel_uid) where fld.date>now()-interval '"+String.valueOf(days)+" days' and fld.country_id="+String.valueOf(country_id)+" and fldl.seq>"+pS+" and fld.device_id!='"+device_id+"' order by fldl.seq"; //sql = "select fldl.* from main.frmlocustdel_locations fldl join main.frmlocustdel fld on main.strtouuid(fld.uid)=main.strtouuid(fldl.frmlocustdel_uid) where fld.date>now()-interval '"+String.valueOf(days)+" days' and fld.country_id="+String.valueOf(country_id)+" and fldl.seq>"+pS+" and fld.device_id!='"+device_id+"' order by fldl.seq";
sql = "select fldl.* from main.frmlocustdel_locations fldl join main.frmlocustdel fld on main.strtouuid(fld.uid)=main.strtouuid(fldl.frmlocustdel_uid) where fld.date>now()-interval '"+String.valueOf(days)+" days' and fld.country_id="+String.valueOf(country_id)+" and fldl.seq>"+pS+" order by fldl.seq"; //TODO удалить //sql = "select fldl.* from main.frmlocustdel_locations fldl join main.frmlocustdel fld on main.strtouuid(fld.uid)=main.strtouuid(fldl.frmlocustdel_uid) where fld.date>now()-interval '"+String.valueOf(days)+" days' and fld.country_id="+String.valueOf(country_id)+" and fldl.seq>"+pS+" order by fldl.seq"; //TODO удалить
}else }else
if(pN.equals("frmlocustdel") && days>0 && country_id>0){ if(pN.equals("frmlocustdel") && days>0 && country_id>0){
Map<String, String> fields = TCTableTools.getTableSchema(conn, "main.frmlocustdel"); Map<String, String> fields = TCTableTools.getTableSchema(conn, "main.frmlocustdel");
STools.delFromMapByValue(fields, "geometry"); //Исключаем поля с типом геометрия, SQLite в android их не понимает STools.delFromMapByValue(fields, "geometry"); //Исключаем поля с типом геометрия, SQLite в android их не понимает
sql = "select "+String.join(", ", fields.keySet())+" from main.frmlocustdel where date>now()-interval '"+String.valueOf(days)+" days' and country_id="+String.valueOf(country_id)+" and device_id!='"+device_id+"' order by seq";
//sql = "select "+String.join(", ", fields.keySet())+" from main.frmlocustdel where date>now()-interval '"+String.valueOf(days)+" days' and country_id="+String.valueOf(country_id)+" and seq>"+pS+" and device_id!='"+device_id+"' order by seq"; //sql = "select "+String.join(", ", fields.keySet())+" from main.frmlocustdel where date>now()-interval '"+String.valueOf(days)+" days' and country_id="+String.valueOf(country_id)+" and seq>"+pS+" and device_id!='"+device_id+"' order by seq";
sql = "select "+String.join(", ", fields.keySet())+" from main.frmlocustdel where date>now()-interval '"+String.valueOf(days)+" days' and country_id="+String.valueOf(country_id)+" and seq>"+pS+" order by seq"; //TODO удалить //sql = "select "+String.join(", ", fields.keySet())+" from main.frmlocustdel where date>now()-interval '"+String.valueOf(days)+" days' and country_id="+String.valueOf(country_id)+" and seq>"+pS+" order by seq"; //TODO удалить
}else }else
if(pN.equals("_translations")) if(pN.equals("_translations"))
{ {
@ -3038,17 +3059,6 @@ public class AcceptASDCController implements ServletContextAware {
@ResponseBody @ResponseBody
public FileSystemResource sendPhoto(HttpServletResponse response,@RequestParam(required=true,name="table") String tableName,@RequestParam(required=true,name="file") String fileName) { public FileSystemResource sendPhoto(HttpServletResponse response,@RequestParam(required=true,name="table") String tableName,@RequestParam(required=true,name="file") String fileName) {
//Load DB configuration
String data_dir = "";
Properties prop = new Properties();
try {
prop.load(new FileInputStream("org_ccalm_main.properties")); // load a properties file
data_dir = prop.getProperty("data.dir");
} catch (Exception ex) {
ex.printStackTrace();
logger.error("Error load org_ccalm_main.properties",ex);
}
File file = new File(data_dir + "data/" + tableName + "/" + fileName); File file = new File(data_dir + "data/" + tableName + "/" + fileName);
if(file.exists()) if(file.exists())
{ {
@ -3071,7 +3081,7 @@ public class AcceptASDCController implements ServletContextAware {
} }
//@RequestMapping(value = {"/get", "/api/locust/v01/"},params = {"fn"},method = { RequestMethod.GET, RequestMethod.POST }) //@RequestMapping(value = {"/get", "/api/locust/v01/"},params = {"fn"},method = { RequestMethod.GET, RequestMethod.POST })
//Для проверки какие фото есть на сервере а каких нет чтобы удалить из имена фотографий которых нет в базе //Для проверки какие фото есть на сервере а каких нет чтобы удалить имена фотографий которых нет в базе
@RequestMapping(value = {"/photolist", "/api/locust/v01/"},method = RequestMethod.GET, produces = "text/html") @RequestMapping(value = {"/photolist", "/api/locust/v01/"},method = RequestMethod.GET, produces = "text/html")
@ResponseBody @ResponseBody
public Object getPhotoList() { public Object getPhotoList() {

View File

@ -1,395 +0,0 @@
package org.ccalm.main;
import java.io.*;
//import java.io.FileInputStream;
//import java.io.OutputStream;
//import java.io.UnsupportedEncodingException;
//import java.nio.file.Paths;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
//import java.util.zip.CRC32;
//import java.util.zip.Checksum;
//import javax.servlet.ServletContext;
//import javax.servlet.http.Part;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import jakarta.servlet.ServletContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.ClassPathResource;
//import org.apache.commons.io.FileUtils;
//import org.springframework.core.io.FileSystemResource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
//import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.context.ServletContextAware;
import org.springframework.web.multipart.MultipartFile;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import tools.User;
@Controller
public class AcceptEXCEL implements ServletContextAware {
private static final Logger logger = LoggerFactory.getLogger(AcceptEXCEL.class);
private ServletContext context;
@Value("${spring.datasource.url}")
String db_url="";
@Value("${spring.datasource.username}")
String db_login="";
@Value("${spring.datasource.password}")
String db_password="";
@Value("${data.dir}")
String data_dir = "";
@Override
public void setServletContext(ServletContext context) {
this.context=context;
}
@RequestMapping(value = {"/AcceptCSV", "/api/locust/v01/"}, method = { RequestMethod.GET, RequestMethod.POST })
public String acceptCSV(@ModelAttribute User user, Model model,@RequestParam(required=false,name="file") MultipartFile file,@RequestParam(required=false,name="skip",defaultValue = "0") Boolean skip) {
Connection conn = null;
try {
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url, db_login, db_password);
} catch (Exception ex) {
}
String sqlData="";
String json="{\"type\": \"FeatureCollection\",\"features\":[";
String table="<table border=\"1\">";
table+="<tr style=\"background-color: #e0e0e0;\"><th>№</th><th>Latitude (Широта)</th><th>Longitude (Долгота)</th><th>Oblast (область)</th><th>District (Район)</th><th>Сельский округ</th><th>Хозяйство или местность</th><th>Вид саранчи</th><th>Фаза</th><th>ЭПВ</th><th>Заселено Га</th><th>Дата</th></tr>";
//row+="<td>"+i+"</td><td>"+locust.lat+"</td><td>"+locust.lon+"</td><td>"+locust.region+" = "+locust.region_id+"</td><td>"+locust.district+" = "+locust.district_id+"</td><td>"+locust.terrain+"</td><td>"+locust.village+"<td>";
if (file!=null && !file.isEmpty()) {
BufferedReader reader;
try {
int i=1; //for testing
reader = new BufferedReader(new InputStreamReader(file.getInputStream(), "UTF-8"));
//reader = new BufferedReader(new FileReader(file));
String line = reader.readLine();
if(skip) line = reader.readLine();
while (line != null) {
StringBuffer data=new StringBuffer(line);
Boolean error=false;
Locust locust = new Locust();
try {
String lat=CutBeforeFirst(data,";");
if(lat.equals("46.3104.6")) lat="46.31046";
if(lat.equals("43.21303.")) lat="43.21303";
if(lat.equals("43.26067.")) lat="43.26067";
if(lat.equals("43.20181.")) lat="43.20181";
if(lat.equals("43.20181.")) lat="43.20181";
if(lat.equals("43.74691.")) lat="43.74691";
if(lat.equals("43.41954.")) lat="43.41954";
if(lat.equals("43.78288.")) lat="43.78288";
if(lat.equals("43.26260.")) lat="43.26260";
if(lat.equals("43.79702.")) lat="43.79702";
if(lat.equals("43.64891.")) lat="43.64891";
if(lat.equals("43.64891.")) lat="43.64891";
if(lat.equals("43.42271.")) lat="43.42271";
if(lat.equals("43.64891.")) lat="43.64891";
if(lat.equals("43.89990.")) lat="43.89990";
if(lat.equals("43.96273.")) lat="43.96273";
if(lat.equals("43.26907.")) lat="43.26907";
if(lat.equals("43.26630.")) lat="43.26630";
if(lat.equals("43.50605.")) lat="43.50605";
if(lat.equals("43.74965.")) lat="43.74965";
if(lat.equals("43.20813.")) lat="43.20813";
if(lat.equals("43.23298.")) lat="43.23298";
if(lat.equals("43.74774.")) lat="43.74774";
if(lat.equals("43.77144.")) lat="43.77144";
if(lat.equals("43.58847.")) lat="43.58847";
if(lat.equals("43.58944.")) lat="43.58944";
if(lat.equals("4342755.")) lat="43.42755";
if(lat.equals("43.80416.")) lat="43.80416";
if(lat.equals("43.79536.")) lat="43.79536";
if(lat.equals("50.75 767")) lat="50.75767";
if(lat.equals("50.77 542")) lat="50.77542";
if(lat.equals("50.85 140")) lat="50.85140";
if(lat.equals("50.79 773")) lat="50.79773";
if(lat.equals("50.63 469")) lat="50.63469";
if(lat.equals("51.23 130")) lat="51.23130";
if(lat.equals("51.03 220")) lat="51.03220";
if(lat.equals("51.38 922")) lat="51.38922";
if(lat.equals("51.06.940")) lat="51.06940";
if(lat.equals("51.08 273")) lat="51.08273";
if(lat.equals("50.96 705")) lat="50.96705";
if(lat.equals("51.03 021")) lat="51.03021";
if(lat.equals("51.01 764")) lat="51.01764";
if(lat.equals("50.99 388")) lat="50.99388";
if(lat.equals("50.50 509")) lat="50.50509";
if(lat.equals("43.109.94")) lat="43.10994";
if(lat.equals("50.11.926")) lat="50.11926";
if(lat.equals("50.04.966")) lat="50.04966";
if(lat.equals("49.26.385")) lat="49.26385";
if(lat.equals("49.26.251")) lat="49.26251";
if(lat.equals("49.25.307")) lat="49.25307";
if(lat.equals("44.4930.")) lat="49.25307";
locust.lat=Double.parseDouble(lat);
String lon=CutBeforeFirst(data,";");
if(lon.equals("51.25 560")) lon="51.25560";
if(lon.equals("51.25 099")) lon="51.25099";
if(lon.equals("51.26 378")) lon="51.26378";
if(lon.equals("51.25 235")) lon="51.25235";
if(lon.equals("51.83 107")) lon="51.83107";
if(lon.equals("51.71 702")) lon="51.71702";
if(lon.equals("52.21 390")) lon="52.21390";
if(lon.equals("52.10 873")) lon="52.10873";
if(lon.equals("51.85 606")) lon="51.85606";
if(lon.equals("52.41 085")) lon="52.41085";
if(lon.equals("52.36 125")) lon="52.36125";
if(lon.equals("51. 56 025")) lon="51.56025";
if(lon.equals("51.56 786")) lon="51.56786";
if(lon.equals("51.57 946")) lon="51.57946";
if(lon.equals("51.16 758")) lon="51.16758";
if(lon.equals("85.09.142")) lon="85.09142";
locust.lon=Double.parseDouble(lon);
}catch(Exception ex)
{
error=true;
}
locust.region=CutBeforeFirst(data,";");
//Выбираю ID области
Statement stt = null;
ResultSet rs = null;
try {
if(locust.region.equals("Алматинский")) locust.region="Алматинская";
if(locust.region.equals("Туркестанский")) locust.region="Туркестанская";
stt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
String sql_query = "select id from main.countriesregions where name like '%"+locust.region+"%';";
rs = stt.executeQuery(sql_query);
if (rs != null) {
try {
if (rs.next()) {
locust.region_id=rs.getString(1);
}
rs.close();
} catch (SQLException ex) {
}
}
} catch (SQLException ex) {
}finally {
if(rs!=null) try{rs.close();}catch(SQLException ex){}
if(stt!=null) try{stt.close();}catch(SQLException ex){}
}
//Выбираю id региона (main.countriesdistricts)
locust.district_id="";
locust.district=CutBeforeFirst(data,";");
stt = null;
rs = null;
try {
if(locust.district.equals("Сарканский ")) locust.district="Саркандский";
if(locust.district.equals("Уйгуский")) locust.district="Уйгурский";
if(locust.district.equals("г.Капшагай")) locust.district="Капчагайский городской округ";
if(locust.district.equals("Каратальскиий")) locust.district="Каратальский";
if(locust.district.equals("г. Талдыкорган")) locust.district="Талдыкорганский";
if(locust.district.equals("г Атырау ")) locust.district="Атырауский городской округ";
if(locust.district.equals("г. Атырау")) locust.district="Атырауский городской округ";
if(locust.district.equals("Кызылкуга")) locust.district="Кзылкогинский район";
if(locust.district.equals("Курчумский ")) locust.district="Куршимский район";
if(locust.district.equals("г.Семей")) locust.district="Семипалатинский городской округ";
if(locust.region_id.equals("4") && locust.district.equals("Жамбылский")) locust.district="Джамбулский район";
if(locust.district.equals("Т.Рыскуловский")) locust.district="Рыскуловский район";
if(locust.district.equals("Шуйский")) locust.district="Чуйский район";
if(locust.district.equals("Сарысуский")) locust.district="Сары-Суйский район";
if(locust.district.equals("Федоровский")) locust.district="Фёдоровский район";
if(locust.district.equals("Жангельдинский")) locust.district="Джангельдинский район";
if(locust.district.equals("Сырдария")) locust.district="Сырдарьинский район";
if(locust.district.equals("Кызылорда")) locust.district="Кызылординский городской округ";
if(locust.district.equals("к.Кызылорда")) locust.district="Кызылординский городской округ";
if(locust.district.equals("Аралский")) locust.district="Аральский район";
if(locust.district.equals("Шиелі")) locust.district="Шиелийский район";
if(locust.region_id.equals("11") && locust.district.equals("Аксуский")) locust.district="Аксуйский городской округ";
if(locust.region_id.equals("11") && locust.district.equals("Аксуский")) locust.district="Аксуйский городской округ";
if(locust.region_id.equals("11") && locust.district.equals("Ақсуский")) locust.district="Аксуйский городской округ";
if(locust.district.equals("Аққулы")) locust.district="Аккулинский район";
if(locust.district.equals("Аккулы")) locust.district="Аккулинский район";
if(locust.district.equals("Тереңкөл")) locust.district="Теренкольский";
if(locust.district.equals("г. Павлодар")) locust.district="Павлодарский городской округ";
if(locust.district.equals("Екибастузский")) locust.district="Экибастузский городской округ";
if(locust.district.equals("Шербактнский")) locust.district="Щербактинский район";
if(locust.district.equals("Толебиский ")) locust.district="Толебийский район";
if(locust.district.equals("г.Шымкент Абайский ")) locust.district="Шымкентский городской округ";
if(locust.district.equals("г.Шымкент Каратауский ")) locust.district="Шымкентский городской округ";
if(locust.district.equals("Баянауыл")) locust.district="Баянаул";
if(locust.district.equals("Екібастұз")) locust.district="Экибастуз";
stt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
String sql_query = "select id from main.countriesdistricts where region_id="+locust.region_id+" and name like '%"+locust.district+"%';";
rs = stt.executeQuery(sql_query);
if (rs != null) {
try {
if (rs.next()) {
locust.district_id=rs.getString(1);
}
rs.close();
} catch (SQLException ex) {
}
}
} catch (SQLException ex) {
}finally {
if(rs!=null) try{rs.close();}catch(SQLException ex){}
if(stt!=null) try{stt.close();}catch(SQLException ex){}
}
//Сельский округ
locust.terrain=CutBeforeFirst(data,";");
//Хозяйство или местность
locust.village=CutBeforeFirst(data,";");
//Вид саранчи
locust.locust=CutBeforeFirst(data,";");
locust.locust_id="";
if(locust.locust.equals(" итальянский прус")) locust.locust_id="1";
if(locust.locust.equals("итальянский прус")) locust.locust_id="1";
if(locust.locust.equals("Итальянский прус")) locust.locust_id="1";
if(locust.locust.equals("итальянский прус ")) locust.locust_id="1";
if(locust.locust.equals("Азиатская саранча")) locust.locust_id="3";
if(locust.locust.equals("азиатская саранча")) locust.locust_id="3";
if(locust.locust.equals("нестадные")) locust.locust_id="4";
if(locust.locust.equals("нестадные саранчовые")) locust.locust_id="4";
if(locust.locust.equals("Нестадные саранчевые")) locust.locust_id="4";
if(locust.locust.equals("Нестадная саранча ")) locust.locust_id="4";
if(locust.locust.equals("Нестадная саранча")) locust.locust_id="4";
if(locust.locust.equals("нестадная саранча")) locust.locust_id="4";
if(locust.locust.equals("Мароккская саранча")) locust.locust_id="2";
//фаза саранчи
locust.phase=CutBeforeFirst(data,";");
locust.locust_have="3";
if(locust.phase.equals("кубышки")) locust.locust_have="2";
if(locust.phase.equals("личинки")) locust.locust_have="3";
if(locust.phase.equals("имаго")) locust.locust_have="5";
locust.evp=CutBeforeFirst(data,";"); //ЭФП
locust.size=CutBeforeFirst(data,";"); //Заселённая площадь
locust.size=locust.size.replace(",",".");
locust.date=CutBeforeFirst(data,";"); //Дата
String row="<tr>";
if(error==true || locust.lat==0 || locust.lon==0 || locust.region_id.isEmpty() || locust.district_id.isEmpty() || locust.terrain.isEmpty() || locust.locust_id.isEmpty()) {
row="<tr style=\"background-color:red;\">";
}
row+="<td>"+i+"</td><td>"+locust.lat+"</td><td>"+locust.lon+"</td><td>"+locust.region+" = "+locust.region_id+"</td><td>"+locust.district+" = "+locust.district_id+"</td><td>"+locust.terrain+"</td><td>"+locust.village+"</td><td>"+locust.locust+" = "+locust.locust_id+"</td><td>"+locust.phase+" = "+locust.locust_have+"</td><td>"+locust.evp+"</td><td>"+locust.size+"</td><td>"+locust.date+"</td>";
row+="</tr>\n";
table += row;
i++;
json+=" \n{\"type\":\"Feature\",\"geometry\":{\"type\":\"Point\",\"coordinates\":["+locust.lon+","+locust.lat+"]},\"properties\":{\"oblast\":\""+locust.region.replace("\"", "'")+"\",\"district\":\""+locust.district.replace("\"", "'")+"\",\"region\":\""+locust.terrain.replace("\"", "'")+"\",\"village\":\""+locust.village.replace("\"", "'")+"\",\"phase\":\""+locust.phase+"\",\"locust\":\""+locust.locust+"\",\"evp\": \""+locust.evp+"\",\"ga\": \""+locust.size+"\",\"date\": \""+locust.date+"\"}},";
sqlData+="insert into main.frmlocust(country_id,region_id,district,terrain,village,lon1,lat1,locust_type_id,locust_have,locust_populated,date)values(5,"+locust.region_id+",'"+locust.district.trim()+"','"+locust.terrain.trim()+"','"+locust.village.trim()+"',"+locust.lon+","+locust.lat+","+locust.locust_id+","+locust.locust_have+","+locust.size+",TO_DATE('"+locust.date+"','DD.MM.YYYY'));\n";
if(i>5000) break;
line=reader.readLine();
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}else {
table="CSV file is empty! "+skip;
}
table += "</table>";
json=json.substring(0,json.length()-1); //Удаляю последнюю запятую
json+="\n]}";
model.addAttribute("PreviewTable",table);
model.addAttribute("PreviewGEOJSON",json);
model.addAttribute("PreviewSQL",sqlData);
return "excel";
}
//---------------------------------------------------------------------------
public static String CutBeforeFirst(StringBuffer str,String ch)
{
int pos=str.indexOf(ch);
String result="";
if(pos==-1)
{
result.concat(str.toString());
str.delete(0,str.length());
}else
{
result=str.substring(0,pos);
str.delete(0,pos+1);
}
return result;
}
//---------------------------------------------------------------------------
class Locust{
double lon;
double lat;
String region; //Область
String region_id;
String district; //Район
String district_id;
String terrain; //Название месности
String village; //Хозяйство или местность
String locust; //Вид саранчи
String locust_id; //Вид саранчи
String phase; //Фаза саранчи
String locust_have; //id Фазы саранчи
String evp; //ЭФП
String size; //Заселённая площадь
String date; //Дата
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,29 +1,40 @@
package org.ccalm.main; package org.ccalm.main;
import java.io.*; import java.io.*;
import java.sql.Connection; import java.nio.charset.StandardCharsets;
import java.sql.DriverManager; import java.sql.*;
import java.sql.ResultSet; import java.time.LocalDateTime;
import java.sql.ResultSetMetaData; import java.util.HashMap;
import java.sql.SQLException; import java.util.List;
import java.sql.Statement; import java.util.Map;
import java.util.Properties; import java.util.Properties;
//import javax.servlet.ServletContext; import com.fasterxml.jackson.databind.ObjectMapper;
//import javax.servlet.http.HttpServletResponse; import com.zaxxer.hikari.HikariDataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.jdbc.core.JdbcTemplate;
import jakarta.servlet.http.HttpServletRequest;
import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilderFactory;
import jakarta.servlet.ServletContext; import jakarta.servlet.ServletContext;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.context.ServletContextAware; import org.springframework.web.context.ServletContextAware;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.w3c.dom.Element; import org.w3c.dom.Element;
@ -47,6 +58,19 @@ public class GeoGSON implements ServletContextAware {
@Value("${data.dir}") @Value("${data.dir}")
String data_dir = ""; String data_dir = "";
private final NamedParameterJdbcTemplate jdbcTemplate;
private final Environment environment;
private HikariDataSource dataSource;
//---------------------------------------------------------------------------
@Autowired
public GeoGSON(NamedParameterJdbcTemplate jdbcTemplate, HikariDataSource dataSource, Environment environment) {
this.jdbcTemplate = jdbcTemplate;
this.environment = environment;
this.dataSource = dataSource;
}
//---------------------------------------------------------------------------
@RequestMapping(value = {"/geojson", "/api/locust/v01/geojson"}, method = RequestMethod.GET) @RequestMapping(value = {"/geojson", "/api/locust/v01/geojson"}, method = RequestMethod.GET)
@ResponseBody @ResponseBody
public Object home(@RequestParam(required=false,name="table") String table,@RequestParam(required=false,name="id") String id) public Object home(@RequestParam(required=false,name="table") String table,@RequestParam(required=false,name="id") String id)
@ -107,7 +131,6 @@ public class GeoGSON implements ServletContextAware {
this.context=context; this.context=context;
} }
//For compilatin android project //For compilatin android project
//http://127.0.0.1:8080/CCALM/countriesregionspoints //http://127.0.0.1:8080/CCALM/countriesregionspoints
@RequestMapping(value = {"/countriesregionspoints", "/api/locust/v01/countriesregionspoints"}, method = RequestMethod.GET) @RequestMapping(value = {"/countriesregionspoints", "/api/locust/v01/countriesregionspoints"}, method = RequestMethod.GET)
@ -226,4 +249,232 @@ public class GeoGSON implements ServletContextAware {
return result; return result;
} }
// JSON to file frmlocust_pods_density.qgs
@RequestMapping(
value = { "/geojson/frmlocust_pods_density", "/api/locust/v01/geojson/frmlocust_pods_density"},
method = RequestMethod.GET,
produces = "application/geo+json;charset=UTF-8"
)
@ResponseBody
public ResponseEntity<byte[]> podsDensity(
@RequestParam(required = false, name = "country_id", defaultValue = "5") Integer countryId,
@RequestParam(required = false, name = "region_id") Long regionId,
@RequestParam(required = false, name = "locust_type_id") Long locustTypeId,
@RequestParam(required = false, name = "date_start", defaultValue = "1750227418") Long dateStartUnix,
@RequestParam(required = false, name = "date_end", defaultValue = "1758010618") Long dateEndUnix,
@CookieValue(value = "lng", defaultValue = "1") String language_id,
HttpServletRequest request // Добавляем для получения заголовка Range
) {
try {
String sql = """
SELECT
*
FROM main.get_frmlocust_pods_density(
:countryId,
:regionId,
:locustTypeId,
cast(to_timestamp(:dateFrom) as timestamp without time zone),
cast(to_timestamp(:dateTo) as timestamp without time zone)
)
""";
MapSqlParameterSource params = new MapSqlParameterSource();
params.addValue("countryId", countryId, Types.BIGINT);
params.addValue("regionId", regionId, Types.BIGINT);
params.addValue("locustTypeId", locustTypeId, Types.BIGINT);
params.addValue("dateFrom", dateStartUnix, Types.BIGINT);
params.addValue("dateTo", dateEndUnix, Types.BIGINT);
List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql, params);
// Формируем FeatureCollection
JSONArray features = new JSONArray();
for (Map<String, Object> row : rows) {
JSONObject feature = new JSONObject();
feature.put("type", "Feature");
feature.put("geometry", new JSONObject((String) row.get("geometry")));
JSONObject props = new JSONObject();
for (Map.Entry<String, Object> e : row.entrySet()) {
if (!"geometry".equals(e.getKey())) {
Object value = e.getValue();
if (value == null) {
props.put(e.getKey(), JSONObject.NULL);
} else {
props.put(e.getKey(), value);
}
}
}
feature.put("properties", props);
features.put(feature);
}
JSONObject collection = new JSONObject();
collection.put("type", "FeatureCollection");
collection.put("features", features);
// Преобразуем в байты
byte[] data = collection.toString().getBytes(StandardCharsets.UTF_8);
long contentLength = data.length;
// Обрабатываем Range-запрос
String rangeHeader = request.getHeader("Range");
HttpHeaders headers = new HttpHeaders();
headers.add("Accept-Ranges", "bytes");
if (rangeHeader != null && rangeHeader.startsWith("bytes=")) {
String[] ranges = rangeHeader.replace("bytes=", "").split("-");
long start = Long.parseLong(ranges[0]);
long end = ranges.length > 1 && !ranges[1].isEmpty() ? Long.parseLong(ranges[1]) : contentLength - 1;
if (start >= contentLength || end >= contentLength || start > end) {
return ResponseEntity.status(HttpStatus.REQUESTED_RANGE_NOT_SATISFIABLE)
.header("Content-Range", "bytes */" + contentLength)
.build();
}
long rangeLength = end - start + 1;
byte[] rangeData = new byte[(int) rangeLength];
System.arraycopy(data, (int) start, rangeData, 0, (int) rangeLength);
headers.add("Content-Range", "bytes " + start + "-" + end + "/" + contentLength);
headers.add("Content-Length", String.valueOf(rangeLength));
return new ResponseEntity<>(rangeData, headers, HttpStatus.PARTIAL_CONTENT);
}
// Полный ответ, если Range не запрошен
headers.add("Content-Length", String.valueOf(contentLength));
return new ResponseEntity<>(data, headers, HttpStatus.OK);
} catch (Exception e) {
e.printStackTrace();
String error = "{\"error\":\"" + e.getMessage() + "\"}";
return new ResponseEntity<>(error.getBytes(StandardCharsets.UTF_8), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@GetMapping(
value = { "/geojson/countriesdistricts", "/api/locust/v01/geojson/countriesdistricts"},
produces = "application/geo+json;charset=UTF-8")
@ResponseBody
public ResponseEntity<byte[]> getCountriesDistricts(
@RequestParam(required = false, name = "country_id") Long countryId,
HttpServletRequest request
) {
return getGeoJson("main.view_countriesdistricts", "id", countryId, request);
}
@GetMapping(
value = { "/geojson/countriesregions", "/api/locust/v01/geojson/countriesregions"},
produces = "application/geo+json;charset=UTF-8"
)
@ResponseBody
public ResponseEntity<byte[]> getCountriesRegions(
@RequestParam(required = false, name = "country_id") Long countryId,
HttpServletRequest request
) {
return getGeoJson("main.view_countriesregions", "id", countryId, request);
}
@GetMapping(
value = { "/geojson/countries", "/api/locust/v01/geojson/countries"},
produces = "application/geo+json;charset=UTF-8")
@ResponseBody
public ResponseEntity<byte[]> getCountries(
@RequestParam(required = false, name = "country_id") Long countryId,
HttpServletRequest request
) {
return getGeoJson("main.view_countries", "country_id", countryId, request);
}
/**
* Общая функция для GeoJSON с поддержкой Range-запросов
*/
private ResponseEntity<byte[]> getGeoJson(
String table,
String idField,
Long countryId,
HttpServletRequest request
) {
try {
String sql = """
SELECT
%s AS id,
ST_AsGeoJSON(geom)::text AS geometry,
*
FROM %s
WHERE
geom IS NOT NULL
AND (country_id = :countryId)
""".formatted(idField, table);
MapSqlParameterSource params = new MapSqlParameterSource();
params.addValue("countryId", countryId);
List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql, params);
JSONArray features = new JSONArray();
for (Map<String, Object> row : rows) {
JSONObject feature = new JSONObject();
feature.put("type", "Feature");
// Геометрия
feature.put("geometry", new JSONObject((String) row.get("geometry")));
// Свойства
JSONObject props = new JSONObject();
for (Map.Entry<String, Object> e : row.entrySet()) {
if (!"geometry".equals(e.getKey()) && !"geom".equals(e.getKey())) {
Object value = e.getValue();
props.put(e.getKey(), value == null ? JSONObject.NULL : value);
}
}
feature.put("properties", props);
features.put(feature);
}
JSONObject collection = new JSONObject();
collection.put("type", "FeatureCollection");
collection.put("features", features);
byte[] data = collection.toString().getBytes(StandardCharsets.UTF_8);
long contentLength = data.length;
HttpHeaders headers = new HttpHeaders();
headers.add("Accept-Ranges", "bytes");
// Обработка Range
String rangeHeader = request.getHeader("Range");
if (rangeHeader != null && rangeHeader.startsWith("bytes=")) {
String[] ranges = rangeHeader.replace("bytes=", "").split("-");
long start = Long.parseLong(ranges[0]);
long end = ranges.length > 1 && !ranges[1].isEmpty() ? Long.parseLong(ranges[1]) : contentLength - 1;
if (start >= contentLength || end >= contentLength || start > end) {
return ResponseEntity.status(HttpStatus.REQUESTED_RANGE_NOT_SATISFIABLE)
.header("Content-Range", "bytes */" + contentLength)
.build();
}
long rangeLength = end - start + 1;
byte[] rangeData = new byte[(int) rangeLength];
System.arraycopy(data, (int) start, rangeData, 0, (int) rangeLength);
headers.add("Content-Range", "bytes " + start + "-" + end + "/" + contentLength);
headers.add("Content-Length", String.valueOf(rangeLength));
return new ResponseEntity<>(rangeData, headers, HttpStatus.PARTIAL_CONTENT);
}
headers.add("Content-Length", String.valueOf(contentLength));
return new ResponseEntity<>(data, headers, HttpStatus.OK);
} catch (Exception e) {
e.printStackTrace();
String error = "{\"error\":\"" + e.getMessage() + "\"}";
return new ResponseEntity<>(error.getBytes(StandardCharsets.UTF_8), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
} }

View File

@ -1,12 +1,10 @@
package org.ccalm.main; package org.ccalm.main;
import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.sql.*; import java.sql.*;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Properties; import java.util.Properties;
import java.util.Set;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
//import javax.servlet.ServletContext; //import javax.servlet.ServletContext;
@ -21,7 +19,6 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException; import org.springframework.dao.DataAccessException;
import org.springframework.http.CacheControl; import org.springframework.http.CacheControl;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -30,7 +27,6 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.ServletContextAware; import org.springframework.web.context.ServletContextAware;
import org.ccalm.main.TranslationUtils;
import tools.DBTools; import tools.DBTools;
import tools.User; import tools.User;

View File

@ -1015,7 +1015,10 @@ public class Products implements ServletContextAware {
} }
//Получить плотность имаго за последние 5 лет //Получить плотность имаго за последние 5 лет
@RequestMapping(value = {"/get_density_imago", "/api/locust/v01/get_density_imago"},method = RequestMethod.POST, produces = "application/json;charset=UTF-8") @RequestMapping(
value = {"/get_density_imago", "/api/locust/v01/get_density_imago"},
method = {RequestMethod.POST, RequestMethod.GET},
produces = "application/json;charset=UTF-8")
@ResponseBody @ResponseBody
public ResponseEntity<Object> getDensityImago( public ResponseEntity<Object> getDensityImago(
@ModelAttribute User user, @ModelAttribute User user,

View File

@ -1,7 +1,9 @@
package org.ccalm.main; package org.ccalm.main;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.FileInputStream; import java.io.FileInputStream;
@ -29,12 +31,7 @@ import org.springframework.core.io.ClassPathResource;
import org.springframework.http.HttpEntity; import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.context.ServletContextAware; import org.springframework.web.context.ServletContextAware;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.w3c.dom.Element; import org.w3c.dom.Element;
@ -66,9 +63,30 @@ public class QGIS implements ServletContextAware {
// return new User("none"); // return new User("none");
//} //}
@RequestMapping(value = {"/QGIS", "/api/locust/v01/QGIS"},method = RequestMethod.GET,produces = "application/octet-stream") //TEST https://127.0.0.1:8083/api/locust/v01/QGIS?name=SMAP&date=2025-05-30
//TEST https://ccalm.org/api/locust/v01/QGIS?name=SMAP&day=150
@RequestMapping(
value = {"/QGIS", "/api/locust/v01/QGIS"},
method = RequestMethod.GET,produces = "application/octet-stream")
@ResponseBody @ResponseBody
public HttpEntity<byte[]> ajaxTamer(@ModelAttribute User user, @RequestParam(required=false,name="day") String day, @RequestParam(required=false,name="name") String name, @RequestParam(required=false,name="time") String time, @RequestParam(required=false,name="time_start") String time_start, @RequestParam(required=false,name="time_end") String time_end, @RequestParam(required=false,name="country_id") String country_id, @RequestParam(required=false,name="locust_type_id") String locust_type_id, @RequestParam(required=false,name="date_start") String date_start, @RequestParam(required=false,name="date_end") String date_end, @RequestParam(required=false,name="registered") String registered, @RequestParam(required=false,name="year") String year, @RequestParam(required=false,name="region_id") String region_id, @RequestParam(required=false,name="country_name") String country_name, @RequestParam(required=false,name="lng") String language_id, HttpServletResponse response) public HttpEntity<byte[]> ajaxTamer(
@ModelAttribute User user,
@RequestParam(required=false,name="day") String day,
@RequestParam(required=false,name="date") String date,
@RequestParam(required=false,name="name") String name,
@RequestParam(required=false,name="time") String time,
@RequestParam(required=false,name="time_start") String time_start,
@RequestParam(required=false,name="time_end") String time_end,
@RequestParam(required=false,name="country_id") String country_id,
@RequestParam(required=false,name="locust_type_id") String locust_type_id,
@RequestParam(required=false,name="date_start") String date_start,
@RequestParam(required=false,name="date_end") String date_end,
@RequestParam(required=false,name="registered") String registered,
@RequestParam(required=false,name="year") String year,
@RequestParam(required=false,name="region_id") String region_id,
@RequestParam(required=false,name="country_name") String country_name,
@CookieValue(value = "lng", defaultValue = "1") String language_id,
HttpServletResponse response)
{ {
if(language_id!=null && !language_id.isEmpty()) user.language_id=language_id; if(language_id!=null && !language_id.isEmpty()) user.language_id=language_id;
logger.info("user.id="+user.id+" user.name="+user.name+" user.language_id="+user.language_id); logger.info("user.id="+user.id+" user.name="+user.name+" user.language_id="+user.language_id);
@ -85,7 +103,6 @@ public class QGIS implements ServletContextAware {
logger.info(ex.getMessage()); logger.info(ex.getMessage());
} }
//Return content QGIS file. //Return content QGIS file.
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
@ -94,9 +111,77 @@ public class QGIS implements ServletContextAware {
String fileAsString=""; String fileAsString="";
//Pods (кубышки) //Pods (кубышки)
if(name!=null && (name.equals("frmlocust_pods_density") || name.equals("frmlocust_hoppers_density") || name.equals("frmlocust_bands") || name.equals("frmlocust_adults_density") || name.equals("frmlocust_swarms"))) //TODO NEW format
if(name!=null && (name.equals("frmlocust_pods_density")))
{ {
fileAsString = fileToString(context.getRealPath("/resources/QGIS/" + name + ".qgs")); fileAsString = fileToString("static/resources/QGIS/" + name + ".qgs");
//String country_id=request.getParameter("country_id");
//String locust_type_id=request.getParameter("locust_type_id");
//String date_start=request.getParameter("date_start");
//String date_end=request.getParameter("date_end");
//String registered=request.getParameter("registered");
//Make SQL
String sql = "mode=1";
String sql2 = "mode=1";
if(country_id!=null && !country_id.isEmpty())
{
if(country_id.equals("-1"))
{
//sql+=" and country_id in (7,3,4,2)"; TODO
//sql2+=" and country_id in (7,3,4,2)"; TODO
}else if(country_id.equals("-2"))
{
//sql+=" and country_id in (7,1,5,6,8,9,10)"; TODO
//sql2+=" and country_id in (7,1,5,6,8,9,10)"; TODO
}else
{
sql+="&amp;country_id="+country_id;
sql2+="&amp;country_id="+country_id;
}
}
if(region_id!=null && !region_id.isEmpty())
{
sql+="&amp;region_id="+region_id;
}
if(locust_type_id!=null && !locust_type_id.isEmpty())
{
sql+="&amp;locust_type_id="+locust_type_id;
}
if(date_start!=null && !date_start.isEmpty())
{
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime localDateTime = LocalDateTime.parse(date_start, formatter);
long epochSeconds = localDateTime.toEpochSecond(ZoneOffset.UTC);
sql+="&amp;date_start="+epochSeconds;
}
if(date_end!=null && !date_end.isEmpty())
{
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime localDateTime = LocalDateTime.parse(date_end, formatter);
long epochSeconds = localDateTime.toEpochSecond(ZoneOffset.UTC);
sql+="&amp;date_end="+epochSeconds;
}
if(registered!=null && registered.equals("1"))
{
sql+="&amp;registered=true";
}else
if(registered!=null && registered.equals("0"))
{
sql+="&amp;registered=false";
}
//Apply variables to text
fileAsString=fileAsString.replaceAll("\\$\\{params\\}",sql);
fileAsString=fileAsString.replaceAll("\\$\\{params2\\}",sql2);
}
//TODO OLD format
if(name!=null && (name.equals("frmlocust_hoppers_density") || name.equals("frmlocust_bands") || name.equals("frmlocust_adults_density") || name.equals("frmlocust_swarms")))
{
fileAsString = fileToString("static/resources/QGIS/" + name + ".qgs");
//String country_id=request.getParameter("country_id"); //String country_id=request.getParameter("country_id");
//String locust_type_id=request.getParameter("locust_type_id"); //String locust_type_id=request.getParameter("locust_type_id");
@ -154,7 +239,7 @@ public class QGIS implements ServletContextAware {
if(name!=null && name.equals("frmlocustdel")) if(name!=null && name.equals("frmlocustdel"))
{ {
fileAsString = fileToString(context.getRealPath("/resources/QGIS/" + name + ".qgs")); fileAsString = fileToString("static/resources/QGIS/" + name + ".qgs");
//String country_id=request.getParameter("country_id"); //String country_id=request.getParameter("country_id");
//String date_start=request.getParameter("date_start"); //String date_start=request.getParameter("date_start");
@ -231,7 +316,7 @@ public class QGIS implements ServletContextAware {
sql+=" and locust_type_id="+locust_type_id; sql+=" and locust_type_id="+locust_type_id;
} }
fileAsString = fileToString(context.getRealPath("/resources/QGIS/" + name + ".qgs")); fileAsString = fileToString("static/resources/QGIS/" + name + ".qgs");
//Apply variables to text //Apply variables to text
fileAsString=fileAsString.replaceAll("\\$\\{year\\}",year); fileAsString=fileAsString.replaceAll("\\$\\{year\\}",year);
fileAsString=fileAsString.replaceAll("\\$\\{sql\\}",sql); fileAsString=fileAsString.replaceAll("\\$\\{sql\\}",sql);
@ -254,7 +339,7 @@ public class QGIS implements ServletContextAware {
sql+=" and locust_type_id="+locust_type_id; sql+=" and locust_type_id="+locust_type_id;
} }
fileAsString = fileToString(context.getRealPath("/resources/QGIS/" + name + ".qgs")); fileAsString = fileToString("static/resources/QGIS/" + name + ".qgs");
//Apply variables to text //Apply variables to text
fileAsString=fileAsString.replaceAll("\\$\\{year\\}",year); fileAsString=fileAsString.replaceAll("\\$\\{year\\}",year);
fileAsString=fileAsString.replaceAll("\\$\\{sql\\}",sql); fileAsString=fileAsString.replaceAll("\\$\\{sql\\}",sql);
@ -277,7 +362,7 @@ public class QGIS implements ServletContextAware {
} }
} }
fileAsString = fileToString(context.getRealPath("/resources/QGIS/" + name + ".qgs")); fileAsString = fileToString("static/resources/QGIS/" + name + ".qgs");
//Apply variables to text //Apply variables to text
fileAsString=fileAsString.replaceAll("\\$\\{country\\}",country_name); fileAsString=fileAsString.replaceAll("\\$\\{country\\}",country_name);
fileAsString=fileAsString.replaceAll("\\$\\{sql2\\}",sql2); fileAsString=fileAsString.replaceAll("\\$\\{sql2\\}",sql2);
@ -301,7 +386,7 @@ public class QGIS implements ServletContextAware {
} }
} }
fileAsString = fileToString(context.getRealPath("/resources/QGIS/" + name + ".qgs")); fileAsString = fileToString("static/resources/QGIS/" + name + ".qgs");
//Apply variables to text //Apply variables to text
fileAsString=fileAsString.replaceAll("\\$\\{country\\}",country_name); fileAsString=fileAsString.replaceAll("\\$\\{country\\}",country_name);
fileAsString=fileAsString.replaceAll("\\$\\{sql2\\}",sql2); fileAsString=fileAsString.replaceAll("\\$\\{sql2\\}",sql2);
@ -325,7 +410,7 @@ public class QGIS implements ServletContextAware {
} }
} }
fileAsString = fileToString(context.getRealPath("/resources/QGIS/" + name + ".qgs")); fileAsString = fileToString("static/resources/QGIS/" + name + ".qgs");
//Apply variables to text //Apply variables to text
fileAsString=fileAsString.replaceAll("\\$\\{country\\}",country_name); fileAsString=fileAsString.replaceAll("\\$\\{country\\}",country_name);
fileAsString=fileAsString.replaceAll("\\$\\{sql2\\}",sql2); fileAsString=fileAsString.replaceAll("\\$\\{sql2\\}",sql2);
@ -349,7 +434,7 @@ public class QGIS implements ServletContextAware {
} }
} }
fileAsString = fileToString(context.getRealPath("/resources/QGIS/" + name + ".qgs")); fileAsString = fileToString("static/resources/QGIS/" + name + ".qgs");
//Apply variables to text //Apply variables to text
fileAsString=fileAsString.replaceAll("\\$\\{country\\}",country_name); fileAsString=fileAsString.replaceAll("\\$\\{country\\}",country_name);
fileAsString=fileAsString.replaceAll("\\$\\{sql2\\}",sql2); fileAsString=fileAsString.replaceAll("\\$\\{sql2\\}",sql2);
@ -358,7 +443,7 @@ public class QGIS implements ServletContextAware {
} }
if(name!=null && name.equals("NDVI")) if(name!=null && name.equals("NDVI"))
{ {
fileAsString = fileToString(context.getRealPath("/resources/QGIS/NDVI.qgs")); fileAsString = fileToString("static/resources/QGIS/NDVI.qgs");
if(day!=null && day.length()>0) if(day!=null && day.length()>0)
fileAsString = fileAsString.replaceAll("\\$\\{day\\}",day+"_"); fileAsString = fileAsString.replaceAll("\\$\\{day\\}",day+"_");
else else
@ -366,7 +451,7 @@ public class QGIS implements ServletContextAware {
} }
if(name!=null && name.equals("NDWI")) if(name!=null && name.equals("NDWI"))
{ {
fileAsString = fileToString(context.getRealPath("/resources/QGIS/NDWI.qgs")); fileAsString = fileToString("static/resources/QGIS/NDWI.qgs");
if(day!=null && day.length()>0) if(day!=null && day.length()>0)
fileAsString = fileAsString.replaceAll("\\$\\{day\\}",day+"_"); fileAsString = fileAsString.replaceAll("\\$\\{day\\}",day+"_");
else else
@ -374,7 +459,7 @@ public class QGIS implements ServletContextAware {
} }
if(name!=null && name.equals("IVI")) if(name!=null && name.equals("IVI"))
{ {
fileAsString = fileToString(context.getRealPath("/resources/QGIS/IVI.qgs")); fileAsString = fileToString("static/resources/QGIS/IVI.qgs");
if(year!=null && year.length()>0) if(year!=null && year.length()>0)
fileAsString = fileAsString.replaceAll("\\$\\{year\\}",year+"_"); fileAsString = fileAsString.replaceAll("\\$\\{year\\}",year+"_");
else else
@ -382,7 +467,7 @@ public class QGIS implements ServletContextAware {
} }
if(name!=null && name.equals("NDWI_CMP")) if(name!=null && name.equals("NDWI_CMP"))
{ {
fileAsString = fileToString(context.getRealPath("/resources/QGIS/NDWI_CMP.qgs")); fileAsString = fileToString("static/resources/QGIS/NDWI_CMP.qgs");
if(day!=null && day.length()>0) if(day!=null && day.length()>0)
fileAsString = fileAsString.replaceAll("\\$\\{day\\}",day+"_"); fileAsString = fileAsString.replaceAll("\\$\\{day\\}",day+"_");
else else
@ -390,19 +475,19 @@ public class QGIS implements ServletContextAware {
} }
if(name!=null && name.equals("NDSI")) if(name!=null && name.equals("NDSI"))
{ {
fileAsString = fileToString(context.getRealPath("/resources/QGIS/NDSI.qgs")); fileAsString = fileToString("static/resources/QGIS/NDSI.qgs");
if(day!=null && day.length()>0) if(day!=null && day.length()>0)
fileAsString = fileAsString.replaceAll("\\$\\{day\\}",day+"_"); fileAsString = fileAsString.replaceAll("\\$\\{day\\}",day+"_");
else else
fileAsString = fileAsString.replaceAll("\\$\\{day\\}",""); fileAsString = fileAsString.replaceAll("\\$\\{day\\}","");
} }
if(name!=null && name.equals("SMAP")) if(name!=null && name.equals("SMAP")) //https://127.0.0.1:8083/api/locust/v01/QGIS?name=SMAP&date=2025-05-30
{ {
fileAsString = fileToString(context.getRealPath("/resources/QGIS/SMAP.qgs")); fileAsString = fileToString("static/resources/QGIS/SMAP.qgs");
if(day!=null && day.length()>0) if(date!=null && !date.isEmpty())
fileAsString = fileAsString.replaceAll("\\$\\{day\\}",day+"_"); fileAsString = fileAsString.replaceAll("\\$\\{date\\}",date);
else else
fileAsString = fileAsString.replaceAll("\\$\\{day\\}",""); fileAsString = fileAsString.replaceAll("\\$\\{date\\}","");
} }
//Send data //Send data
@ -415,27 +500,42 @@ public class QGIS implements ServletContextAware {
this.context=servletContext; this.context=servletContext;
} }
public String fileToString(String fName)
{ public String fileToString(String fName) {
StringBuilder sb = new StringBuilder(1024); StringBuilder sb = new StringBuilder(1024);
try
{ // 1. Сначала пробуем как внешний файл
InputStream is = new FileInputStream(fName); try (InputStream is = new FileInputStream(fName);
BufferedReader buf = new BufferedReader(new InputStreamReader(is)); BufferedReader buf = new BufferedReader(new InputStreamReader(is))) {
String line = buf.readLine();
while(line != null) String line;
{ while ((line = buf.readLine()) != null) {
sb.append(line).append("\n"); sb.append(line).append("\n");
line = buf.readLine();
}
buf.close();
}
catch (Exception e){
System.out.println("Error: "+e.getMessage());
} }
return sb.toString(); return sb.toString();
} catch (Exception e) {
System.out.println("Не найден внешний файл, пробую искать в ресурсах: " + fName);
} }
// 2. Если файла нет, пробуем как ресурс из classpath
try (InputStream is = new ClassPathResource(fName).getInputStream();
BufferedReader buf = new BufferedReader(new InputStreamReader(is))) {
String line;
while ((line = buf.readLine()) != null) {
sb.append(line).append("\n");
}
} catch (Exception e) {
System.out.println("Ошибка при чтении из ресурсов: " + e.getMessage());
}
return sb.toString();
}
public String trt(Connection conn,String key,User user) public String trt(Connection conn,String key,User user)
{ {
String result=""; String result="";

View File

@ -110,6 +110,7 @@ public class SendWarning {
return result; return result;
} }
//https://ccalm.org/api/locust/v01/SendWarning
@RequestMapping(value = {"/api/locust/v01/SendWarning"},method = RequestMethod.GET,produces = "application/json;charset=UTF-8") @RequestMapping(value = {"/api/locust/v01/SendWarning"},method = RequestMethod.GET,produces = "application/json;charset=UTF-8")
@ResponseBody @ResponseBody
public ResponseEntity<Object> send() { public ResponseEntity<Object> send() {
@ -120,6 +121,7 @@ public class SendWarning {
String sql = """ String sql = """
select select
t.uid, t.uid,
t.name,
t.user_uid, t.user_uid,
t.lat, t.lat,
t.lon, t.lon,
@ -143,24 +145,22 @@ public class SendWarning {
for (String jsonString : ret) { for (String jsonString : ret) {
JSONObject obj = new JSONObject(jsonString); JSONObject obj = new JSONObject(jsonString);
JSONObject tmp_soil = getSoilTemperature(obj.getDouble("lat"),obj.getDouble("lon"));
JSONObject tmp_air = getAirTemperature(obj.getDouble("lat"),obj.getDouble("lon")); JSONObject tmp_air = getAirTemperature(obj.getDouble("lat"),obj.getDouble("lon"));
JSONObject tmp_soil = getSoilTemperature(obj.getDouble("lat"),obj.getDouble("lon"));
if(tmp_air!=null) { if(tmp_air!=null && obj.getBoolean("warn_air") && !obj.isNull("temperature_air")) {
Translation trt=new Translation(obj.getString("short_name"),jdbcTemplate); Translation trt=new Translation(obj.getString("short_name"),jdbcTemplate);
double value = obj.getDouble("value"); double value = obj.getDouble("temperature_air");
if (value < tmp_air.getDouble("value")) { if (value < tmp_air.getDouble("value")) {
String email = obj.getString("email"); String email = obj.getString("email");
if(email.equals("irigm@mail.ru") || email.equals("ivanov.i@istt.kz")){ //TODO для тестирования потом удалить
StringBuilder html = new StringBuilder(1024); StringBuilder html = new StringBuilder(1024);
html.append("<html>") html.append("<html>")
.append("<head>") .append("<head>")
.append("<style>") .append("<style>")
.append("body { font-family: Arial, sans-serif; background-color: #f4f4f4; color: #333; margin: 0; padding: 0; }") .append("body { font-family: Arial, sans-serif; background-color: #f4f4f4; color: #333; margin: 0; padding: 0; }")
.append(".container { max-width: 600px; margin: 0 auto; padding: 20px; background-color: #fff; border: 1px solid #ddd; position: relative; }") .append(".container { max-width: 600px; margin: 20px auto 0 auto; padding: 20px; background-color: #fff; border: 1px solid #ddd; position: relative; }")
.append(".logo { position: absolute; top: 10px; right: 10px; width: 100px; height: auto; }") .append(".logo { position: absolute; top: 10px; right: 10px; width: 100px; height: auto; }")
.append("h2 { color: #d9534f; margin-top: 50px; }") // Отступ для логотипа .append("h2 { color: #d9534f; }")
.append("table { border-collapse: collapse; width: 100%; margin: 20px 0; }") .append("table { border-collapse: collapse; width: 100%; margin: 20px 0; }")
.append("th, td { padding: 10px; border: 1px solid #ddd; text-align: left; }") .append("th, td { padding: 10px; border: 1px solid #ddd; text-align: left; }")
.append("th { background-color: #f9f9f9; }") .append("th { background-color: #f9f9f9; }")
@ -169,12 +169,13 @@ public class SendWarning {
.append("</head>") .append("</head>")
.append("<body>") .append("<body>")
.append("<div class='container'>") .append("<div class='container'>")
.append("<img src='https://ccalm.org/resources/images/locust.png' alt='Logo' class='logo'>") // Логотип
.append("<h2>").append(trt.trt(true,"Warning")).append("</h2>") .append("<h2>").append(trt.trt(true,"Warning")).append("</h2>")
.append("<p>").append(trt.trt(true,"The_soil_temperature_has_exceeded_the_set_value")).append(": ").append(value).append("</p>") .append("<p>").append(trt.trt(true,"The_air_temperature_has_exceeded_the_set_value")).append(": ").append(value).append("</p>")
.append("<table>") .append("<table>")
.append("<tr><th>").append(trt.trt(true,"Name")).append("</th><td>").append(obj.getString("name")).append("</td></tr>")
.append("<tr><th>").append(trt.trt(true,"Date")).append("</th><td>").append(tmp_air.getString("date")).append("</td></tr>") .append("<tr><th>").append(trt.trt(true,"Date")).append("</th><td>").append(tmp_air.getString("date")).append("</td></tr>")
.append("<tr><th>").append(trt.trt(true,"Value")).append("</th><td>").append(tmp_air.getDouble("value")).append(" °C</td></tr>") .append("<tr><th>").append(trt.trt(true,"Value")).append("</th><td>").append(tmp_air.getDouble("value")).append(" °C</td></tr>")
.append("<tr><th>").append(trt.trt(true,"Location")).append("</th><td><a href='https://www.google.com/maps?q=").append(obj.getDouble("lat")).append(",").append(obj.getDouble("lon")).append("' target='_blank'>").append(obj.getDouble("lat")).append(", ").append(obj.getDouble("lon")).append("</a></td></tr>")
.append("</table>") .append("</table>")
.append(trt.trt(true,"To_resume_monitoring_please_set_the_warn_field_to_true")) .append(trt.trt(true,"To_resume_monitoring_please_set_the_warn_field_to_true"))
.append("</div>") // Закрываем контейнер .append("</div>") // Закрываем контейнер
@ -183,7 +184,7 @@ public class SendWarning {
boolean send = false; boolean send = false;
try { try {
EmailUtility.sendEmail(mail_host, mail_port, mail_login, mail_password, email, trt.trt(true,"Soil temperature"), html.toString()); EmailUtility.sendEmail(mail_host, mail_port, mail_login, mail_password, email, trt.trt(true,"Air temperature"), html.toString());
send = true; send = true;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
@ -193,33 +194,32 @@ public class SendWarning {
update update
main.frmcheckpoints main.frmcheckpoints
set set
warn=true warn_air=false
where uid=:uid where
uid=CAST(:uid AS uuid)
and (warn_hold!=true or warn_hold is null)
"""; """;
MapSqlParameterSource param = new MapSqlParameterSource(); MapSqlParameterSource param = new MapSqlParameterSource();
param.addValue("uid", obj.getString("uid"), Types.INTEGER); param.addValue("uid", obj.getString("uid"), Types.VARCHAR);
int rowsUpdated = jdbcTemplate.update(sql, param); int rowsUpdated = jdbcTemplate.update(sql, param);
System.out.println("rowsUpdated = "+String.valueOf(rowsUpdated)); System.out.println("rowsUpdated = "+String.valueOf(rowsUpdated));
} }
} }
} }
}
if(tmp_soil!=null) { if(tmp_soil!=null && obj.getBoolean("warn_soil") && !obj.isNull("temperature_soil")) {
Translation trt=new Translation(obj.getString("short_name"),jdbcTemplate); Translation trt=new Translation(obj.getString("short_name"),jdbcTemplate);
double value = obj.getDouble("value"); double value = obj.getDouble("temperature_soil");
if (value < tmp_soil.getDouble("value")) { if (value < tmp_soil.getDouble("value")) {
String email = obj.getString("email"); String email = obj.getString("email");
if(email.equals("irigm@mail.ru") || email.equals("ivanov.i@istt.kz")){ //TODO для тестирования потом удалить
StringBuilder html = new StringBuilder(1024); StringBuilder html = new StringBuilder(1024);
html.append("<html>") html.append("<html>")
.append("<head>") .append("<head>")
.append("<style>") .append("<style>")
.append("body { font-family: Arial, sans-serif; background-color: #f4f4f4; color: #333; margin: 0; padding: 0; }") .append("body { font-family: Arial, sans-serif; background-color: #f4f4f4; color: #333; margin: 0; padding: 0; }")
.append(".container { max-width: 600px; margin: 0 auto; padding: 20px; background-color: #fff; border: 1px solid #ddd; position: relative; }") .append(".container { max-width: 600px; margin: 20px auto 0 auto; padding: 20px; background-color: #fff; border: 1px solid #ddd; position: relative; }")
.append(".logo { position: absolute; top: 10px; right: 10px; width: 100px; height: auto; }") .append(".logo { position: absolute; top: 10px; right: 10px; width: 100px; height: auto; }")
.append("h2 { color: #d9534f; margin-top: 50px; }") // Отступ для логотипа .append("h2 { color: #d9534f; }")
.append("table { border-collapse: collapse; width: 100%; margin: 20px 0; }") .append("table { border-collapse: collapse; width: 100%; margin: 20px 0; }")
.append("th, td { padding: 10px; border: 1px solid #ddd; text-align: left; }") .append("th, td { padding: 10px; border: 1px solid #ddd; text-align: left; }")
.append("th { background-color: #f9f9f9; }") .append("th { background-color: #f9f9f9; }")
@ -228,12 +228,13 @@ public class SendWarning {
.append("</head>") .append("</head>")
.append("<body>") .append("<body>")
.append("<div class='container'>") .append("<div class='container'>")
.append("<img src='https://ccalm.org/resources/images/locust.png' alt='Logo' class='logo'>") // Логотип
.append("<h2>").append(trt.trt(true,"Warning")).append("</h2>") .append("<h2>").append(trt.trt(true,"Warning")).append("</h2>")
.append("<p>").append(trt.trt(true,"The_soil_temperature_has_exceeded_the_set_value")).append(": ").append(value).append("</p>") .append("<p>").append(trt.trt(true,"The_soil_temperature_has_exceeded_the_set_value")).append(": ").append(value).append("</p>")
.append("<table>") .append("<table>")
.append("<tr><th>").append(trt.trt(true,"Name")).append("</th><td>").append(obj.getString("name")).append("</td></tr>")
.append("<tr><th>").append(trt.trt(true,"Date")).append("</th><td>").append(tmp_soil.getString("date")).append("</td></tr>") .append("<tr><th>").append(trt.trt(true,"Date")).append("</th><td>").append(tmp_soil.getString("date")).append("</td></tr>")
.append("<tr><th>").append(trt.trt(true,"Value")).append("</th><td>").append(tmp_soil.getDouble("value")).append(" °C</td></tr>") .append("<tr><th>").append(trt.trt(true,"Value")).append("</th><td>").append(tmp_soil.getDouble("value")).append(" °C</td></tr>")
.append("<tr><th>").append(trt.trt(true,"Location")).append("</th><td><a href='https://www.google.com/maps?q=").append(obj.getDouble("lat")).append(",").append(obj.getDouble("lon")).append("' target='_blank'>").append(obj.getDouble("lat")).append(", ").append(obj.getDouble("lon")).append("</a></td></tr>")
.append("</table>") .append("</table>")
.append(trt.trt(true,"To_resume_monitoring_please_set_the_warn_field_to_true")) .append(trt.trt(true,"To_resume_monitoring_please_set_the_warn_field_to_true"))
.append("</div>") // Закрываем контейнер .append("</div>") // Закрываем контейнер
@ -252,23 +253,23 @@ public class SendWarning {
update update
main.frmcheckpoints main.frmcheckpoints
set set
warn=true warn_soil=false
where uid=:uid where
uid=CAST(:uid AS uuid)
and (warn_hold!=true or warn_hold is null)
"""; """;
MapSqlParameterSource param = new MapSqlParameterSource(); MapSqlParameterSource param = new MapSqlParameterSource();
param.addValue("uid", obj.getString("uid"), Types.INTEGER); param.addValue("uid", obj.getString("uid"), Types.VARCHAR);
int rowsUpdated = jdbcTemplate.update(sql, param); int rowsUpdated = jdbcTemplate.update(sql, param);
System.out.println("rowsUpdated = "+String.valueOf(rowsUpdated)); System.out.println("rowsUpdated = "+String.valueOf(rowsUpdated));
} }
} }
} }
} }
}
} catch (Exception ex) { } catch (Exception ex) {
String uuid = UUID.randomUUID().toString(); String uuid = UUID.randomUUID().toString();
logger.error(MarkerFactory.getMarker(uuid),ex.getMessage(), ex); logger.error(MarkerFactory.getMarker(uuid),ex.getMessage(), ex);
result.put("error_code", 10000);
} }
return new ResponseEntity<>(result, HttpStatus.OK); return new ResponseEntity<>(result, HttpStatus.OK);
} }

View File

@ -4,6 +4,7 @@ import org.ccalm.main.models.FrmLocustModel;
import org.json.JSONObject; import org.json.JSONObject;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.slf4j.MarkerFactory;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import tools.DBTools; import tools.DBTools;
@ -12,8 +13,11 @@ import java.sql.Types;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.UUID;
public class UpdateLocust { public class UpdateLocust {
@ -25,20 +29,25 @@ public class UpdateLocust {
this.jdbcTemplate = jdbcTemplate; this.jdbcTemplate = jdbcTemplate;
} }
//Update or insert locust survey form
public boolean update(FrmLocustModel locust){ public boolean update(FrmLocustModel locust){
String sql; String sql;
boolean exists=false; //Is there a record. boolean exists=false; //Is there a record.
MapSqlParameterSource parameters; MapSqlParameterSource parameters;
//Если данные пришли из внешнего источника то проверяем по ID компании и eid //Если данные пришли из внешнего источника то выбираю uid по eid
if(locust.eid!=null && locust.uid==null) { if(locust.eid!=null && locust.uid==null) {
int year = locust.date.toLocalDateTime().getYear();
sql = """ sql = """
select uid from main.frmlocust where eid=:eid and company_uid=CAST(:company_uid AS uuid) select uid from main.frmlocust where eid=:eid and company_uid=CAST(:company_uid AS uuid) and EXTRACT(YEAR FROM date)=:year
"""; """;
parameters = new MapSqlParameterSource(); parameters = new MapSqlParameterSource();
parameters.addValue("eid", locust.eid, Types.BIGINT); parameters.addValue("eid", locust.eid, Types.BIGINT);
parameters.addValue("company_uid", locust.company_uid, Types.VARCHAR); parameters.addValue("company_uid", locust.company_uid, Types.VARCHAR);
parameters.addValue("year", year, Types.INTEGER);
List<String> ret = jdbcTemplate.query(sql, parameters, new DBTools.JsonRowMapper()); List<String> ret = jdbcTemplate.query(sql, parameters, new DBTools.JsonRowMapper());
for (String s : ret) { for (String s : ret) {
JSONObject obj = new JSONObject(s); JSONObject obj = new JSONObject(s);
@ -63,7 +72,9 @@ public class UpdateLocust {
{ {
sql= """ sql= """
update main.frmlocust set update main.frmlocust set
eid=:eid,
changed = false, changed = false,
company_uid=CAST(:company_uid AS uuid),
user_id=:user_id, user_id=:user_id,
device_id=:device_id, device_id=:device_id,
image_name1=:image_name1, image_name1=:image_name1,
@ -119,6 +130,7 @@ public class UpdateLocust {
imago_flying=:imago_flying, imago_flying=:imago_flying,
swarm_maturity=:swarm_maturity, swarm_maturity=:swarm_maturity,
swarm_density_id=:swarm_density_id, swarm_density_id=:swarm_density_id,
swarm_density_uid=main.strtouuid(:swarm_density_uid),
swarm_size=:swarm_size, swarm_size=:swarm_size,
swarm_count=:swarm_count, swarm_count=:swarm_count,
swarm_copulation=:swarm_copulation, swarm_copulation=:swarm_copulation,
@ -128,12 +140,14 @@ public class UpdateLocust {
description=:description, description=:description,
geom=ST_SetSRID(ST_GeomFromGeoJSON(:geom),4326), geom=ST_SetSRID(ST_GeomFromGeoJSON(:geom),4326),
test=:test test=:test
where uid=CAST(:uid AS uuid) where uid=main.strtouuid(:uid)
"""; """;
}else{ }else{
sql=""" sql="""
insert into main.frmlocust( insert into main.frmlocust(
eid,
changed, changed,
company_uid,
user_id, user_id,
device_id, device_id,
image_name1, image_name1,
@ -189,6 +203,7 @@ public class UpdateLocust {
imago_flying, imago_flying,
swarm_maturity, swarm_maturity,
swarm_density_id, swarm_density_id,
swarm_density_uid,
swarm_size, swarm_size,
swarm_count, swarm_count,
swarm_copulation, swarm_copulation,
@ -200,7 +215,9 @@ public class UpdateLocust {
test, test,
uid uid
)values( )values(
:eid,
false, false,
CAST(:company_uid AS uuid),
:user_id, :user_id,
:device_id, :device_id,
:image_name1, :image_name1,
@ -256,6 +273,7 @@ public class UpdateLocust {
:imago_flying, :imago_flying,
:swarm_maturity, :swarm_maturity,
:swarm_density_id, :swarm_density_id,
main.strtouuid(:swarm_density_uid),
:swarm_size, :swarm_size,
:swarm_count, :swarm_count,
:swarm_copulation, :swarm_copulation,
@ -265,12 +283,15 @@ public class UpdateLocust {
:description, :description,
ST_SetSRID(ST_GeomFromGeoJSON(:geom),4326), ST_SetSRID(ST_GeomFromGeoJSON(:geom),4326),
:test, :test,
:uid COALESCE(main.strtouuid(:uid),gen_random_uuid())
) )
"""; """;
} }
parameters = new MapSqlParameterSource(); parameters = new MapSqlParameterSource();
parameters.addValue("uid", locust.uid, Types.VARCHAR); parameters.addValue("uid", locust.uid, Types.VARCHAR);
if(locust.eid==null) parameters.addValue("eid", null, Types.INTEGER); else parameters.addValue("eid", Integer.parseInt(locust.eid), Types.INTEGER);
parameters.addValue("company_uid", locust.company_uid, Types.VARCHAR);
if(locust.user_id == null) { parameters.addValue("user_id", null, Types.BIGINT); } else { parameters.addValue("user_id", Long.parseLong(locust.user_id), Types.BIGINT); } if(locust.user_id == null) { parameters.addValue("user_id", null, Types.BIGINT); } else { parameters.addValue("user_id", Long.parseLong(locust.user_id), Types.BIGINT); }
@ -297,22 +318,7 @@ public class UpdateLocust {
parameters.addValue("date", null, Types.DATE); parameters.addValue("date", null, Types.DATE);
}else }else
{ {
if(locust.date.indexOf("-")==-1) //If old date format in UNIX time parameters.addValue("date", locust.date, Types.TIMESTAMP);
{
int uDate=Integer.parseInt(locust.date)+1;
java.sql.Timestamp tm=new java.sql.Timestamp((long)uDate*1000);
parameters.addValue("date", locust.date, Types.DATE);
}else
{
java.sql.Timestamp tm=null;
DateFormat dfm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //2016-05-29 18:00:01 in "GMT"
try{
tm = new java.sql.Timestamp(dfm.parse(locust.date).getTime());
} catch (Exception ex) {
logger.error(ex.getMessage(), ex);
}
parameters.addValue("date", locust.date, Types.DATE);
}
} }
parameters.addValue("timezone", locust.timezone, Types.VARCHAR); parameters.addValue("timezone", locust.timezone, Types.VARCHAR);
@ -388,6 +394,8 @@ public class UpdateLocust {
else parameters.addValue("swarm_maturity",false,Types.BOOLEAN); else parameters.addValue("swarm_maturity",false,Types.BOOLEAN);
} }
if(locust.swarm_density_id==null) parameters.addValue("swarm_density_id", null, Types.BIGINT); else parameters.addValue("swarm_density_id",Long.parseLong(locust.swarm_density_id), Types.BIGINT); if(locust.swarm_density_id==null) parameters.addValue("swarm_density_id", null, Types.BIGINT); else parameters.addValue("swarm_density_id",Long.parseLong(locust.swarm_density_id), Types.BIGINT);
if(locust.swarm_density_uid==null) parameters.addValue("swarm_density_uid", null, Types.VARCHAR); else parameters.addValue("swarm_density_uid",locust.swarm_density_uid, Types.VARCHAR);
if(locust.swarm_size==null) parameters.addValue("swarm_size", null, Types.DOUBLE); else parameters.addValue("swarm_size",Double.parseDouble(locust.swarm_size), Types.DOUBLE); if(locust.swarm_size==null) parameters.addValue("swarm_size", null, Types.DOUBLE); else parameters.addValue("swarm_size",Double.parseDouble(locust.swarm_size), Types.DOUBLE);
if(locust.swarm_count==null) parameters.addValue("swarm_count", null, Types.DOUBLE); else parameters.addValue("swarm_count",Double.parseDouble(locust.swarm_count), Types.DOUBLE); if(locust.swarm_count==null) parameters.addValue("swarm_count", null, Types.DOUBLE); else parameters.addValue("swarm_count",Double.parseDouble(locust.swarm_count), Types.DOUBLE);
if(locust.swarm_copulation==null) parameters.addValue("swarm_copulation", null, Types.BOOLEAN); if(locust.swarm_copulation==null) parameters.addValue("swarm_copulation", null, Types.BOOLEAN);
@ -403,16 +411,22 @@ public class UpdateLocust {
if(locust.swarm_flying_direction_id==null) parameters.addValue("swarm_flying_direction_id", null, Types.BIGINT); else parameters.addValue("swarm_flying_direction_id",Long.parseLong(locust.swarm_flying_direction_id), Types.BIGINT); if(locust.swarm_flying_direction_id==null) parameters.addValue("swarm_flying_direction_id", null, Types.BIGINT); else parameters.addValue("swarm_flying_direction_id",Long.parseLong(locust.swarm_flying_direction_id), Types.BIGINT);
if(locust.swarm_height_id==null) parameters.addValue("swarm_height_id", null, Types.BIGINT); else parameters.addValue("swarm_height_id",Long.parseLong(locust.swarm_height_id), Types.BIGINT); if(locust.swarm_height_id==null) parameters.addValue("swarm_height_id", null, Types.BIGINT); else parameters.addValue("swarm_height_id",Long.parseLong(locust.swarm_height_id), Types.BIGINT);
parameters.addValue("description", Types.VARCHAR); parameters.addValue("description", locust.description, Types.VARCHAR);
parameters.addValue("geom", Types.VARCHAR); parameters.addValue("geom", locust.geom, Types.VARCHAR);
if(locust.test==null) parameters.addValue("test", null, Types.BOOLEAN); if(locust.test==null) parameters.addValue("test", null, Types.BOOLEAN);
else { else {
if(locust.test.equals("1")) parameters.addValue("test",true, Types.BOOLEAN); if(locust.test.equals("1")) parameters.addValue("test",true, Types.BOOLEAN);
else parameters.addValue("test",false,Types.BOOLEAN); else parameters.addValue("test",false,Types.BOOLEAN);
} }
try {
return true; int rowsAffected = jdbcTemplate.update(sql, parameters);
return rowsAffected > 0;
} catch (Exception ex) {
String uuid = UUID.randomUUID().toString();
logger.error(MarkerFactory.getMarker(uuid), ex.getMessage(), ex);
return false;
}
} }
} }

View File

@ -5,8 +5,11 @@ import io.jsonwebtoken.Jws;
import io.jsonwebtoken.Jwts; import io.jsonwebtoken.Jwts;
import jakarta.servlet.ServletContext; import jakarta.servlet.ServletContext;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.ccalm.main.AcceptJSON;
import org.ccalm.main.engine.EngineController; import org.ccalm.main.engine.EngineController;
import org.json.JSONObject; import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MarkerFactory; import org.slf4j.MarkerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -30,7 +33,7 @@ import java.util.UUID;
@Controller @Controller
public class LoginController implements ServletContextAware { public class LoginController implements ServletContextAware {
private static final org.apache.logging.log4j.Logger logger = LogManager.getLogger(EngineController.class); private static final Logger logger = LoggerFactory.getLogger(LoginController.class);
private javax.servlet.ServletContext context; private javax.servlet.ServletContext context;
private final NamedParameterJdbcTemplate jdbcTemplate; private final NamedParameterJdbcTemplate jdbcTemplate;

View File

@ -0,0 +1,4 @@
package org.ccalm.main.models;
public class FrmLocustDelModel {
}

View File

@ -0,0 +1,4 @@
package org.ccalm.main.models;
public class FrmLocustHealthModel {
}

View File

@ -2,7 +2,7 @@ package org.ccalm.main.models;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.ccalm.main.utils.CustomException; //import org.ccalm.main.utils.CustomException;
import java.sql.Types; import java.sql.Types;
@ -44,6 +44,10 @@ public class FrmLocustModel {
public String locust_type_uid; //Locust species (Вид саранчи) public String locust_type_uid; //Locust species (Вид саранчи)
public String locust_populated; //Area infested (ha) public String locust_populated; //Area infested (ha)
public String bio_hectare=null; //Обследованная площадь
public String bio_biotope_id=null; //Тип биотопа
public String bio_biotope_uid=null; //Тип биотопа
public String bio_temperature; //air temperature public String bio_temperature; //air temperature
public String bio_wind; //Ветер (м/с) public String bio_wind; //Ветер (м/с)
public String bio_greenery_id; //растительность public String bio_greenery_id; //растительность
@ -51,17 +55,31 @@ public class FrmLocustModel {
public String bio_greenery_cover_id; //Густота растительного покрова public String bio_greenery_cover_id; //Густота растительного покрова
public String bio_greenery_cover_uid; //Густота растительного покрова public String bio_greenery_cover_uid; //Густота растительного покрова
public String phase=null; //Фаза саранчи public String phase=null; //Фаза саранчи
public String locust_have; //id Фазы саранчи public String locust_have; //id Фазы саранчи
public String evp; //ЭФП public String evp; //ЭФП
public String drawPolygon="null"; //Область обследования GeoGSON public String drawPolygon="null"; //Область обследования GeoGSON
public String size; //Заселённая площадь (polygonArea Площадь контура зоны распространения, в случае если специалист указал его) public String size; //Заселённая площадь (polygonArea Площадь контура зоны распространения, в случае если специалист указал его)
public String date; //Дата //public String date; //Дата
public java.sql.Timestamp date; //Дата
public String timezone; public String timezone;
public String description=""; public String description="";
public String geom;
//Hopper //Eggs
public String eggs = null; // For CheckBox
public String eggs_capsules_area = null; //Egg-bed (surface in ha)
public String eggs_capsules_density = null; //Плотность яиц
public String eggs_capsules_density_to = null; //Egg-pods (density) to
public String eggs_capsules = null; //Eggs (average)
public String eggs_live = null; //Eggs (viable)
public String eggs_enemies_id = null; //Natural enemies present
public String eggs_enemies_uid = null; //Natural enemies present
//public String eggs_enemies = null; //not using TODO delete field from database
//Hopper (личинки разряженные)
public String larva = null; public String larva = null;
public String larva_born = null; //Hatching character varying(255) COLLATE pg_catalog."default" DEFAULT NULL::character varying, public String larva_born = null; //Hatching character varying(255) COLLATE pg_catalog."default" DEFAULT NULL::character varying,
public String larva_born_id = null; // integer, public String larva_born_id = null; // integer,
@ -75,19 +93,8 @@ public class FrmLocustModel {
public String larva_density = null; //Hopper density numeric, (Плотность личинок) public String larva_density = null; //Hopper density numeric, (Плотность личинок)
public String larva_density_to = null; //Hopper density to numeric, public String larva_density_to = null; //Hopper density to numeric,
//Eggs
public String eggs = null; // For CheckBox
public String eggs_capsules_area = null; //Egg-bed (surface in ha)
public String eggs_capsules_density = null; //Плотность яиц
public String eggs_capsules_density_to = null; //Egg-pods (density) to
public String eggs_capsules = null; //Eggs (average)
public String eggs_live = null; //Eggs (viable)
public String eggs_enemies_id = null; //Natural enemies present
public String eggs_enemies_uid = null; //Natural enemies present
//public String eggs_enemies = null; //not using TODO delete field from database
//Bands (кулиги) //Bands (кулиги)
public String kuliguli = null; public String kuliguli = null; // For CheckBox
public String kuliguli_density=null; //Плотность кулиг на м² public String kuliguli_density=null; //Плотность кулиг на м²
public String kuliguli_density_to = null; //плотность максимальная в кулиге public String kuliguli_density_to = null; //плотность максимальная в кулиге
public String kuliguli_size = null; // Размер кулиг public String kuliguli_size = null; // Размер кулиг
@ -98,7 +105,7 @@ public class FrmLocustModel {
public String kuliguli_age_uid = null; // Возраст личинок public String kuliguli_age_uid = null; // Возраст личинок
//Adults (Имаго) //Adults (Имаго)
public String imago = null; public String imago = null; // For CheckBox
public String imago_wing_id = null; public String imago_wing_id = null;
public String imago_wing_uid = null; public String imago_wing_uid = null;
public String imago_maturity = null; public String imago_maturity = null;
@ -112,17 +119,15 @@ public class FrmLocustModel {
public String imago_density_ga = null; public String imago_density_ga = null;
public String imago_feeding = null; public String imago_feeding = null;
public String imago_copulation = null; public String imago_copulation = null;
public String imago_laying = null; public String imago_laying = null; //Кладка яиц
public String imago_flying = null; public String imago_flying = null;
public String bio_hectare=null; //Обследованная площадь
public String bio_biotope_id=null; //Тип тиотопа
public String bio_biotope_uid=null; //Тип тиотопа
public String swarms = null; // For CheckBox public String swarms = null; // For CheckBox
public String swarm_maturity = null; //Maturity boolean, public String swarm_maturity = null; //Maturity boolean,
public String swarm_density_id = null; //Density of swarm integer, public String swarm_density_id = null; //Density of swarm integer,
public String swarm_density_uid = null; //Density of swarm integer,
public String swarm_size = null; //Swarm size double precision, public String swarm_size = null; //Swarm size double precision,
public String swarm_count = null; //Number of swarms double precision, public String swarm_count = null; //Number of swarms double precision,
public String swarm_copulation = null; //Not used boolean, public String swarm_copulation = null; //Not used boolean,

View File

@ -21,9 +21,9 @@ import java.util.UUID;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
public class Tools { public class LTools {
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(Tools.class); private static final org.slf4j.Logger logger = LoggerFactory.getLogger(LTools.class);
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
public static JSONObject createJSONError(int code, String message, String setting, String marker) { public static JSONObject createJSONError(int code, String message, String setting, String marker) {
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();

View File

@ -14,11 +14,6 @@ import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress; import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMessage;
/**
* A utility class for sending e-mail messages
* @author www.codejava.net
*
*/
public class EmailUtility { public class EmailUtility {
public static void sendEmail(String host, String port, public static void sendEmail(String host, String port,
@ -62,4 +57,5 @@ public class EmailUtility {
// sends the e-mail // sends the e-mail
Transport.send(msg); Transport.send(msg);
} }
} }

View File

@ -1,15 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<conversionRule conversionWord="exOneLine" converterClass="org.ccalm.main.SingleLineThrowableProxyConverter"/> <!-- Ваш кастомный conversionRule для single-line исключений -->
<conversionRule conversionWord="exOneLine" converterClass="org.ccalm.dbms.SingleLineThrowableProxyConverter"/>
<property name="LOGS" value="logs" /> <property name="LOGS" value="logs" />
<springProperty scope="context" name="appName" source="spring.application.name"/> <springProperty scope="context" name="appName" source="spring.application.name"/>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOGS}/${appName}.log</file> <file>${LOGS}/${appName}.log</file>
<encoder> <encoder class="net.logstash.logback.encoder.LogstashEncoder">
<pattern>{"timestamp":"%d{yyyy-MM-dd'T'HH:mm:ss.SSS'Z'}","thread":"[%thread]","level":"%level","logger":"%logger{36}","marker":"%marker","message":"%msg","exception":"%exOneLine"}%n</pattern> <!-- Кастомные имена полей -->
<fieldNames>
<timestamp>timestamp</timestamp> <!-- Без @ -->
<level>level</level>
<message>message</message>
<stack_trace>exception</stack_trace>
<version>[ignore]</version>
<threadName>[ignore]</threadName>
<loggerName>[ignore]</loggerName>
<levelValue>[ignore]</levelValue>
<mdc>[ignore]</mdc>
</fieldNames>
<!-- Формат timestamp -->
<timestampPattern>yyyy-MM-dd'T'HH:mm:ss.SSS'Z'</timestampPattern>
<timestampTimeZone>UTC</timestampTimeZone>
<!-- Включаем маркеры (tags для MarkerFactory) -->
<includeTags>true</includeTags>
<!-- Отключаем лишние данные -->
<includeCallerData>false</includeCallerData>
<includeContext>false</includeContext>
<!-- Single-line исключения -->
<throwableConverter class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
<maxDepthPerThrowable>1</maxDepthPerThrowable>
<maxLength>1024</maxLength>
<shortenedClassNameLength>20</shortenedClassNameLength>
<exclude>$$FastClassByCGLIB$$</exclude>
<exclude>$$EnhancerBySpringCGLIB$$</exclude>
</throwableConverter>
</encoder> </encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOGS}/${appName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> <fileNamePattern>${LOGS}/${appName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
@ -21,12 +53,13 @@
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>%d{yyyy-MM-dd'T'HH:mm:ss.SSS'Z'} | %level | %logger{36} | %msg%n</pattern> <pattern>
%d{yyyy-MM-dd'T'HH:mm:ss.SSS'Z'} | %level | %logger{36} | %marker | %msg%n
</pattern>
</encoder> </encoder>
</appender> </appender>
<!--root level="info"--> <root level="info">
<root level="warn">
<appender-ref ref="FILE" /> <appender-ref ref="FILE" />
<appender-ref ref="CONSOLE" /> <appender-ref ref="CONSOLE" />
</root> </root>

View File

@ -0,0 +1,326 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis version="3.6.0-Noosa" projectname="">
<homePath path=""/>
<title></title>
<autotransaction active="0"/>
<evaluateDefaultValues active="0"/>
<trust active="0"/>
<projectCrs>
<spatialrefsys>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</projectCrs>
<layer-tree-group>
<customproperties/>
<layer-tree-layer name="IVI" id="h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b" source="contextualWMSLegend=0&amp;crs=EPSG:3857&amp;dpiMode=7&amp;featureCount=10&amp;format=image/png&amp;layers=IVI:${year}IVI_h20v03&amp;layers=IVI:${year}IVI_h20v04&amp;layers=IVI:${year}IVI_h21v03&amp;layers=IVI:${year}IVI_h21v04&amp;layers=IVI:${year}IVI_h21v05&amp;layers=IVI:${year}IVI_h22v03&amp;layers=IVI:${year}IVI_h22v04&amp;layers=IVI:${year}IVI_h22v05&amp;layers=IVI:${year}IVI_h23v03&amp;layers=IVI:${year}IVI_h23v04&amp;layers=IVI:${year}IVI_h23v05&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;url=http://geoserver2.ccalm.org/wms" expanded="0" checked="Qt::Checked" providerKey="wms">
<customproperties/>
</layer-tree-layer>
<layer-tree-layer name="OpenStreetMap" id="OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416" source="crs=EPSG:3857&amp;format&amp;type=xyz&amp;url=http://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png" expanded="1" checked="Qt::Checked" providerKey="wms">
<customproperties/>
</layer-tree-layer>
<custom-order enabled="0">
<item>OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416</item>
<item>h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b</item>
</custom-order>
</layer-tree-group>
<snapping-settings mode="2" unit="1" type="1" enabled="0" intersection-snapping="0" tolerance="12">
<individual-layer-settings/>
</snapping-settings>
<relations/>
<mapcanvas name="theMapCanvas" annotationsVisible="1">
<units>meters</units>
<extent>
<xmin>2465883.50908621679991484</xmin>
<ymin>264579.77565301861613989</ymin>
<xmax>12985575.38905057311058044</xmax>
<ymax>10784271.65561737865209579</ymax>
</extent>
<rotation>0</rotation>
<destinationsrs>
<spatialrefsys>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</destinationsrs>
<rendermaptile>0</rendermaptile>
<expressionContextScope/>
</mapcanvas>
<projectModels/>
<legend updateDrawingOrder="true">
<legendlayer name="IVI" drawingOrder="-1" checked="Qt::Checked" showFeatureCount="0" open="false">
<filegroup open="false" hidden="false">
<legendlayerfile layerid="h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b" visible="1" isInOverview="0"/>
</filegroup>
</legendlayer>
<legendlayer name="OpenStreetMap" drawingOrder="-1" checked="Qt::Checked" showFeatureCount="0" open="true">
<filegroup open="true" hidden="false">
<legendlayerfile layerid="OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416" visible="1" isInOverview="0"/>
</filegroup>
</legendlayer>
</legend>
<mapViewDocks/>
<mapViewDocks3D/>
<projectlayers>
<maplayer type="raster" refreshOnNotifyEnabled="0" autoRefreshEnabled="0" hasScaleBasedVisibilityFlag="0" refreshOnNotifyMessage="" autoRefreshTime="0" minScale="1e+08" maxScale="0" styleCategories="AllStyleCategories">
<extent>
<xmin>-20037508.34278924390673637</xmin>
<ymin>-20037508.34278925508260727</ymin>
<xmax>20037508.34278924390673637</xmax>
<ymax>20037508.34278924390673637</ymax>
</extent>
<id>OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416</id>
<datasource>crs=EPSG:3857&amp;format&amp;type=xyz&amp;url=http://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png</datasource>
<keywordList>
<value></value>
</keywordList>
<layername>OpenStreetMap</layername>
<srs>
<spatialrefsys>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</srs>
<resourceMetadata>
<identifier></identifier>
<parentidentifier></parentidentifier>
<language></language>
<type></type>
<title></title>
<abstract></abstract>
<links/>
<fees></fees>
<encoding></encoding>
<crs>
<spatialrefsys>
<proj4></proj4>
<srsid>0</srsid>
<srid>0</srid>
<authid></authid>
<description></description>
<projectionacronym></projectionacronym>
<ellipsoidacronym></ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</crs>
<extent/>
</resourceMetadata>
<provider>wms</provider>
<noData>
<noDataList bandNo="1" useSrcNoData="0"/>
</noData>
<map-layer-style-manager current="default">
<map-layer-style name="default"/>
</map-layer-style-manager>
<flags>
<Identifiable>1</Identifiable>
<Removable>1</Removable>
<Searchable>1</Searchable>
</flags>
<customproperties>
<property key="identify/format" value="Undefined"/>
<property key="ol_layer_type" value="OpenStreetMap"/>
</customproperties>
<pipe>
<rasterrenderer alphaBand="-1" type="singlebandcolordata" opacity="1" band="1">
<rasterTransparency/>
<minMaxOrigin>
<limits>None</limits>
<extent>WholeRaster</extent>
<statAccuracy>Estimated</statAccuracy>
<cumulativeCutLower>0.02</cumulativeCutLower>
<cumulativeCutUpper>0.98</cumulativeCutUpper>
<stdDevFactor>2</stdDevFactor>
</minMaxOrigin>
</rasterrenderer>
<brightnesscontrast brightness="0" contrast="0"/>
<huesaturation colorizeStrength="100" grayscaleMode="0" colorizeGreen="128" colorizeBlue="128" colorizeOn="0" saturation="0" colorizeRed="255"/>
<rasterresampler maxOversampling="2"/>
</pipe>
<blendMode>0</blendMode>
</maplayer>
<maplayer type="raster" refreshOnNotifyEnabled="0" autoRefreshEnabled="0" hasScaleBasedVisibilityFlag="0" refreshOnNotifyMessage="" autoRefreshTime="0" minScale="1e+08" maxScale="0" styleCategories="AllStyleCategories">
<extent>
<xmin>2906345.494111736305058</xmin>
<ymin>3503584.68813749961555004</ymin>
<xmax>13358323.19605071656405926</xmax>
<ymax>8399737.88861873932182789</ymax>
</extent>
<id>h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b</id>
<datasource>contextualWMSLegend=0&amp;crs=EPSG:3857&amp;dpiMode=7&amp;featureCount=10&amp;format=image/png&amp;layers=IVI:${year}IVI_h20v03&amp;layers=IVI:${year}IVI_h20v04&amp;layers=IVI:${year}IVI_h21v03&amp;layers=IVI:${year}IVI_h21v04&amp;layers=IVI:${year}IVI_h21v05&amp;layers=IVI:${year}IVI_h22v03&amp;layers=IVI:${year}IVI_h22v04&amp;layers=IVI:${year}IVI_h22v05&amp;layers=IVI:${year}IVI_h23v03&amp;layers=IVI:${year}IVI_h23v04&amp;layers=IVI:${year}IVI_h23v05&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;url=http://geoserver2.ccalm.org/wms</datasource>
<keywordList>
<value></value>
</keywordList>
<layername>${year}IVI</layername>
<srs>
<spatialrefsys>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</srs>
<resourceMetadata>
<identifier></identifier>
<parentidentifier></parentidentifier>
<language></language>
<type></type>
<title></title>
<abstract></abstract>
<contact>
<name></name>
<organization></organization>
<position></position>
<voice></voice>
<fax></fax>
<email></email>
<role></role>
</contact>
<links/>
<fees></fees>
<encoding></encoding>
<crs>
<spatialrefsys>
<proj4></proj4>
<srsid>0</srsid>
<srid>0</srid>
<authid></authid>
<description></description>
<projectionacronym></projectionacronym>
<ellipsoidacronym></ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</crs>
<extent>
<spatial minx="0" dimensions="2" minz="0" maxz="0" maxy="0" crs="" miny="0" maxx="0"/>
<temporal>
<period>
<start></start>
<end></end>
</period>
</temporal>
</extent>
</resourceMetadata>
<provider>wms</provider>
<noData>
<noDataList bandNo="1" useSrcNoData="0"/>
</noData>
<map-layer-style-manager current="default">
<map-layer-style name="default"/>
</map-layer-style-manager>
<flags>
<Identifiable>1</Identifiable>
<Removable>1</Removable>
<Searchable>1</Searchable>
</flags>
<customproperties>
<property key="WMSBackgroundLayer" value="false"/>
<property key="WMSPublishDataSourceUrl" value="false"/>
<property key="embeddedWidgets/count" value="0"/>
<property key="identify/format" value="Html"/>
</customproperties>
<pipe>
<rasterrenderer alphaBand="-1" type="singlebandcolordata" opacity="1" band="1">
<rasterTransparency/>
<minMaxOrigin>
<limits>None</limits>
<extent>WholeRaster</extent>
<statAccuracy>Estimated</statAccuracy>
<cumulativeCutLower>0.02</cumulativeCutLower>
<cumulativeCutUpper>0.98</cumulativeCutUpper>
<stdDevFactor>2</stdDevFactor>
</minMaxOrigin>
</rasterrenderer>
<brightnesscontrast brightness="0" contrast="0"/>
<huesaturation colorizeStrength="100" grayscaleMode="0" colorizeGreen="128" colorizeBlue="128" colorizeOn="0" saturation="0" colorizeRed="255"/>
<rasterresampler maxOversampling="2"/>
</pipe>
<blendMode>0</blendMode>
</maplayer>
</projectlayers>
<layerorder>
<layer id="OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416"/>
<layer id="h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b"/>
</layerorder>
<properties>
<PositionPrecision>
<Automatic type="bool">true</Automatic>
<DecimalPlaces type="int">2</DecimalPlaces>
</PositionPrecision>
<Paths>
<Absolute type="bool">false</Absolute>
</Paths>
<Measure>
<Ellipsoid type="QString">WGS84</Ellipsoid>
</Measure>
<Gui>
<SelectionColorGreenPart type="int">255</SelectionColorGreenPart>
<CanvasColorRedPart type="int">255</CanvasColorRedPart>
<CanvasColorBluePart type="int">255</CanvasColorBluePart>
<SelectionColorBluePart type="int">0</SelectionColorBluePart>
<CanvasColorGreenPart type="int">255</CanvasColorGreenPart>
<SelectionColorRedPart type="int">255</SelectionColorRedPart>
<SelectionColorAlphaPart type="int">255</SelectionColorAlphaPart>
</Gui>
<Legend>
<filterByMap type="bool">false</filterByMap>
</Legend>
<PAL>
<DrawOutlineLabels type="bool">true</DrawOutlineLabels>
<DrawRectOnly type="bool">false</DrawRectOnly>
<TextFormat type="int">0</TextFormat>
<CandidatesPolygon type="int">30</CandidatesPolygon>
<CandidatesPoint type="int">16</CandidatesPoint>
<CandidatesLine type="int">50</CandidatesLine>
<SearchMethod type="int">0</SearchMethod>
<ShowingAllLabels type="bool">false</ShowingAllLabels>
<ShowingPartialsLabels type="bool">true</ShowingPartialsLabels>
<ShowingCandidates type="bool">false</ShowingCandidates>
</PAL>
<SpatialRefSys>
<ProjectionsEnabled type="int">1</ProjectionsEnabled>
</SpatialRefSys>
<Measurement>
<AreaUnits type="QString">m2</AreaUnits>
<DistanceUnits type="QString">meters</DistanceUnits>
</Measurement>
</properties>
<visibility-presets/>
<transformContext/>
<projectMetadata>
<identifier></identifier>
<parentidentifier></parentidentifier>
<language></language>
<type></type>
<title></title>
<abstract></abstract>
<links/>
<author><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>.</author>
<creation>2019-06-10T14:55:55</creation>
</projectMetadata>
<Annotations/>
<Layouts/>
</qgis>

View File

@ -0,0 +1,354 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis projectname="" saveUser="ivanov.i" version="3.12.3-București" saveUserFull="Иванов И.">
<homePath path=""/>
<title></title>
<autotransaction active="0"/>
<evaluateDefaultValues active="0"/>
<trust active="0"/>
<projectCrs>
<spatialrefsys>
<wkt>PROJCRS["WGS 84 / Pseudo-Mercator",BASEGEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["Popular Visualisation Pseudo-Mercator",METHOD["Popular Visualisation Pseudo Mercator",ID["EPSG",1024]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["unknown"],AREA["World - 85°S to 85°N"],BBOX[-85.06,-180,85.06,180]],ID["EPSG",3857]]</wkt>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</projectCrs>
<layer-tree-group>
<customproperties/>
<layer-tree-layer checked="Qt::Checked" providerKey="wms" expanded="1" source="contextualWMSLegend=0&amp;crs=EPSG:3857&amp;dpiMode=7&amp;featureCount=10&amp;format=image/png&amp;layers=NDSI:${day}NDSI_h20v03&amp;layers=NDSI:${day}NDSI_h20v04&amp;layers=NDSI:${day}NDSI_h21v03&amp;layers=NDSI:${day}NDSI_h21v04&amp;layers=NDSI:${day}NDSI_h21v05&amp;layers=NDSI:${day}NDSI_h22v03&amp;layers=NDSI:${day}NDSI_h22v04&amp;layers=NDSI:${day}NDSI_h22v05&amp;layers=NDSI:${day}NDSI_h23v03&amp;layers=NDSI:${day}NDSI_h23v04&amp;layers=NDSI:${day}NDSI_h23v05&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;url=http://geoserver2.ccalm.org/wms" legend_exp="" id="h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b" name="NDSI">
<customproperties/>
</layer-tree-layer>
<layer-tree-layer checked="Qt::Checked" providerKey="wms" expanded="1" source="crs=EPSG:3857&amp;format&amp;type=xyz&amp;url=http://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png" legend_exp="" id="OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416" name="OpenStreetMap">
<customproperties/>
</layer-tree-layer>
<custom-order enabled="0">
<item>OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416</item>
<item>h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b</item>
</custom-order>
</layer-tree-group>
<snapping-settings intersection-snapping="0" enabled="0" type="1" mode="2" tolerance="12" unit="1">
<individual-layer-settings/>
</snapping-settings>
<relations/>
<mapcanvas annotationsVisible="1" name="theMapCanvas">
<units>meters</units>
<extent>
<xmin>3863030.08689398271963</xmin>
<ymin>3270963.49336460698395967</ymin>
<xmax>9122876.02687616087496281</xmax>
<ymax>8530809.43334678560495377</ymax>
</extent>
<rotation>0</rotation>
<destinationsrs>
<spatialrefsys>
<wkt>PROJCRS["WGS 84 / Pseudo-Mercator",BASEGEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["Popular Visualisation Pseudo-Mercator",METHOD["Popular Visualisation Pseudo Mercator",ID["EPSG",1024]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["unknown"],AREA["World - 85°S to 85°N"],BBOX[-85.06,-180,85.06,180]],ID["EPSG",3857]]</wkt>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</destinationsrs>
<rendermaptile>0</rendermaptile>
<expressionContextScope/>
</mapcanvas>
<projectModels/>
<legend updateDrawingOrder="true">
<legendlayer checked="Qt::Checked" showFeatureCount="0" drawingOrder="-1" open="true" name="NDSI">
<filegroup open="true" hidden="false">
<legendlayerfile isInOverview="0" visible="1" layerid="h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b"/>
</filegroup>
</legendlayer>
<legendlayer checked="Qt::Checked" showFeatureCount="0" drawingOrder="-1" open="true" name="OpenStreetMap">
<filegroup open="true" hidden="false">
<legendlayerfile isInOverview="0" visible="1" layerid="OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416"/>
</filegroup>
</legendlayer>
</legend>
<mapViewDocks/>
<mapViewDocks3D/>
<projectlayers>
<maplayer styleCategories="AllStyleCategories" type="raster" refreshOnNotifyMessage="" refreshOnNotifyEnabled="0" minScale="1e+08" autoRefreshEnabled="0" maxScale="0" hasScaleBasedVisibilityFlag="0" autoRefreshTime="0">
<extent>
<xmin>-20037508.34278924390673637</xmin>
<ymin>-20037508.34278925508260727</ymin>
<xmax>20037508.34278924390673637</xmax>
<ymax>20037508.34278924390673637</ymax>
</extent>
<id>OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416</id>
<datasource>crs=EPSG:3857&amp;format&amp;type=xyz&amp;url=http://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png</datasource>
<keywordList>
<value></value>
</keywordList>
<layername>OpenStreetMap</layername>
<srs>
<spatialrefsys>
<wkt>PROJCRS["WGS 84 / Pseudo-Mercator",BASEGEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["Popular Visualisation Pseudo-Mercator",METHOD["Popular Visualisation Pseudo Mercator",ID["EPSG",1024]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["unknown"],AREA["World - 85°S to 85°N"],BBOX[-85.06,-180,85.06,180]],ID["EPSG",3857]]</wkt>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</srs>
<resourceMetadata>
<identifier></identifier>
<parentidentifier></parentidentifier>
<language></language>
<type></type>
<title></title>
<abstract></abstract>
<links/>
<fees></fees>
<encoding></encoding>
<crs>
<spatialrefsys>
<wkt></wkt>
<proj4></proj4>
<srsid>0</srsid>
<srid>0</srid>
<authid></authid>
<description></description>
<projectionacronym></projectionacronym>
<ellipsoidacronym></ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</crs>
<extent/>
</resourceMetadata>
<provider>wms</provider>
<noData>
<noDataList bandNo="1" useSrcNoData="0"/>
</noData>
<map-layer-style-manager current="default">
<map-layer-style name="default"/>
</map-layer-style-manager>
<flags>
<Identifiable>1</Identifiable>
<Removable>1</Removable>
<Searchable>1</Searchable>
</flags>
<customproperties>
<property key="identify/format" value="Undefined"/>
<property key="ol_layer_type" value="OpenStreetMap"/>
</customproperties>
<pipe>
<rasterrenderer alphaBand="-1" type="singlebandcolordata" nodataColor="" opacity="1" band="1">
<rasterTransparency/>
<minMaxOrigin>
<limits>None</limits>
<extent>WholeRaster</extent>
<statAccuracy>Estimated</statAccuracy>
<cumulativeCutLower>0.02</cumulativeCutLower>
<cumulativeCutUpper>0.98</cumulativeCutUpper>
<stdDevFactor>2</stdDevFactor>
</minMaxOrigin>
</rasterrenderer>
<brightnesscontrast contrast="0" brightness="0"/>
<huesaturation colorizeRed="255" colorizeStrength="100" grayscaleMode="0" colorizeOn="0" colorizeBlue="128" colorizeGreen="128" saturation="0"/>
<rasterresampler maxOversampling="2"/>
</pipe>
<blendMode>0</blendMode>
</maplayer>
<maplayer styleCategories="AllStyleCategories" type="raster" refreshOnNotifyMessage="" refreshOnNotifyEnabled="0" minScale="1e+08" autoRefreshEnabled="0" maxScale="0" hasScaleBasedVisibilityFlag="0" autoRefreshTime="0">
<extent>
<xmin>2906345.49411173490807414</xmin>
<ymin>3503584.68813749961555004</ymin>
<xmax>13358323.19605071656405926</xmax>
<ymax>8399737.88861873932182789</ymax>
</extent>
<id>h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b</id>
<datasource>contextualWMSLegend=0&amp;crs=EPSG:3857&amp;dpiMode=7&amp;featureCount=10&amp;format=image/png&amp;layers=NDSI:${day}NDSI_h20v03&amp;layers=NDSI:${day}NDSI_h20v04&amp;layers=NDSI:${day}NDSI_h21v03&amp;layers=NDSI:${day}NDSI_h21v04&amp;layers=NDSI:${day}NDSI_h21v05&amp;layers=NDSI:${day}NDSI_h22v03&amp;layers=NDSI:${day}NDSI_h22v04&amp;layers=NDSI:${day}NDSI_h22v05&amp;layers=NDSI:${day}NDSI_h23v03&amp;layers=NDSI:${day}NDSI_h23v04&amp;layers=NDSI:${day}NDSI_h23v05&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;url=http://geoserver2.ccalm.org/wms</datasource>
<keywordList>
<value></value>
</keywordList>
<layername>${day}NDSI</layername>
<srs>
<spatialrefsys>
<wkt>PROJCRS["WGS 84 / Pseudo-Mercator",BASEGEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["Popular Visualisation Pseudo-Mercator",METHOD["Popular Visualisation Pseudo Mercator",ID["EPSG",1024]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["unknown"],AREA["World - 85°S to 85°N"],BBOX[-85.06,-180,85.06,180]],ID["EPSG",3857]]</wkt>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</srs>
<resourceMetadata>
<identifier></identifier>
<parentidentifier></parentidentifier>
<language></language>
<type></type>
<title></title>
<abstract></abstract>
<contact>
<name></name>
<organization></organization>
<position></position>
<voice></voice>
<fax></fax>
<email></email>
<role></role>
</contact>
<links/>
<fees></fees>
<encoding></encoding>
<crs>
<spatialrefsys>
<wkt></wkt>
<proj4></proj4>
<srsid>0</srsid>
<srid>0</srid>
<authid></authid>
<description></description>
<projectionacronym></projectionacronym>
<ellipsoidacronym></ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</crs>
<extent>
<spatial minz="0" minx="0" miny="0" crs="" maxz="0" dimensions="2" maxy="0" maxx="0"/>
<temporal>
<period>
<start></start>
<end></end>
</period>
</temporal>
</extent>
</resourceMetadata>
<provider>wms</provider>
<noData>
<noDataList bandNo="1" useSrcNoData="0"/>
</noData>
<map-layer-style-manager current="default">
<map-layer-style name="default"/>
</map-layer-style-manager>
<flags>
<Identifiable>1</Identifiable>
<Removable>1</Removable>
<Searchable>1</Searchable>
</flags>
<customproperties>
<property key="WMSBackgroundLayer" value="false"/>
<property key="WMSPublishDataSourceUrl" value="false"/>
<property key="embeddedWidgets/count" value="0"/>
<property key="identify/format" value="Html"/>
</customproperties>
<pipe>
<rasterrenderer alphaBand="-1" type="singlebandcolordata" nodataColor="" opacity="1" band="1">
<rasterTransparency/>
<minMaxOrigin>
<limits>None</limits>
<extent>WholeRaster</extent>
<statAccuracy>Estimated</statAccuracy>
<cumulativeCutLower>0.02</cumulativeCutLower>
<cumulativeCutUpper>0.98</cumulativeCutUpper>
<stdDevFactor>2</stdDevFactor>
</minMaxOrigin>
</rasterrenderer>
<brightnesscontrast contrast="0" brightness="0"/>
<huesaturation colorizeRed="255" colorizeStrength="100" grayscaleMode="0" colorizeOn="0" colorizeBlue="128" colorizeGreen="128" saturation="0"/>
<rasterresampler maxOversampling="2"/>
</pipe>
<blendMode>0</blendMode>
</maplayer>
</projectlayers>
<layerorder>
<layer id="OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416"/>
<layer id="h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b"/>
</layerorder>
<properties>
<Gui>
<CanvasColorBluePart type="int">255</CanvasColorBluePart>
<CanvasColorGreenPart type="int">255</CanvasColorGreenPart>
<CanvasColorRedPart type="int">255</CanvasColorRedPart>
<SelectionColorAlphaPart type="int">255</SelectionColorAlphaPart>
<SelectionColorBluePart type="int">0</SelectionColorBluePart>
<SelectionColorGreenPart type="int">255</SelectionColorGreenPart>
<SelectionColorRedPart type="int">255</SelectionColorRedPart>
</Gui>
<Legend>
<filterByMap type="bool">false</filterByMap>
</Legend>
<Measure>
<Ellipsoid type="QString">WGS84</Ellipsoid>
</Measure>
<Measurement>
<AreaUnits type="QString">m2</AreaUnits>
<DistanceUnits type="QString">meters</DistanceUnits>
</Measurement>
<PAL>
<CandidatesLine type="int">50</CandidatesLine>
<CandidatesLinePerCM type="double">5</CandidatesLinePerCM>
<CandidatesPoint type="int">16</CandidatesPoint>
<CandidatesPolygon type="int">30</CandidatesPolygon>
<CandidatesPolygonPerCM type="double">2.5</CandidatesPolygonPerCM>
<DrawOutlineLabels type="bool">true</DrawOutlineLabels>
<DrawRectOnly type="bool">false</DrawRectOnly>
<DrawUnplaced type="bool">false</DrawUnplaced>
<PlacementEngineVersion type="int">0</PlacementEngineVersion>
<SearchMethod type="int">0</SearchMethod>
<ShowingAllLabels type="bool">false</ShowingAllLabels>
<ShowingCandidates type="bool">false</ShowingCandidates>
<ShowingPartialsLabels type="bool">true</ShowingPartialsLabels>
<TextFormat type="int">0</TextFormat>
<UnplacedColor type="QString">255,0,0,255</UnplacedColor>
</PAL>
<Paths>
<Absolute type="bool">false</Absolute>
</Paths>
<PositionPrecision>
<Automatic type="bool">true</Automatic>
<DecimalPlaces type="int">2</DecimalPlaces>
</PositionPrecision>
<SpatialRefSys>
<ProjectionsEnabled type="int">1</ProjectionsEnabled>
</SpatialRefSys>
</properties>
<visibility-presets/>
<transformContext/>
<projectMetadata>
<identifier></identifier>
<parentidentifier></parentidentifier>
<language></language>
<type></type>
<title></title>
<abstract></abstract>
<links/>
<author><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>.</author>
<creation>2019-06-10T14:55:55</creation>
</projectMetadata>
<Annotations/>
<Layouts/>
<Bookmarks/>
<ProjectViewSettings UseProjectScales="0">
<Scales/>
</ProjectViewSettings>
<ProjectDisplaySettings>
<BearingFormat id="bearing">
<Option type="Map">
<Option type="QChar" value="" name="decimal_separator"/>
<Option type="int" value="6" name="decimals"/>
<Option type="int" value="0" name="direction_format"/>
<Option type="int" value="0" name="rounding_type"/>
<Option type="bool" value="false" name="show_plus"/>
<Option type="bool" value="true" name="show_thousand_separator"/>
<Option type="bool" value="false" name="show_trailing_zeros"/>
<Option type="QChar" value="" name="thousand_separator"/>
</Option>
</BearingFormat>
</ProjectDisplaySettings>
</qgis>

View File

@ -0,0 +1,326 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis version="3.6.0-Noosa" projectname="">
<homePath path=""/>
<title></title>
<autotransaction active="0"/>
<evaluateDefaultValues active="0"/>
<trust active="0"/>
<projectCrs>
<spatialrefsys>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</projectCrs>
<layer-tree-group>
<customproperties/>
<layer-tree-layer name="NDVI" id="h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b" source="contextualWMSLegend=0&amp;crs=EPSG:3857&amp;dpiMode=7&amp;featureCount=10&amp;format=image/png&amp;layers=NDVI:${day}NDVI_h20v03&amp;layers=NDVI:${day}NDVI_h20v04&amp;layers=NDVI:${day}NDVI_h21v03&amp;layers=NDVI:${day}NDVI_h21v04&amp;layers=NDVI:${day}NDVI_h21v05&amp;layers=NDVI:${day}NDVI_h22v03&amp;layers=NDVI:${day}NDVI_h22v04&amp;layers=NDVI:${day}NDVI_h22v05&amp;layers=NDVI:${day}NDVI_h23v03&amp;layers=NDVI:${day}NDVI_h23v04&amp;layers=NDVI:${day}NDVI_h23v05&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;url=http://geoserver2.ccalm.org/wms" expanded="0" checked="Qt::Checked" providerKey="wms">
<customproperties/>
</layer-tree-layer>
<layer-tree-layer name="OpenStreetMap" id="OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416" source="crs=EPSG:3857&amp;format&amp;type=xyz&amp;url=http://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png" expanded="1" checked="Qt::Checked" providerKey="wms">
<customproperties/>
</layer-tree-layer>
<custom-order enabled="0">
<item>OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416</item>
<item>h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b</item>
</custom-order>
</layer-tree-group>
<snapping-settings mode="2" unit="1" type="1" enabled="0" intersection-snapping="0" tolerance="12">
<individual-layer-settings/>
</snapping-settings>
<relations/>
<mapcanvas name="theMapCanvas" annotationsVisible="1">
<units>meters</units>
<extent>
<xmin>2465883.50908621679991484</xmin>
<ymin>264579.77565301861613989</ymin>
<xmax>12985575.38905057311058044</xmax>
<ymax>10784271.65561737865209579</ymax>
</extent>
<rotation>0</rotation>
<destinationsrs>
<spatialrefsys>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</destinationsrs>
<rendermaptile>0</rendermaptile>
<expressionContextScope/>
</mapcanvas>
<projectModels/>
<legend updateDrawingOrder="true">
<legendlayer name="NDVI" drawingOrder="-1" checked="Qt::Checked" showFeatureCount="0" open="false">
<filegroup open="false" hidden="false">
<legendlayerfile layerid="h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b" visible="1" isInOverview="0"/>
</filegroup>
</legendlayer>
<legendlayer name="OpenStreetMap" drawingOrder="-1" checked="Qt::Checked" showFeatureCount="0" open="true">
<filegroup open="true" hidden="false">
<legendlayerfile layerid="OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416" visible="1" isInOverview="0"/>
</filegroup>
</legendlayer>
</legend>
<mapViewDocks/>
<mapViewDocks3D/>
<projectlayers>
<maplayer type="raster" refreshOnNotifyEnabled="0" autoRefreshEnabled="0" hasScaleBasedVisibilityFlag="0" refreshOnNotifyMessage="" autoRefreshTime="0" minScale="1e+08" maxScale="0" styleCategories="AllStyleCategories">
<extent>
<xmin>-20037508.34278924390673637</xmin>
<ymin>-20037508.34278925508260727</ymin>
<xmax>20037508.34278924390673637</xmax>
<ymax>20037508.34278924390673637</ymax>
</extent>
<id>OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416</id>
<datasource>crs=EPSG:3857&amp;format&amp;type=xyz&amp;url=http://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png</datasource>
<keywordList>
<value></value>
</keywordList>
<layername>OpenStreetMap</layername>
<srs>
<spatialrefsys>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</srs>
<resourceMetadata>
<identifier></identifier>
<parentidentifier></parentidentifier>
<language></language>
<type></type>
<title></title>
<abstract></abstract>
<links/>
<fees></fees>
<encoding></encoding>
<crs>
<spatialrefsys>
<proj4></proj4>
<srsid>0</srsid>
<srid>0</srid>
<authid></authid>
<description></description>
<projectionacronym></projectionacronym>
<ellipsoidacronym></ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</crs>
<extent/>
</resourceMetadata>
<provider>wms</provider>
<noData>
<noDataList bandNo="1" useSrcNoData="0"/>
</noData>
<map-layer-style-manager current="default">
<map-layer-style name="default"/>
</map-layer-style-manager>
<flags>
<Identifiable>1</Identifiable>
<Removable>1</Removable>
<Searchable>1</Searchable>
</flags>
<customproperties>
<property key="identify/format" value="Undefined"/>
<property key="ol_layer_type" value="OpenStreetMap"/>
</customproperties>
<pipe>
<rasterrenderer alphaBand="-1" type="singlebandcolordata" opacity="1" band="1">
<rasterTransparency/>
<minMaxOrigin>
<limits>None</limits>
<extent>WholeRaster</extent>
<statAccuracy>Estimated</statAccuracy>
<cumulativeCutLower>0.02</cumulativeCutLower>
<cumulativeCutUpper>0.98</cumulativeCutUpper>
<stdDevFactor>2</stdDevFactor>
</minMaxOrigin>
</rasterrenderer>
<brightnesscontrast brightness="0" contrast="0"/>
<huesaturation colorizeStrength="100" grayscaleMode="0" colorizeGreen="128" colorizeBlue="128" colorizeOn="0" saturation="0" colorizeRed="255"/>
<rasterresampler maxOversampling="2"/>
</pipe>
<blendMode>0</blendMode>
</maplayer>
<maplayer type="raster" refreshOnNotifyEnabled="0" autoRefreshEnabled="0" hasScaleBasedVisibilityFlag="0" refreshOnNotifyMessage="" autoRefreshTime="0" minScale="1e+08" maxScale="0" styleCategories="AllStyleCategories">
<extent>
<xmin>2906345.494111736305058</xmin>
<ymin>3503584.68813749961555004</ymin>
<xmax>13358323.19605071656405926</xmax>
<ymax>8399737.88861873932182789</ymax>
</extent>
<id>h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b</id>
<datasource>contextualWMSLegend=0&amp;crs=EPSG:3857&amp;dpiMode=7&amp;featureCount=10&amp;format=image/png&amp;layers=NDVI:${day}NDVI_h20v03&amp;layers=NDVI:${day}NDVI_h20v04&amp;layers=NDVI:${day}NDVI_h21v03&amp;layers=NDVI:${day}NDVI_h21v04&amp;layers=NDVI:${day}NDVI_h21v05&amp;layers=NDVI:${day}NDVI_h22v03&amp;layers=NDVI:${day}NDVI_h22v04&amp;layers=NDVI:${day}NDVI_h22v05&amp;layers=NDVI:${day}NDVI_h23v03&amp;layers=NDVI:${day}NDVI_h23v04&amp;layers=NDVI:${day}NDVI_h23v05&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;url=http://geoserver2.ccalm.org/wms</datasource>
<keywordList>
<value></value>
</keywordList>
<layername>${day}NDVI</layername>
<srs>
<spatialrefsys>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</srs>
<resourceMetadata>
<identifier></identifier>
<parentidentifier></parentidentifier>
<language></language>
<type></type>
<title></title>
<abstract></abstract>
<contact>
<name></name>
<organization></organization>
<position></position>
<voice></voice>
<fax></fax>
<email></email>
<role></role>
</contact>
<links/>
<fees></fees>
<encoding></encoding>
<crs>
<spatialrefsys>
<proj4></proj4>
<srsid>0</srsid>
<srid>0</srid>
<authid></authid>
<description></description>
<projectionacronym></projectionacronym>
<ellipsoidacronym></ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</crs>
<extent>
<spatial minx="0" dimensions="2" minz="0" maxz="0" maxy="0" crs="" miny="0" maxx="0"/>
<temporal>
<period>
<start></start>
<end></end>
</period>
</temporal>
</extent>
</resourceMetadata>
<provider>wms</provider>
<noData>
<noDataList bandNo="1" useSrcNoData="0"/>
</noData>
<map-layer-style-manager current="default">
<map-layer-style name="default"/>
</map-layer-style-manager>
<flags>
<Identifiable>1</Identifiable>
<Removable>1</Removable>
<Searchable>1</Searchable>
</flags>
<customproperties>
<property key="WMSBackgroundLayer" value="false"/>
<property key="WMSPublishDataSourceUrl" value="false"/>
<property key="embeddedWidgets/count" value="0"/>
<property key="identify/format" value="Html"/>
</customproperties>
<pipe>
<rasterrenderer alphaBand="-1" type="singlebandcolordata" opacity="1" band="1">
<rasterTransparency/>
<minMaxOrigin>
<limits>None</limits>
<extent>WholeRaster</extent>
<statAccuracy>Estimated</statAccuracy>
<cumulativeCutLower>0.02</cumulativeCutLower>
<cumulativeCutUpper>0.98</cumulativeCutUpper>
<stdDevFactor>2</stdDevFactor>
</minMaxOrigin>
</rasterrenderer>
<brightnesscontrast brightness="0" contrast="0"/>
<huesaturation colorizeStrength="100" grayscaleMode="0" colorizeGreen="128" colorizeBlue="128" colorizeOn="0" saturation="0" colorizeRed="255"/>
<rasterresampler maxOversampling="2"/>
</pipe>
<blendMode>0</blendMode>
</maplayer>
</projectlayers>
<layerorder>
<layer id="OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416"/>
<layer id="h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b"/>
</layerorder>
<properties>
<PositionPrecision>
<Automatic type="bool">true</Automatic>
<DecimalPlaces type="int">2</DecimalPlaces>
</PositionPrecision>
<Paths>
<Absolute type="bool">false</Absolute>
</Paths>
<Measure>
<Ellipsoid type="QString">WGS84</Ellipsoid>
</Measure>
<Gui>
<SelectionColorGreenPart type="int">255</SelectionColorGreenPart>
<CanvasColorRedPart type="int">255</CanvasColorRedPart>
<CanvasColorBluePart type="int">255</CanvasColorBluePart>
<SelectionColorBluePart type="int">0</SelectionColorBluePart>
<CanvasColorGreenPart type="int">255</CanvasColorGreenPart>
<SelectionColorRedPart type="int">255</SelectionColorRedPart>
<SelectionColorAlphaPart type="int">255</SelectionColorAlphaPart>
</Gui>
<Legend>
<filterByMap type="bool">false</filterByMap>
</Legend>
<PAL>
<DrawOutlineLabels type="bool">true</DrawOutlineLabels>
<DrawRectOnly type="bool">false</DrawRectOnly>
<TextFormat type="int">0</TextFormat>
<CandidatesPolygon type="int">30</CandidatesPolygon>
<CandidatesPoint type="int">16</CandidatesPoint>
<CandidatesLine type="int">50</CandidatesLine>
<SearchMethod type="int">0</SearchMethod>
<ShowingAllLabels type="bool">false</ShowingAllLabels>
<ShowingPartialsLabels type="bool">true</ShowingPartialsLabels>
<ShowingCandidates type="bool">false</ShowingCandidates>
</PAL>
<SpatialRefSys>
<ProjectionsEnabled type="int">1</ProjectionsEnabled>
</SpatialRefSys>
<Measurement>
<AreaUnits type="QString">m2</AreaUnits>
<DistanceUnits type="QString">meters</DistanceUnits>
</Measurement>
</properties>
<visibility-presets/>
<transformContext/>
<projectMetadata>
<identifier></identifier>
<parentidentifier></parentidentifier>
<language></language>
<type></type>
<title></title>
<abstract></abstract>
<links/>
<author><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>.</author>
<creation>2019-06-10T14:55:55</creation>
</projectMetadata>
<Annotations/>
<Layouts/>
</qgis>

View File

@ -0,0 +1,354 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis projectname="" saveUser="ivanov.i" version="3.12.3-București" saveUserFull="Иванов И.">
<homePath path=""/>
<title></title>
<autotransaction active="0"/>
<evaluateDefaultValues active="0"/>
<trust active="0"/>
<projectCrs>
<spatialrefsys>
<wkt>PROJCRS["WGS 84 / Pseudo-Mercator",BASEGEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["Popular Visualisation Pseudo-Mercator",METHOD["Popular Visualisation Pseudo Mercator",ID["EPSG",1024]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["unknown"],AREA["World - 85°S to 85°N"],BBOX[-85.06,-180,85.06,180]],ID["EPSG",3857]]</wkt>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</projectCrs>
<layer-tree-group>
<customproperties/>
<layer-tree-layer checked="Qt::Checked" providerKey="wms" expanded="1" source="contextualWMSLegend=0&amp;crs=EPSG:3857&amp;dpiMode=7&amp;featureCount=10&amp;format=image/png&amp;layers=NDWI:${day}NDWI_h20v03&amp;layers=NDWI:${day}NDWI_h20v04&amp;layers=NDWI:${day}NDWI_h21v03&amp;layers=NDWI:${day}NDWI_h21v04&amp;layers=NDWI:${day}NDWI_h21v05&amp;layers=NDWI:${day}NDWI_h22v03&amp;layers=NDWI:${day}NDWI_h22v04&amp;layers=NDWI:${day}NDWI_h22v05&amp;layers=NDWI:${day}NDWI_h23v03&amp;layers=NDWI:${day}NDWI_h23v04&amp;layers=NDWI:${day}NDWI_h23v05&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;url=http://geoserver2.ccalm.org/wms" legend_exp="" id="h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b" name="NDWI">
<customproperties/>
</layer-tree-layer>
<layer-tree-layer checked="Qt::Checked" providerKey="wms" expanded="1" source="crs=EPSG:3857&amp;format&amp;type=xyz&amp;url=http://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png" legend_exp="" id="OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416" name="OpenStreetMap">
<customproperties/>
</layer-tree-layer>
<custom-order enabled="0">
<item>OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416</item>
<item>h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b</item>
</custom-order>
</layer-tree-group>
<snapping-settings intersection-snapping="0" enabled="0" type="1" mode="2" tolerance="12" unit="1">
<individual-layer-settings/>
</snapping-settings>
<relations/>
<mapcanvas annotationsVisible="1" name="theMapCanvas">
<units>meters</units>
<extent>
<xmin>3863030.08689398271963</xmin>
<ymin>3270963.49336460698395967</ymin>
<xmax>9122876.02687616087496281</xmax>
<ymax>8530809.43334678560495377</ymax>
</extent>
<rotation>0</rotation>
<destinationsrs>
<spatialrefsys>
<wkt>PROJCRS["WGS 84 / Pseudo-Mercator",BASEGEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["Popular Visualisation Pseudo-Mercator",METHOD["Popular Visualisation Pseudo Mercator",ID["EPSG",1024]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["unknown"],AREA["World - 85°S to 85°N"],BBOX[-85.06,-180,85.06,180]],ID["EPSG",3857]]</wkt>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</destinationsrs>
<rendermaptile>0</rendermaptile>
<expressionContextScope/>
</mapcanvas>
<projectModels/>
<legend updateDrawingOrder="true">
<legendlayer checked="Qt::Checked" showFeatureCount="0" drawingOrder="-1" open="true" name="NDWI">
<filegroup open="true" hidden="false">
<legendlayerfile isInOverview="0" visible="1" layerid="h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b"/>
</filegroup>
</legendlayer>
<legendlayer checked="Qt::Checked" showFeatureCount="0" drawingOrder="-1" open="true" name="OpenStreetMap">
<filegroup open="true" hidden="false">
<legendlayerfile isInOverview="0" visible="1" layerid="OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416"/>
</filegroup>
</legendlayer>
</legend>
<mapViewDocks/>
<mapViewDocks3D/>
<projectlayers>
<maplayer styleCategories="AllStyleCategories" type="raster" refreshOnNotifyMessage="" refreshOnNotifyEnabled="0" minScale="1e+08" autoRefreshEnabled="0" maxScale="0" hasScaleBasedVisibilityFlag="0" autoRefreshTime="0">
<extent>
<xmin>-20037508.34278924390673637</xmin>
<ymin>-20037508.34278925508260727</ymin>
<xmax>20037508.34278924390673637</xmax>
<ymax>20037508.34278924390673637</ymax>
</extent>
<id>OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416</id>
<datasource>crs=EPSG:3857&amp;format&amp;type=xyz&amp;url=http://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png</datasource>
<keywordList>
<value></value>
</keywordList>
<layername>OpenStreetMap</layername>
<srs>
<spatialrefsys>
<wkt>PROJCRS["WGS 84 / Pseudo-Mercator",BASEGEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["Popular Visualisation Pseudo-Mercator",METHOD["Popular Visualisation Pseudo Mercator",ID["EPSG",1024]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["unknown"],AREA["World - 85°S to 85°N"],BBOX[-85.06,-180,85.06,180]],ID["EPSG",3857]]</wkt>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</srs>
<resourceMetadata>
<identifier></identifier>
<parentidentifier></parentidentifier>
<language></language>
<type></type>
<title></title>
<abstract></abstract>
<links/>
<fees></fees>
<encoding></encoding>
<crs>
<spatialrefsys>
<wkt></wkt>
<proj4></proj4>
<srsid>0</srsid>
<srid>0</srid>
<authid></authid>
<description></description>
<projectionacronym></projectionacronym>
<ellipsoidacronym></ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</crs>
<extent/>
</resourceMetadata>
<provider>wms</provider>
<noData>
<noDataList bandNo="1" useSrcNoData="0"/>
</noData>
<map-layer-style-manager current="default">
<map-layer-style name="default"/>
</map-layer-style-manager>
<flags>
<Identifiable>1</Identifiable>
<Removable>1</Removable>
<Searchable>1</Searchable>
</flags>
<customproperties>
<property key="identify/format" value="Undefined"/>
<property key="ol_layer_type" value="OpenStreetMap"/>
</customproperties>
<pipe>
<rasterrenderer alphaBand="-1" type="singlebandcolordata" nodataColor="" opacity="1" band="1">
<rasterTransparency/>
<minMaxOrigin>
<limits>None</limits>
<extent>WholeRaster</extent>
<statAccuracy>Estimated</statAccuracy>
<cumulativeCutLower>0.02</cumulativeCutLower>
<cumulativeCutUpper>0.98</cumulativeCutUpper>
<stdDevFactor>2</stdDevFactor>
</minMaxOrigin>
</rasterrenderer>
<brightnesscontrast contrast="0" brightness="0"/>
<huesaturation colorizeRed="255" colorizeStrength="100" grayscaleMode="0" colorizeOn="0" colorizeBlue="128" colorizeGreen="128" saturation="0"/>
<rasterresampler maxOversampling="2"/>
</pipe>
<blendMode>0</blendMode>
</maplayer>
<maplayer styleCategories="AllStyleCategories" type="raster" refreshOnNotifyMessage="" refreshOnNotifyEnabled="0" minScale="1e+08" autoRefreshEnabled="0" maxScale="0" hasScaleBasedVisibilityFlag="0" autoRefreshTime="0">
<extent>
<xmin>2906345.49411173490807414</xmin>
<ymin>3503584.68813749961555004</ymin>
<xmax>13358323.19605071656405926</xmax>
<ymax>8399737.88861873932182789</ymax>
</extent>
<id>h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b</id>
<datasource>contextualWMSLegend=0&amp;crs=EPSG:3857&amp;dpiMode=7&amp;featureCount=10&amp;format=image/png&amp;layers=NDWI:${day}NDWI_h20v03&amp;layers=NDWI:${day}NDWI_h20v04&amp;layers=NDWI:${day}NDWI_h21v03&amp;layers=NDWI:${day}NDWI_h21v04&amp;layers=NDWI:${day}NDWI_h21v05&amp;layers=NDWI:${day}NDWI_h22v03&amp;layers=NDWI:${day}NDWI_h22v04&amp;layers=NDWI:${day}NDWI_h22v05&amp;layers=NDWI:${day}NDWI_h23v03&amp;layers=NDWI:${day}NDWI_h23v04&amp;layers=NDWI:${day}NDWI_h23v05&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;url=http://geoserver2.ccalm.org/wms</datasource>
<keywordList>
<value></value>
</keywordList>
<layername>${day}NDWI</layername>
<srs>
<spatialrefsys>
<wkt>PROJCRS["WGS 84 / Pseudo-Mercator",BASEGEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["Popular Visualisation Pseudo-Mercator",METHOD["Popular Visualisation Pseudo Mercator",ID["EPSG",1024]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["unknown"],AREA["World - 85°S to 85°N"],BBOX[-85.06,-180,85.06,180]],ID["EPSG",3857]]</wkt>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</srs>
<resourceMetadata>
<identifier></identifier>
<parentidentifier></parentidentifier>
<language></language>
<type></type>
<title></title>
<abstract></abstract>
<contact>
<name></name>
<organization></organization>
<position></position>
<voice></voice>
<fax></fax>
<email></email>
<role></role>
</contact>
<links/>
<fees></fees>
<encoding></encoding>
<crs>
<spatialrefsys>
<wkt></wkt>
<proj4></proj4>
<srsid>0</srsid>
<srid>0</srid>
<authid></authid>
<description></description>
<projectionacronym></projectionacronym>
<ellipsoidacronym></ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</crs>
<extent>
<spatial minz="0" minx="0" miny="0" crs="" maxz="0" dimensions="2" maxy="0" maxx="0"/>
<temporal>
<period>
<start></start>
<end></end>
</period>
</temporal>
</extent>
</resourceMetadata>
<provider>wms</provider>
<noData>
<noDataList bandNo="1" useSrcNoData="0"/>
</noData>
<map-layer-style-manager current="default">
<map-layer-style name="default"/>
</map-layer-style-manager>
<flags>
<Identifiable>1</Identifiable>
<Removable>1</Removable>
<Searchable>1</Searchable>
</flags>
<customproperties>
<property key="WMSBackgroundLayer" value="false"/>
<property key="WMSPublishDataSourceUrl" value="false"/>
<property key="embeddedWidgets/count" value="0"/>
<property key="identify/format" value="Html"/>
</customproperties>
<pipe>
<rasterrenderer alphaBand="-1" type="singlebandcolordata" nodataColor="" opacity="1" band="1">
<rasterTransparency/>
<minMaxOrigin>
<limits>None</limits>
<extent>WholeRaster</extent>
<statAccuracy>Estimated</statAccuracy>
<cumulativeCutLower>0.02</cumulativeCutLower>
<cumulativeCutUpper>0.98</cumulativeCutUpper>
<stdDevFactor>2</stdDevFactor>
</minMaxOrigin>
</rasterrenderer>
<brightnesscontrast contrast="0" brightness="0"/>
<huesaturation colorizeRed="255" colorizeStrength="100" grayscaleMode="0" colorizeOn="0" colorizeBlue="128" colorizeGreen="128" saturation="0"/>
<rasterresampler maxOversampling="2"/>
</pipe>
<blendMode>0</blendMode>
</maplayer>
</projectlayers>
<layerorder>
<layer id="OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416"/>
<layer id="h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b"/>
</layerorder>
<properties>
<Gui>
<CanvasColorBluePart type="int">255</CanvasColorBluePart>
<CanvasColorGreenPart type="int">255</CanvasColorGreenPart>
<CanvasColorRedPart type="int">255</CanvasColorRedPart>
<SelectionColorAlphaPart type="int">255</SelectionColorAlphaPart>
<SelectionColorBluePart type="int">0</SelectionColorBluePart>
<SelectionColorGreenPart type="int">255</SelectionColorGreenPart>
<SelectionColorRedPart type="int">255</SelectionColorRedPart>
</Gui>
<Legend>
<filterByMap type="bool">false</filterByMap>
</Legend>
<Measure>
<Ellipsoid type="QString">WGS84</Ellipsoid>
</Measure>
<Measurement>
<AreaUnits type="QString">m2</AreaUnits>
<DistanceUnits type="QString">meters</DistanceUnits>
</Measurement>
<PAL>
<CandidatesLine type="int">50</CandidatesLine>
<CandidatesLinePerCM type="double">5</CandidatesLinePerCM>
<CandidatesPoint type="int">16</CandidatesPoint>
<CandidatesPolygon type="int">30</CandidatesPolygon>
<CandidatesPolygonPerCM type="double">2.5</CandidatesPolygonPerCM>
<DrawOutlineLabels type="bool">true</DrawOutlineLabels>
<DrawRectOnly type="bool">false</DrawRectOnly>
<DrawUnplaced type="bool">false</DrawUnplaced>
<PlacementEngineVersion type="int">0</PlacementEngineVersion>
<SearchMethod type="int">0</SearchMethod>
<ShowingAllLabels type="bool">false</ShowingAllLabels>
<ShowingCandidates type="bool">false</ShowingCandidates>
<ShowingPartialsLabels type="bool">true</ShowingPartialsLabels>
<TextFormat type="int">0</TextFormat>
<UnplacedColor type="QString">255,0,0,255</UnplacedColor>
</PAL>
<Paths>
<Absolute type="bool">false</Absolute>
</Paths>
<PositionPrecision>
<Automatic type="bool">true</Automatic>
<DecimalPlaces type="int">2</DecimalPlaces>
</PositionPrecision>
<SpatialRefSys>
<ProjectionsEnabled type="int">1</ProjectionsEnabled>
</SpatialRefSys>
</properties>
<visibility-presets/>
<transformContext/>
<projectMetadata>
<identifier></identifier>
<parentidentifier></parentidentifier>
<language></language>
<type></type>
<title></title>
<abstract></abstract>
<links/>
<author><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>.</author>
<creation>2019-06-10T14:55:55</creation>
</projectMetadata>
<Annotations/>
<Layouts/>
<Bookmarks/>
<ProjectViewSettings UseProjectScales="0">
<Scales/>
</ProjectViewSettings>
<ProjectDisplaySettings>
<BearingFormat id="bearing">
<Option type="Map">
<Option type="QChar" value="" name="decimal_separator"/>
<Option type="int" value="6" name="decimals"/>
<Option type="int" value="0" name="direction_format"/>
<Option type="int" value="0" name="rounding_type"/>
<Option type="bool" value="false" name="show_plus"/>
<Option type="bool" value="true" name="show_thousand_separator"/>
<Option type="bool" value="false" name="show_trailing_zeros"/>
<Option type="QChar" value="" name="thousand_separator"/>
</Option>
</BearingFormat>
</ProjectDisplaySettings>
</qgis>

View File

@ -0,0 +1,354 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis projectname="" saveUser="ivanov.i" version="3.12.3-București" saveUserFull="Иванов И.">
<homePath path=""/>
<title></title>
<autotransaction active="0"/>
<evaluateDefaultValues active="0"/>
<trust active="0"/>
<projectCrs>
<spatialrefsys>
<wkt>PROJCRS["WGS 84 / Pseudo-Mercator",BASEGEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["Popular Visualisation Pseudo-Mercator",METHOD["Popular Visualisation Pseudo Mercator",ID["EPSG",1024]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["unknown"],AREA["World - 85°S to 85°N"],BBOX[-85.06,-180,85.06,180]],ID["EPSG",3857]]</wkt>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</projectCrs>
<layer-tree-group>
<customproperties/>
<layer-tree-layer checked="Qt::Checked" providerKey="wms" expanded="1" source="contextualWMSLegend=0&amp;crs=EPSG:3857&amp;dpiMode=7&amp;featureCount=10&amp;format=image/png&amp;layers=NDWI_CMP:${day}NDWI_CMP_h20v03&amp;layers=NDWI_CMP:${day}NDWI_CMP_h20v04&amp;layers=NDWI_CMP:${day}NDWI_CMP_h21v03&amp;layers=NDWI_CMP:${day}NDWI_CMP_h21v04&amp;layers=NDWI_CMP:${day}NDWI_CMP_h21v05&amp;layers=NDWI_CMP:${day}NDWI_CMP_h22v03&amp;layers=NDWI_CMP:${day}NDWI_CMP_h22v04&amp;layers=NDWI_CMP:${day}NDWI_CMP_h22v05&amp;layers=NDWI_CMP:${day}NDWI_CMP_h23v03&amp;layers=NDWI_CMP:${day}NDWI_CMP_h23v04&amp;layers=NDWI_CMP:${day}NDWI_CMP_h23v05&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;url=http://geoserver2.ccalm.org/wms" legend_exp="" id="h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b" name="NDWI_CMP">
<customproperties/>
</layer-tree-layer>
<layer-tree-layer checked="Qt::Checked" providerKey="wms" expanded="1" source="crs=EPSG:3857&amp;format&amp;type=xyz&amp;url=http://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png" legend_exp="" id="OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416" name="OpenStreetMap">
<customproperties/>
</layer-tree-layer>
<custom-order enabled="0">
<item>OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416</item>
<item>h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b</item>
</custom-order>
</layer-tree-group>
<snapping-settings intersection-snapping="0" enabled="0" type="1" mode="2" tolerance="12" unit="1">
<individual-layer-settings/>
</snapping-settings>
<relations/>
<mapcanvas annotationsVisible="1" name="theMapCanvas">
<units>meters</units>
<extent>
<xmin>3863030.08689398271963</xmin>
<ymin>3270963.49336460698395967</ymin>
<xmax>9122876.02687616087496281</xmax>
<ymax>8530809.43334678560495377</ymax>
</extent>
<rotation>0</rotation>
<destinationsrs>
<spatialrefsys>
<wkt>PROJCRS["WGS 84 / Pseudo-Mercator",BASEGEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["Popular Visualisation Pseudo-Mercator",METHOD["Popular Visualisation Pseudo Mercator",ID["EPSG",1024]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["unknown"],AREA["World - 85°S to 85°N"],BBOX[-85.06,-180,85.06,180]],ID["EPSG",3857]]</wkt>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</destinationsrs>
<rendermaptile>0</rendermaptile>
<expressionContextScope/>
</mapcanvas>
<projectModels/>
<legend updateDrawingOrder="true">
<legendlayer checked="Qt::Checked" showFeatureCount="0" drawingOrder="-1" open="true" name="NDWI_CMP">
<filegroup open="true" hidden="false">
<legendlayerfile isInOverview="0" visible="1" layerid="h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b"/>
</filegroup>
</legendlayer>
<legendlayer checked="Qt::Checked" showFeatureCount="0" drawingOrder="-1" open="true" name="OpenStreetMap">
<filegroup open="true" hidden="false">
<legendlayerfile isInOverview="0" visible="1" layerid="OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416"/>
</filegroup>
</legendlayer>
</legend>
<mapViewDocks/>
<mapViewDocks3D/>
<projectlayers>
<maplayer styleCategories="AllStyleCategories" type="raster" refreshOnNotifyMessage="" refreshOnNotifyEnabled="0" minScale="1e+08" autoRefreshEnabled="0" maxScale="0" hasScaleBasedVisibilityFlag="0" autoRefreshTime="0">
<extent>
<xmin>-20037508.34278924390673637</xmin>
<ymin>-20037508.34278925508260727</ymin>
<xmax>20037508.34278924390673637</xmax>
<ymax>20037508.34278924390673637</ymax>
</extent>
<id>OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416</id>
<datasource>crs=EPSG:3857&amp;format&amp;type=xyz&amp;url=http://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png</datasource>
<keywordList>
<value></value>
</keywordList>
<layername>OpenStreetMap</layername>
<srs>
<spatialrefsys>
<wkt>PROJCRS["WGS 84 / Pseudo-Mercator",BASEGEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["Popular Visualisation Pseudo-Mercator",METHOD["Popular Visualisation Pseudo Mercator",ID["EPSG",1024]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["unknown"],AREA["World - 85°S to 85°N"],BBOX[-85.06,-180,85.06,180]],ID["EPSG",3857]]</wkt>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</srs>
<resourceMetadata>
<identifier></identifier>
<parentidentifier></parentidentifier>
<language></language>
<type></type>
<title></title>
<abstract></abstract>
<links/>
<fees></fees>
<encoding></encoding>
<crs>
<spatialrefsys>
<wkt></wkt>
<proj4></proj4>
<srsid>0</srsid>
<srid>0</srid>
<authid></authid>
<description></description>
<projectionacronym></projectionacronym>
<ellipsoidacronym></ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</crs>
<extent/>
</resourceMetadata>
<provider>wms</provider>
<noData>
<noDataList bandNo="1" useSrcNoData="0"/>
</noData>
<map-layer-style-manager current="default">
<map-layer-style name="default"/>
</map-layer-style-manager>
<flags>
<Identifiable>1</Identifiable>
<Removable>1</Removable>
<Searchable>1</Searchable>
</flags>
<customproperties>
<property key="identify/format" value="Undefined"/>
<property key="ol_layer_type" value="OpenStreetMap"/>
</customproperties>
<pipe>
<rasterrenderer alphaBand="-1" type="singlebandcolordata" nodataColor="" opacity="1" band="1">
<rasterTransparency/>
<minMaxOrigin>
<limits>None</limits>
<extent>WholeRaster</extent>
<statAccuracy>Estimated</statAccuracy>
<cumulativeCutLower>0.02</cumulativeCutLower>
<cumulativeCutUpper>0.98</cumulativeCutUpper>
<stdDevFactor>2</stdDevFactor>
</minMaxOrigin>
</rasterrenderer>
<brightnesscontrast contrast="0" brightness="0"/>
<huesaturation colorizeRed="255" colorizeStrength="100" grayscaleMode="0" colorizeOn="0" colorizeBlue="128" colorizeGreen="128" saturation="0"/>
<rasterresampler maxOversampling="2"/>
</pipe>
<blendMode>0</blendMode>
</maplayer>
<maplayer styleCategories="AllStyleCategories" type="raster" refreshOnNotifyMessage="" refreshOnNotifyEnabled="0" minScale="1e+08" autoRefreshEnabled="0" maxScale="0" hasScaleBasedVisibilityFlag="0" autoRefreshTime="0">
<extent>
<xmin>2906345.49411173490807414</xmin>
<ymin>3503584.68813749961555004</ymin>
<xmax>13358323.19605071656405926</xmax>
<ymax>8399737.88861873932182789</ymax>
</extent>
<id>h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b</id>
<datasource>contextualWMSLegend=0&amp;crs=EPSG:3857&amp;dpiMode=7&amp;featureCount=10&amp;format=image/png&amp;layers=NDWI_CMP:${day}NDWI_CMP_h20v03&amp;layers=NDWI_CMP:${day}NDWI_CMP_h20v04&amp;layers=NDWI_CMP:${day}NDWI_CMP_h21v03&amp;layers=NDWI_CMP:${day}NDWI_CMP_h21v04&amp;layers=NDWI_CMP:${day}NDWI_CMP_h21v05&amp;layers=NDWI_CMP:${day}NDWI_CMP_h22v03&amp;layers=NDWI_CMP:${day}NDWI_CMP_h22v04&amp;layers=NDWI_CMP:${day}NDWI_CMP_h22v05&amp;layers=NDWI_CMP:${day}NDWI_CMP_h23v03&amp;layers=NDWI_CMP:${day}NDWI_CMP_h23v04&amp;layers=NDWI_CMP:${day}NDWI_CMP_h23v05&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;styles=&amp;url=http://geoserver2.ccalm.org/wms</datasource>
<keywordList>
<value></value>
</keywordList>
<layername>${day}NDWI_CMP</layername>
<srs>
<spatialrefsys>
<wkt>PROJCRS["WGS 84 / Pseudo-Mercator",BASEGEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["Popular Visualisation Pseudo-Mercator",METHOD["Popular Visualisation Pseudo Mercator",ID["EPSG",1024]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["unknown"],AREA["World - 85°S to 85°N"],BBOX[-85.06,-180,85.06,180]],ID["EPSG",3857]]</wkt>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</srs>
<resourceMetadata>
<identifier></identifier>
<parentidentifier></parentidentifier>
<language></language>
<type></type>
<title></title>
<abstract></abstract>
<contact>
<name></name>
<organization></organization>
<position></position>
<voice></voice>
<fax></fax>
<email></email>
<role></role>
</contact>
<links/>
<fees></fees>
<encoding></encoding>
<crs>
<spatialrefsys>
<wkt></wkt>
<proj4></proj4>
<srsid>0</srsid>
<srid>0</srid>
<authid></authid>
<description></description>
<projectionacronym></projectionacronym>
<ellipsoidacronym></ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</crs>
<extent>
<spatial minz="0" minx="0" miny="0" crs="" maxz="0" dimensions="2" maxy="0" maxx="0"/>
<temporal>
<period>
<start></start>
<end></end>
</period>
</temporal>
</extent>
</resourceMetadata>
<provider>wms</provider>
<noData>
<noDataList bandNo="1" useSrcNoData="0"/>
</noData>
<map-layer-style-manager current="default">
<map-layer-style name="default"/>
</map-layer-style-manager>
<flags>
<Identifiable>1</Identifiable>
<Removable>1</Removable>
<Searchable>1</Searchable>
</flags>
<customproperties>
<property key="WMSBackgroundLayer" value="false"/>
<property key="WMSPublishDataSourceUrl" value="false"/>
<property key="embeddedWidgets/count" value="0"/>
<property key="identify/format" value="Html"/>
</customproperties>
<pipe>
<rasterrenderer alphaBand="-1" type="singlebandcolordata" nodataColor="" opacity="1" band="1">
<rasterTransparency/>
<minMaxOrigin>
<limits>None</limits>
<extent>WholeRaster</extent>
<statAccuracy>Estimated</statAccuracy>
<cumulativeCutLower>0.02</cumulativeCutLower>
<cumulativeCutUpper>0.98</cumulativeCutUpper>
<stdDevFactor>2</stdDevFactor>
</minMaxOrigin>
</rasterrenderer>
<brightnesscontrast contrast="0" brightness="0"/>
<huesaturation colorizeRed="255" colorizeStrength="100" grayscaleMode="0" colorizeOn="0" colorizeBlue="128" colorizeGreen="128" saturation="0"/>
<rasterresampler maxOversampling="2"/>
</pipe>
<blendMode>0</blendMode>
</maplayer>
</projectlayers>
<layerorder>
<layer id="OpenStreetMap_b190df4b_967b_471d_9b9c_3cb1d5e3b416"/>
<layer id="h23v05_h23v04_h23v03_h22v05_h22v04_h22v03_h21v05_h21v04_h21v03_h20v04_h20v03_9603ac31_1df8_4ac6_a749_7b7e66bb658b"/>
</layerorder>
<properties>
<Gui>
<CanvasColorBluePart type="int">255</CanvasColorBluePart>
<CanvasColorGreenPart type="int">255</CanvasColorGreenPart>
<CanvasColorRedPart type="int">255</CanvasColorRedPart>
<SelectionColorAlphaPart type="int">255</SelectionColorAlphaPart>
<SelectionColorBluePart type="int">0</SelectionColorBluePart>
<SelectionColorGreenPart type="int">255</SelectionColorGreenPart>
<SelectionColorRedPart type="int">255</SelectionColorRedPart>
</Gui>
<Legend>
<filterByMap type="bool">false</filterByMap>
</Legend>
<Measure>
<Ellipsoid type="QString">WGS84</Ellipsoid>
</Measure>
<Measurement>
<AreaUnits type="QString">m2</AreaUnits>
<DistanceUnits type="QString">meters</DistanceUnits>
</Measurement>
<PAL>
<CandidatesLine type="int">50</CandidatesLine>
<CandidatesLinePerCM type="double">5</CandidatesLinePerCM>
<CandidatesPoint type="int">16</CandidatesPoint>
<CandidatesPolygon type="int">30</CandidatesPolygon>
<CandidatesPolygonPerCM type="double">2.5</CandidatesPolygonPerCM>
<DrawOutlineLabels type="bool">true</DrawOutlineLabels>
<DrawRectOnly type="bool">false</DrawRectOnly>
<DrawUnplaced type="bool">false</DrawUnplaced>
<PlacementEngineVersion type="int">0</PlacementEngineVersion>
<SearchMethod type="int">0</SearchMethod>
<ShowingAllLabels type="bool">false</ShowingAllLabels>
<ShowingCandidates type="bool">false</ShowingCandidates>
<ShowingPartialsLabels type="bool">true</ShowingPartialsLabels>
<TextFormat type="int">0</TextFormat>
<UnplacedColor type="QString">255,0,0,255</UnplacedColor>
</PAL>
<Paths>
<Absolute type="bool">false</Absolute>
</Paths>
<PositionPrecision>
<Automatic type="bool">true</Automatic>
<DecimalPlaces type="int">2</DecimalPlaces>
</PositionPrecision>
<SpatialRefSys>
<ProjectionsEnabled type="int">1</ProjectionsEnabled>
</SpatialRefSys>
</properties>
<visibility-presets/>
<transformContext/>
<projectMetadata>
<identifier></identifier>
<parentidentifier></parentidentifier>
<language></language>
<type></type>
<title></title>
<abstract></abstract>
<links/>
<author><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>.</author>
<creation>2019-06-10T14:55:55</creation>
</projectMetadata>
<Annotations/>
<Layouts/>
<Bookmarks/>
<ProjectViewSettings UseProjectScales="0">
<Scales/>
</ProjectViewSettings>
<ProjectDisplaySettings>
<BearingFormat id="bearing">
<Option type="Map">
<Option type="QChar" value="" name="decimal_separator"/>
<Option type="int" value="6" name="decimals"/>
<Option type="int" value="0" name="direction_format"/>
<Option type="int" value="0" name="rounding_type"/>
<Option type="bool" value="false" name="show_plus"/>
<Option type="bool" value="true" name="show_thousand_separator"/>
<Option type="bool" value="false" name="show_trailing_zeros"/>
<Option type="QChar" value="" name="thousand_separator"/>
</Option>
</BearingFormat>
</ProjectDisplaySettings>
</qgis>

View File

@ -0,0 +1,726 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis version="3.40.10-Bratislava" saveDateTime="2025-09-14T16:54:26" projectname="" saveUser="ccalm.org" saveUserFull="ccalm.org">
<homePath path=""/>
<title></title>
<transaction mode="Disabled"/>
<projectFlags set=""/>
<projectCrs>
<spatialrefsys nativeFormat="Wkt">
<wkt>PROJCRS["WGS 84 / Pseudo-Mercator",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["Popular Visualisation Pseudo-Mercator",METHOD["Popular Visualisation Pseudo Mercator",ID["EPSG",1024]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Web mapping and visualisation."],AREA["World between 85.06°S and 85.06°N."],BBOX[-85.06,-180,85.06,180]],ID["EPSG",3857]]</wkt>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</projectCrs>
<verticalCrs>
<spatialrefsys nativeFormat="Wkt">
<wkt></wkt>
<proj4></proj4>
<srsid>0</srsid>
<srid>0</srid>
<authid></authid>
<description></description>
<projectionacronym></projectionacronym>
<ellipsoidacronym></ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</verticalCrs>
<elevation-shading-renderer edl-distance="0.5" hillshading-is-active="0" is-active="0" combined-method="0" hillshading-z-factor="1" light-altitude="45" hillshading-is-multidirectional="0" edl-is-active="1" edl-distance-unit="0" light-azimuth="315" edl-strength="1000"/>
<layer-tree-group>
<customproperties>
<Option/>
</customproperties>
<layer-tree-layer checked="Qt::Checked" legend_exp="" id="_8357e0b1_ef46_4436_ac52_f7a1b071a7a1" name="${date}" source="IgnoreGetMapUrl=1&amp;contextualWMSLegend=0&amp;crs=EPSG:3857&amp;dpiMode=7&amp;featureCount=10&amp;format=image/png&amp;layers=SMAP:${date}&amp;styles&amp;tilePixelRatio=0&amp;url=http://geoserver2.ccalm.org/wms?viewparams%3Dtime_start:1667260800;time_end%3D1665532800;" providerKey="wms" patch_size="-1,-1" legend_split_behavior="0" expanded="1">
<customproperties>
<Option/>
</customproperties>
</layer-tree-layer>
<layer-tree-layer checked="Qt::Checked" legend_exp="" id="OpenStreetMap_3eefb26a_f2d2_4a0b_b3e0_3ed661cbbc5d" name="OpenStreetMap" source="crs=EPSG:3857&amp;format&amp;type=xyz&amp;url=http://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png" providerKey="wms" patch_size="-1,-1" legend_split_behavior="0" expanded="1">
<customproperties>
<Option/>
</customproperties>
</layer-tree-layer>
<custom-order enabled="0">
<item>OpenStreetMap_3eefb26a_f2d2_4a0b_b3e0_3ed661cbbc5d</item>
<item>_8357e0b1_ef46_4436_ac52_f7a1b071a7a1</item>
</custom-order>
</layer-tree-group>
<snapping-settings maxScale="0" self-snapping="0" enabled="0" intersection-snapping="0" unit="1" scaleDependencyMode="0" type="1" mode="2" minScale="0" tolerance="12">
<individual-layer-settings/>
</snapping-settings>
<relations/>
<polymorphicRelations/>
<mapcanvas name="theMapCanvas" annotationsVisible="1">
<units>meters</units>
<extent>
<xmin>-21039383.75992870703339577</xmin>
<ymin>-21039383.75992871075868607</ymin>
<xmax>21039383.75992870703339577</xmax>
<ymax>21039383.75992876291275024</ymax>
</extent>
<rotation>0</rotation>
<destinationsrs>
<spatialrefsys nativeFormat="Wkt">
<wkt>PROJCRS["WGS 84 / Pseudo-Mercator",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["Popular Visualisation Pseudo-Mercator",METHOD["Popular Visualisation Pseudo Mercator",ID["EPSG",1024]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Web mapping and visualisation."],AREA["World between 85.06°S and 85.06°N."],BBOX[-85.06,-180,85.06,180]],ID["EPSG",3857]]</wkt>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</destinationsrs>
<rendermaptile>0</rendermaptile>
<expressionContextScope/>
</mapcanvas>
<projectModels/>
<legend updateDrawingOrder="true">
<legendlayer checked="Qt::Checked" drawingOrder="-1" name="${date}" open="true" showFeatureCount="0">
<filegroup hidden="false" open="true">
<legendlayerfile isInOverview="0" layerid="_8357e0b1_ef46_4436_ac52_f7a1b071a7a1" visible="1"/>
</filegroup>
</legendlayer>
<legendlayer checked="Qt::Checked" drawingOrder="-1" name="OpenStreetMap" open="true" showFeatureCount="0">
<filegroup hidden="false" open="true">
<legendlayerfile isInOverview="0" layerid="OpenStreetMap_3eefb26a_f2d2_4a0b_b3e0_3ed661cbbc5d" visible="1"/>
</filegroup>
</legendlayer>
</legend>
<mapViewDocks/>
<main-annotation-layer hasScaleBasedVisibilityFlag="0" maxScale="0" refreshOnNotifyEnabled="0" refreshOnNotifyMessage="" type="annotation" autoRefreshMode="Disabled" styleCategories="AllStyleCategories" autoRefreshTime="0" legendPlaceholderImage="" minScale="1e+08">
<id>__________558d9f32_96f4_4271_9cb4_b90b4ebc6580</id>
<datasource></datasource>
<keywordList>
<value></value>
</keywordList>
<layername>Аннотации</layername>
<srs>
<spatialrefsys nativeFormat="Wkt">
<wkt>PROJCRS["WGS 84 / Pseudo-Mercator",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["Popular Visualisation Pseudo-Mercator",METHOD["Popular Visualisation Pseudo Mercator",ID["EPSG",1024]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Web mapping and visualisation."],AREA["World between 85.06°S and 85.06°N."],BBOX[-85.06,-180,85.06,180]],ID["EPSG",3857]]</wkt>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</srs>
<resourceMetadata>
<identifier></identifier>
<parentidentifier></parentidentifier>
<language></language>
<type></type>
<title></title>
<abstract></abstract>
<links/>
<dates/>
<fees></fees>
<encoding></encoding>
<crs>
<spatialrefsys nativeFormat="Wkt">
<wkt></wkt>
<proj4></proj4>
<srsid>0</srsid>
<srid>0</srid>
<authid></authid>
<description></description>
<projectionacronym></projectionacronym>
<ellipsoidacronym></ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</crs>
<extent/>
</resourceMetadata>
<items/>
<flags>
<Identifiable>1</Identifiable>
<Removable>1</Removable>
<Searchable>1</Searchable>
<Private>0</Private>
</flags>
<customproperties>
<Option/>
</customproperties>
<layerOpacity>1</layerOpacity>
<blendMode>0</blendMode>
<paintEffect/>
</main-annotation-layer>
<projectlayers>
<maplayer hasScaleBasedVisibilityFlag="0" maxScale="0" refreshOnNotifyEnabled="0" refreshOnNotifyMessage="" type="raster" autoRefreshMode="Disabled" styleCategories="AllStyleCategories" autoRefreshTime="0" legendPlaceholderImage="" minScale="1e+08">
<extent>
<xmin>-20037508.34278924390673637</xmin>
<ymin>-20037508.34278924763202667</ymin>
<xmax>20037508.34278924390673637</xmax>
<ymax>20037508.34278924763202667</ymax>
</extent>
<wgs84extent>
<xmin>-180</xmin>
<ymin>-85.05112877980660357</ymin>
<xmax>180</xmax>
<ymax>85.05112877980660357</ymax>
</wgs84extent>
<id>OpenStreetMap_3eefb26a_f2d2_4a0b_b3e0_3ed661cbbc5d</id>
<datasource>crs=EPSG:3857&amp;format&amp;type=xyz&amp;url=http://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png</datasource>
<keywordList>
<value></value>
</keywordList>
<layername>OpenStreetMap</layername>
<srs>
<spatialrefsys nativeFormat="Wkt">
<wkt>PROJCRS["WGS 84 / Pseudo-Mercator",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["Popular Visualisation Pseudo-Mercator",METHOD["Popular Visualisation Pseudo Mercator",ID["EPSG",1024]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Web mapping and visualisation."],AREA["World between 85.06°S and 85.06°N."],BBOX[-85.06,-180,85.06,180]],ID["EPSG",3857]]</wkt>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</srs>
<resourceMetadata>
<identifier>Тайлы OpenStreetMap</identifier>
<parentidentifier></parentidentifier>
<language></language>
<type>dataset</type>
<title>Тайлы OpenStreetMap</title>
<abstract>Проект OpenStreetMap создан картографическим сообществом, создающим и распространяющим данные о дорогах, территориях, границах и многом другом по всему миру.</abstract>
<links>
<link name="Источник" mimeType="" size="" description="" format="" type="WWW:LINK" url="https://www.openstreetmap.org/"/>
</links>
<dates/>
<fees></fees>
<rights>Базовая карта и данные подготовлены сообществом OpenStreetMap (CC-BY-SA). © https://www.openstreetmap.org and contributors.</rights>
<license>Лицензия Open Data Commons Open Database (ODbL)</license>
<license>Creative Commons Attribution-ShareAlike (CC-BY-SA)</license>
<encoding></encoding>
<crs>
<spatialrefsys nativeFormat="Wkt">
<wkt>PROJCRS["WGS 84 / Pseudo-Mercator",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["Popular Visualisation Pseudo-Mercator",METHOD["Popular Visualisation Pseudo Mercator",ID["EPSG",1024]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Web mapping and visualisation."],AREA["World between 85.06°S and 85.06°N."],BBOX[-85.06,-180,85.06,180]],ID["EPSG",3857]]</wkt>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</crs>
<extent>
<spatial miny="-85.05112877980660357" crs="EPSG:4326" dimensions="2" minx="-180" maxz="0" minz="0" maxx="180" maxy="85.05112877980660357"/>
</extent>
</resourceMetadata>
<provider>wms</provider>
<noData>
<noDataList bandNo="1" useSrcNoData="0"/>
</noData>
<map-layer-style-manager current="по умолчанию">
<map-layer-style name="по умолчанию"/>
</map-layer-style-manager>
<metadataUrls/>
<flags>
<Identifiable>1</Identifiable>
<Removable>1</Removable>
<Searchable>1</Searchable>
<Private>0</Private>
</flags>
<temporal bandNumber="1" enabled="0" mode="0" fetchMode="0">
<fixedRange>
<start></start>
<end></end>
</fixedRange>
</temporal>
<elevation enabled="0" band="1" symbology="Line" zscale="1" mode="RepresentsElevationSurface" zoffset="0">
<data-defined-properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data-defined-properties>
<profileLineSymbol>
<symbol alpha="1" clip_to_extent="1" is_animated="0" frame_rate="10" name="" type="line" force_rhr="0">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer id="{d5b45c66-5ba4-4ffe-928b-b76180ae5d44}" locked="0" enabled="1" class="SimpleLine" pass="0">
<Option type="Map">
<Option value="0" name="align_dash_pattern" type="QString"/>
<Option value="square" name="capstyle" type="QString"/>
<Option value="5;2" name="customdash" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="customdash_map_unit_scale" type="QString"/>
<Option value="MM" name="customdash_unit" type="QString"/>
<Option value="0" name="dash_pattern_offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="dash_pattern_offset_map_unit_scale" type="QString"/>
<Option value="MM" name="dash_pattern_offset_unit" type="QString"/>
<Option value="0" name="draw_inside_polygon" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="196,60,57,255,rgb:0.7686274509803922,0.23529411764705882,0.22352941176470589,1" name="line_color" type="QString"/>
<Option value="solid" name="line_style" type="QString"/>
<Option value="0.6" name="line_width" type="QString"/>
<Option value="MM" name="line_width_unit" type="QString"/>
<Option value="0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="MM" name="offset_unit" type="QString"/>
<Option value="0" name="ring_filter" type="QString"/>
<Option value="0" name="trim_distance_end" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="trim_distance_end_map_unit_scale" type="QString"/>
<Option value="MM" name="trim_distance_end_unit" type="QString"/>
<Option value="0" name="trim_distance_start" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="trim_distance_start_map_unit_scale" type="QString"/>
<Option value="MM" name="trim_distance_start_unit" type="QString"/>
<Option value="0" name="tweak_dash_pattern_on_corners" type="QString"/>
<Option value="0" name="use_custom_dash" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="width_map_unit_scale" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
</profileLineSymbol>
<profileFillSymbol>
<symbol alpha="1" clip_to_extent="1" is_animated="0" frame_rate="10" name="" type="fill" force_rhr="0">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer id="{b4e5f16d-cf22-4f7a-a750-417fa434755d}" locked="0" enabled="1" class="SimpleFill" pass="0">
<Option type="Map">
<Option value="3x:0,0,0,0,0,0" name="border_width_map_unit_scale" type="QString"/>
<Option value="196,60,57,255,rgb:0.7686274509803922,0.23529411764705882,0.22352941176470589,1" name="color" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="0,0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="MM" name="offset_unit" type="QString"/>
<Option value="35,35,35,255,rgb:0.13725490196078433,0.13725490196078433,0.13725490196078433,1" name="outline_color" type="QString"/>
<Option value="no" name="outline_style" type="QString"/>
<Option value="0.26" name="outline_width" type="QString"/>
<Option value="MM" name="outline_width_unit" type="QString"/>
<Option value="solid" name="style" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
</profileFillSymbol>
</elevation>
<customproperties>
<Option type="Map">
<Option value="Value" name="identify/format" type="QString"/>
<Option value="OpenStreetMap" name="ol_layer_type" type="QString"/>
</Option>
</customproperties>
<mapTip enabled="1"></mapTip>
<pipe-data-defined-properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</pipe-data-defined-properties>
<pipe>
<provider>
<resampling zoomedInResamplingMethod="nearestNeighbour" zoomedOutResamplingMethod="nearestNeighbour" maxOversampling="2" enabled="false"/>
</provider>
<rasterrenderer opacity="1" nodataColor="" type="singlebandcolordata" band="1" alphaBand="-1">
<rasterTransparency/>
<minMaxOrigin>
<limits>None</limits>
<extent>WholeRaster</extent>
<statAccuracy>Estimated</statAccuracy>
<cumulativeCutLower>0.02</cumulativeCutLower>
<cumulativeCutUpper>0.98</cumulativeCutUpper>
<stdDevFactor>2</stdDevFactor>
</minMaxOrigin>
</rasterrenderer>
<brightnesscontrast brightness="0" gamma="1" contrast="0"/>
<huesaturation colorizeOn="0" colorizeGreen="128" colorizeStrength="100" colorizeRed="255" saturation="0" colorizeBlue="128" grayscaleMode="0" invertColors="0"/>
<rasterresampler maxOversampling="2"/>
<resamplingStage>resamplingFilter</resamplingStage>
</pipe>
<blendMode>0</blendMode>
</maplayer>
<maplayer hasScaleBasedVisibilityFlag="0" maxScale="0" refreshOnNotifyEnabled="0" refreshOnNotifyMessage="" type="raster" autoRefreshMode="Disabled" styleCategories="AllStyleCategories" autoRefreshTime="0" legendPlaceholderImage="" minScale="1e+08">
<extent>
<xmin>-20037508.33720675110816956</xmin>
<ymin>-19983484.6311938650906086</ymin>
<xmax>20037055.05812187492847443</xmax>
<ymax>20028962.62836629152297974</ymax>
</extent>
<wgs84extent>
<xmin>-179.99999994985159901</xmin>
<ymin>-85.00908611398735104</ymin>
<xmax>179.99592807455246657</xmax>
<ymax>85.04450187956545903</ymax>
</wgs84extent>
<id>_8357e0b1_ef46_4436_ac52_f7a1b071a7a1</id>
<datasource>IgnoreGetMapUrl=1&amp;contextualWMSLegend=0&amp;crs=EPSG:3857&amp;dpiMode=7&amp;featureCount=10&amp;format=image/png&amp;layers=SMAP:${date}&amp;styles&amp;tilePixelRatio=0&amp;url=http://geoserver2.ccalm.org/wms?viewparams%3Dtime_start:1667260800;time_end%3D1665532800;</datasource>
<keywordList>
<value></value>
</keywordList>
<layername>${date}</layername>
<srs>
<spatialrefsys nativeFormat="Wkt">
<wkt>PROJCRS["WGS 84 / Pseudo-Mercator",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["Popular Visualisation Pseudo-Mercator",METHOD["Popular Visualisation Pseudo Mercator",ID["EPSG",1024]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Web mapping and visualisation."],AREA["World between 85.06°S and 85.06°N."],BBOX[-85.06,-180,85.06,180]],ID["EPSG",3857]]</wkt>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</srs>
<resourceMetadata>
<identifier></identifier>
<parentidentifier></parentidentifier>
<language></language>
<type></type>
<title></title>
<abstract></abstract>
<links/>
<dates/>
<fees></fees>
<encoding></encoding>
<crs>
<spatialrefsys nativeFormat="Wkt">
<wkt></wkt>
<proj4></proj4>
<srsid>0</srsid>
<srid>0</srid>
<authid></authid>
<description></description>
<projectionacronym></projectionacronym>
<ellipsoidacronym></ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</crs>
<extent/>
</resourceMetadata>
<provider>wms</provider>
<noData>
<noDataList bandNo="1" useSrcNoData="0"/>
</noData>
<map-layer-style-manager current="по умолчанию">
<map-layer-style name="по умолчанию"/>
</map-layer-style-manager>
<metadataUrls/>
<flags>
<Identifiable>1</Identifiable>
<Removable>1</Removable>
<Searchable>1</Searchable>
<Private>0</Private>
</flags>
<temporal bandNumber="1" enabled="0" mode="0" fetchMode="0">
<fixedRange>
<start></start>
<end></end>
</fixedRange>
</temporal>
<elevation enabled="0" band="1" symbology="Line" zscale="1" mode="RepresentsElevationSurface" zoffset="0">
<data-defined-properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data-defined-properties>
<profileLineSymbol>
<symbol alpha="1" clip_to_extent="1" is_animated="0" frame_rate="10" name="" type="line" force_rhr="0">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer id="{1dfb735b-fea3-4003-9474-23a8751d6963}" locked="0" enabled="1" class="SimpleLine" pass="0">
<Option type="Map">
<Option value="0" name="align_dash_pattern" type="QString"/>
<Option value="square" name="capstyle" type="QString"/>
<Option value="5;2" name="customdash" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="customdash_map_unit_scale" type="QString"/>
<Option value="MM" name="customdash_unit" type="QString"/>
<Option value="0" name="dash_pattern_offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="dash_pattern_offset_map_unit_scale" type="QString"/>
<Option value="MM" name="dash_pattern_offset_unit" type="QString"/>
<Option value="0" name="draw_inside_polygon" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="145,82,45,255,rgb:0.56862745098039214,0.32156862745098042,0.17647058823529413,1" name="line_color" type="QString"/>
<Option value="solid" name="line_style" type="QString"/>
<Option value="0.6" name="line_width" type="QString"/>
<Option value="MM" name="line_width_unit" type="QString"/>
<Option value="0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="MM" name="offset_unit" type="QString"/>
<Option value="0" name="ring_filter" type="QString"/>
<Option value="0" name="trim_distance_end" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="trim_distance_end_map_unit_scale" type="QString"/>
<Option value="MM" name="trim_distance_end_unit" type="QString"/>
<Option value="0" name="trim_distance_start" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="trim_distance_start_map_unit_scale" type="QString"/>
<Option value="MM" name="trim_distance_start_unit" type="QString"/>
<Option value="0" name="tweak_dash_pattern_on_corners" type="QString"/>
<Option value="0" name="use_custom_dash" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="width_map_unit_scale" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
</profileLineSymbol>
<profileFillSymbol>
<symbol alpha="1" clip_to_extent="1" is_animated="0" frame_rate="10" name="" type="fill" force_rhr="0">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer id="{78080609-56f0-4394-b59b-96a6fe98a63f}" locked="0" enabled="1" class="SimpleFill" pass="0">
<Option type="Map">
<Option value="3x:0,0,0,0,0,0" name="border_width_map_unit_scale" type="QString"/>
<Option value="145,82,45,255,rgb:0.56862745098039214,0.32156862745098042,0.17647058823529413,1" name="color" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="0,0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="MM" name="offset_unit" type="QString"/>
<Option value="35,35,35,255,rgb:0.13725490196078433,0.13725490196078433,0.13725490196078433,1" name="outline_color" type="QString"/>
<Option value="no" name="outline_style" type="QString"/>
<Option value="0.26" name="outline_width" type="QString"/>
<Option value="MM" name="outline_width_unit" type="QString"/>
<Option value="solid" name="style" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
</profileFillSymbol>
</elevation>
<customproperties>
<Option type="Map">
<Option value="Html" name="identify/format" type="QString"/>
</Option>
</customproperties>
<mapTip enabled="1"></mapTip>
<pipe-data-defined-properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</pipe-data-defined-properties>
<pipe>
<provider>
<resampling zoomedInResamplingMethod="nearestNeighbour" zoomedOutResamplingMethod="nearestNeighbour" maxOversampling="2" enabled="false"/>
</provider>
<rasterrenderer opacity="1" nodataColor="" type="singlebandcolordata" band="1" alphaBand="-1">
<rasterTransparency/>
<minMaxOrigin>
<limits>None</limits>
<extent>WholeRaster</extent>
<statAccuracy>Estimated</statAccuracy>
<cumulativeCutLower>0.02</cumulativeCutLower>
<cumulativeCutUpper>0.98</cumulativeCutUpper>
<stdDevFactor>2</stdDevFactor>
</minMaxOrigin>
</rasterrenderer>
<brightnesscontrast brightness="0" gamma="1" contrast="0"/>
<huesaturation colorizeOn="0" colorizeGreen="128" colorizeStrength="100" colorizeRed="255" saturation="0" colorizeBlue="128" grayscaleMode="0" invertColors="0"/>
<rasterresampler maxOversampling="2"/>
<resamplingStage>resamplingFilter</resamplingStage>
</pipe>
<blendMode>0</blendMode>
</maplayer>
</projectlayers>
<layerorder>
<layer id="OpenStreetMap_3eefb26a_f2d2_4a0b_b3e0_3ed661cbbc5d"/>
<layer id="_8357e0b1_ef46_4436_ac52_f7a1b071a7a1"/>
</layerorder>
<labelEngineSettings/>
<properties>
<Digitizing>
<AvoidIntersectionsMode type="int">0</AvoidIntersectionsMode>
</Digitizing>
<Gui>
<CanvasColorBluePart type="int">255</CanvasColorBluePart>
<CanvasColorGreenPart type="int">255</CanvasColorGreenPart>
<CanvasColorRedPart type="int">255</CanvasColorRedPart>
<SelectionColorAlphaPart type="int">255</SelectionColorAlphaPart>
<SelectionColorBluePart type="int">0</SelectionColorBluePart>
<SelectionColorGreenPart type="int">255</SelectionColorGreenPart>
<SelectionColorRedPart type="int">255</SelectionColorRedPart>
</Gui>
<Legend>
<filterByMap type="bool">false</filterByMap>
</Legend>
<Measure>
<Ellipsoid type="QString">EPSG:7030</Ellipsoid>
</Measure>
<Measurement>
<AreaUnits type="QString">m2</AreaUnits>
<DistanceUnits type="QString">meters</DistanceUnits>
</Measurement>
<PAL>
<CandidatesLinePerCM type="double">5</CandidatesLinePerCM>
<CandidatesPolygonPerCM type="double">2.5</CandidatesPolygonPerCM>
<DrawLabelMetrics type="bool">false</DrawLabelMetrics>
<DrawRectOnly type="bool">false</DrawRectOnly>
<DrawUnplaced type="bool">false</DrawUnplaced>
<PlacementEngineVersion type="int">1</PlacementEngineVersion>
<SearchMethod type="int">0</SearchMethod>
<ShowingAllLabels type="bool">false</ShowingAllLabels>
<ShowingCandidates type="bool">false</ShowingCandidates>
<ShowingPartialsLabels type="bool">true</ShowingPartialsLabels>
<TextFormat type="int">0</TextFormat>
<UnplacedColor type="QString">255,0,0,255,rgb:1,0,0,1</UnplacedColor>
</PAL>
<Paths>
<Absolute type="bool">false</Absolute>
</Paths>
<PositionPrecision>
<Automatic type="bool">true</Automatic>
<DecimalPlaces type="int">2</DecimalPlaces>
</PositionPrecision>
<SpatialRefSys>
<ProjectionsEnabled type="int">1</ProjectionsEnabled>
</SpatialRefSys>
</properties>
<dataDefinedServerProperties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</dataDefinedServerProperties>
<visibility-presets/>
<transformContext/>
<projectMetadata>
<identifier></identifier>
<parentidentifier></parentidentifier>
<language></language>
<type></type>
<title></title>
<abstract></abstract>
<links/>
<dates>
<date value="2023-09-08T15:00:38" type="Created"/>
</dates>
<author>Igor Ivanov</author>
<creation>2023-09-08T15:00:38</creation>
</projectMetadata>
<Annotations/>
<Layouts/>
<mapViewDocks3D/>
<Bookmarks/>
<Sensors/>
<ProjectViewSettings UseProjectScales="0" rotation="0">
<Scales/>
<DefaultViewExtent xmin="-33704768.02996301651000977" ymin="-21039383.75992871075868607" xmax="33704768.02996301651000977" ymax="21039383.75992876291275024">
<spatialrefsys nativeFormat="Wkt">
<wkt>PROJCRS["WGS 84 / Pseudo-Mercator",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["Popular Visualisation Pseudo-Mercator",METHOD["Popular Visualisation Pseudo Mercator",ID["EPSG",1024]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Web mapping and visualisation."],AREA["World between 85.06°S and 85.06°N."],BBOX[-85.06,-180,85.06,180]],ID["EPSG",3857]]</wkt>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo-Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</DefaultViewExtent>
</ProjectViewSettings>
<ProjectStyleSettings iccProfileId="attachment:///" RandomizeDefaultSymbolColor="1" DefaultSymbolOpacity="1" colorModel="Rgb" projectStyleId="attachment:///TNjckE_styles.db">
<databases/>
</ProjectStyleSettings>
<ProjectTimeSettings timeStepUnit="h" cumulativeTemporalRange="0" timeStep="1" totalMovieFrames="100" frameRate="1"/>
<ElevationProperties FilterInvertSlider="0">
<terrainProvider type="flat">
<TerrainProvider scale="1" offset="0"/>
</terrainProvider>
</ElevationProperties>
<ProjectDisplaySettings CoordinateType="MapCrs" CoordinateAxisOrder="Default">
<BearingFormat id="bearing">
<Option type="Map">
<Option name="decimal_separator" type="invalid"/>
<Option value="6" name="decimals" type="int"/>
<Option value="0" name="direction_format" type="int"/>
<Option value="0" name="rounding_type" type="int"/>
<Option value="false" name="show_plus" type="bool"/>
<Option value="true" name="show_thousand_separator" type="bool"/>
<Option value="false" name="show_trailing_zeros" type="bool"/>
<Option name="thousand_separator" type="invalid"/>
</Option>
</BearingFormat>
<GeographicCoordinateFormat id="geographiccoordinate">
<Option type="Map">
<Option value="DecimalDegrees" name="angle_format" type="QString"/>
<Option name="decimal_separator" type="invalid"/>
<Option value="6" name="decimals" type="int"/>
<Option value="0" name="rounding_type" type="int"/>
<Option value="false" name="show_leading_degree_zeros" type="bool"/>
<Option value="false" name="show_leading_zeros" type="bool"/>
<Option value="false" name="show_plus" type="bool"/>
<Option value="false" name="show_suffix" type="bool"/>
<Option value="true" name="show_thousand_separator" type="bool"/>
<Option value="false" name="show_trailing_zeros" type="bool"/>
<Option name="thousand_separator" type="invalid"/>
</Option>
</GeographicCoordinateFormat>
<CoordinateCustomCrs>
<spatialrefsys nativeFormat="Wkt">
<wkt>GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]]</wkt>
<proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
<srsid>3452</srsid>
<srid>4326</srid>
<authid>EPSG:4326</authid>
<description>WGS 84</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</CoordinateCustomCrs>
</ProjectDisplaySettings>
<ProjectGpsSettings autoAddTrackVertices="0" autoCommitFeatures="0" destinationFollowsActiveLayer="1" destinationLayer="">
<timeStampFields/>
</ProjectGpsSettings>
</qgis>

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,509 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis projectname="" version="2.18.6">
<title></title>
<autotransaction active="0"/>
<evaluateDefaultValues active="0"/>
<layer-tree-group expanded="1" checked="Qt::PartiallyChecked" name="">
<customproperties/>
<layer-tree-layer expanded="1" providerKey="postgres" checked="Qt::Checked" id="view_frmlocustinfo_p2r_${year}20170221133600806" source="dbname='CCALM' host=ccalm.org port=5432 user='guest' sslmode=disable key='region_id' estimatedmetadata=true srid=4326 type=MultiPolygon table=&quot;public&quot;.&quot;view_frmlocustinfo_p2r_${year}&quot; (geom) sql=${sql}" name="trt('Maps_of_areas_infested_above_Economic_Threshold_(ET)')">
<customproperties/>
</layer-tree-layer>
<layer-tree-layer expanded="1" providerKey="" checked="Qt::Unchecked" id="OpenLayers_plugin_layer20170821155911549" source="" name="Bing Aerial with labels">
<customproperties/>
</layer-tree-layer>
</layer-tree-group>
<relations/>
<mapcanvas>
<units>meters</units>
<extent>
<xmin>4606484.6726676719263196</xmin>
<ymin>3728012.39886604063212872</ymin>
<xmax>9866330.61264913156628609</xmax>
<ymax>8074944.57324538938701153</ymax>
</extent>
<rotation>0</rotation>
<projections>1</projections>
<destinationsrs>
<spatialrefsys>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</destinationsrs>
<rendermaptile>0</rendermaptile>
<layer_coordinate_transform_info>
<layer_coordinate_transform destAuthId="EPSG:3857" srcAuthId="EPSG:4326" srcDatumTransform="-1" destDatumTransform="-1" layerid="view_frmlocustinfo_p2r_${year}20170221133600806"/>
<layer_coordinate_transform destAuthId="EPSG:3857" srcAuthId="EPSG:3857" srcDatumTransform="-1" destDatumTransform="-1" layerid="OpenLayers_plugin_layer20170821155911549"/>
</layer_coordinate_transform_info>
</mapcanvas>
<layer-tree-canvas>
<custom-order enabled="0">
<item>view_frmlocustinfo_p2r_${year}20170221133600806</item>
<item>OpenStreetMap20170221155223210</item>
</custom-order>
</layer-tree-canvas>
<legend updateDrawingOrder="true">
<legendlayer drawingOrder="-1" open="true" checked="Qt::Checked" name="trt('Maps_of_areas_infested_above_Economic_Threshold_(ET)')" showFeatureCount="0">
<filegroup open="true" hidden="false">
<legendlayerfile isInOverview="0" layerid="view_frmlocustinfo_p2r_${year}20170221133600806" visible="1"/>
</filegroup>
</legendlayer>
<legendlayer drawingOrder="-1" open="true" checked="Qt::Unchecked" name="Bing Aerial with labels" showFeatureCount="0">
<filegroup open="true" hidden="false">
<legendlayerfile isInOverview="0" layerid="OpenLayers_plugin_layer20170821155911549" visible="0"/>
</filegroup>
</legendlayer>
</legend>
<projectlayers>
<maplayer simplifyAlgorithm="0" minimumScale="0" maximumScale="1e+08" simplifyDrawingHints="1" minLabelScale="0" maxLabelScale="1e+08" simplifyDrawingTol="1" readOnly="0" geometry="Polygon" simplifyMaxScale="1" type="vector" hasScaleBasedVisibilityFlag="0" simplifyLocal="1" scaleBasedLabelVisibilityFlag="0">
<extent>
<xmin>-180</xmin>
<ymin>38.39295510000000178</ymin>
<xmax>180</xmax>
<ymax>82.05862320000009902</ymax>
</extent>
<id>view_frmlocustinfo_p2r_${year}20170221133600806</id>
<datasource>dbname='CCALM' host=ccalm.org port=5432 user='guest' password='B2C0D5C60590' sslmode=disable key='region_id' estimatedmetadata=true srid=4326 type=MultiPolygon table="main"."view_frmlocustinfo_p2r_${year}" (geom) sql=${sql}</datasource>
<keywordList>
<value></value>
</keywordList>
<layername>trt('Maps_of_areas_infested_above_Economic_Threshold_(ET)')</layername>
<srs>
<spatialrefsys>
<proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
<srsid>3452</srsid>
<srid>4326</srid>
<authid>EPSG:4326</authid>
<description>WGS 84</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</srs>
<provider encoding="System">postgres</provider>
<vectorjoins/>
<layerDependencies/>
<expressionfields/>
<map-layer-style-manager current="">
<map-layer-style name=""/>
</map-layer-style-manager>
<edittypes>
<edittype widgetv2type="TextEdit" name="country_id">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="region_id">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="locust_type_id">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="name">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="percent">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
</edittypes>
<renderer-v2 forceraster="0" symbollevels="0" type="RuleRenderer" enableorderby="0">
<rules key="{d1a60575-15b9-4869-b52b-df5b4d4f16de}">
<rule filter=" &quot;percent&quot; > 15" key="{659cc803-83ee-4573-a115-4a5c3cfc7629}" symbol="0" label=">15% trt('Increase')"/>
<rule filter=" &quot;percent&quot; &lt; 15 AND &quot;percent&quot; > -15" key="{9ceb56b1-6469-4f8a-9527-51a1d2151967}" symbol="2" label=">=15% trt('and') &lt;=15% trt('On_the_same_level')"/>
<rule filter=" &quot;percent&quot; &lt; -15" key="{b6d444f7-e753-4650-a049-92c6e40dd0bc}" symbol="1" label="&lt;15% trt('Decrease')"/>
<rule filter=" &quot;percent&quot; is null" key="{c017f2c4-f56f-48a8-bbc4-987fa0f239a9}" symbol="3" label="trt('No_data')"/>
</rules>
<symbols>
<symbol alpha="1" clip_to_extent="1" type="fill" name="0">
<layer pass="0" class="SimpleFill" locked="0">
<prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="color" v="255,0,0,102"/>
<prop k="joinstyle" v="bevel"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,255,128"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0.26"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="style" v="solid"/>
</layer>
</symbol>
<symbol alpha="1" clip_to_extent="1" type="fill" name="2">
<layer pass="0" class="SimpleFill" locked="0">
<prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="color" v="255,238,0,102"/>
<prop k="joinstyle" v="bevel"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,255,128"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0.26"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="style" v="solid"/>
</layer>
</symbol>
<symbol alpha="1" clip_to_extent="1" type="fill" name="1">
<layer pass="0" class="SimpleFill" locked="0">
<prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="color" v="0,255,76,102"/>
<prop k="joinstyle" v="bevel"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,255,128"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0.26"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="style" v="solid"/>
</layer>
</symbol>
<symbol alpha="1" clip_to_extent="1" type="fill" name="3">
<layer pass="0" class="SimpleFill" locked="0">
<prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="color" v="150,150,150,102"/>
<prop k="joinstyle" v="bevel"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,0,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0.26"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="style" v="solid"/>
</layer>
</symbol>
</symbols>
</renderer-v2>
<labeling type="simple"/>
<customproperties>
<property key="embeddedWidgets/count" value="0"/>
<property key="labeling" value="pal"/>
<property key="labeling/addDirectionSymbol" value="false"/>
<property key="labeling/angleOffset" value="0"/>
<property key="labeling/blendMode" value="0"/>
<property key="labeling/bufferBlendMode" value="0"/>
<property key="labeling/bufferColorA" value="255"/>
<property key="labeling/bufferColorB" value="255"/>
<property key="labeling/bufferColorG" value="255"/>
<property key="labeling/bufferColorR" value="255"/>
<property key="labeling/bufferDraw" value="true"/>
<property key="labeling/bufferJoinStyle" value="128"/>
<property key="labeling/bufferNoFill" value="false"/>
<property key="labeling/bufferSize" value="1"/>
<property key="labeling/bufferSizeInMapUnits" value="false"/>
<property key="labeling/bufferSizeMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/bufferTransp" value="0"/>
<property key="labeling/centroidInside" value="true"/>
<property key="labeling/centroidWhole" value="false"/>
<property key="labeling/dataDefined/CentroidWhole" value="0~~0~~~~name"/>
<property key="labeling/dataDefined/ScaleVisibility" value="0~~0~~~~name"/>
<property key="labeling/decimals" value="3"/>
<property key="labeling/displayAll" value="true"/>
<property key="labeling/dist" value="0"/>
<property key="labeling/distInMapUnits" value="true"/>
<property key="labeling/distMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/drawLabels" value="true"/>
<property key="labeling/enabled" value="true"/>
<property key="labeling/fieldName" value="&quot;name&quot;||'\n'|| &quot;percent&quot;||'%' "/>
<property key="labeling/fitInPolygonOnly" value="true"/>
<property key="labeling/fontCapitals" value="4"/>
<property key="labeling/fontFamily" value="Arial"/>
<property key="labeling/fontItalic" value="false"/>
<property key="labeling/fontLetterSpacing" value="0"/>
<property key="labeling/fontLimitPixelSize" value="false"/>
<property key="labeling/fontMaxPixelSize" value="10000"/>
<property key="labeling/fontMinPixelSize" value="3"/>
<property key="labeling/fontSize" value="7"/>
<property key="labeling/fontSizeInMapUnits" value="false"/>
<property key="labeling/fontSizeMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/fontStrikeout" value="false"/>
<property key="labeling/fontUnderline" value="false"/>
<property key="labeling/fontWeight" value="75"/>
<property key="labeling/fontWordSpacing" value="0"/>
<property key="labeling/formatNumbers" value="false"/>
<property key="labeling/isExpression" value="true"/>
<property key="labeling/labelOffsetInMapUnits" value="false"/>
<property key="labeling/labelOffsetMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/labelPerPart" value="false"/>
<property key="labeling/leftDirectionSymbol" value="&lt;"/>
<property key="labeling/limitNumLabels" value="false"/>
<property key="labeling/maxCurvedCharAngleIn" value="25"/>
<property key="labeling/maxCurvedCharAngleOut" value="-25"/>
<property key="labeling/maxNumLabels" value="2000"/>
<property key="labeling/mergeLines" value="false"/>
<property key="labeling/minFeatureSize" value="3"/>
<property key="labeling/multilineAlign" value="4294967295"/>
<property key="labeling/multilineHeight" value="1"/>
<property key="labeling/namedStyle" value="Bold"/>
<property key="labeling/obstacle" value="false"/>
<property key="labeling/obstacleFactor" value="0"/>
<property key="labeling/obstacleType" value="0"/>
<property key="labeling/offsetType" value="0"/>
<property key="labeling/placeDirectionSymbol" value="0"/>
<property key="labeling/placement" value="1"/>
<property key="labeling/placementFlags" value="7"/>
<property key="labeling/plussign" value="false"/>
<property key="labeling/predefinedPositionOrder" value="TR,TL,BR,BL,R,L,TSR,BSR"/>
<property key="labeling/preserveRotation" value="true"/>
<property key="labeling/previewBkgrdColor" value="#ffffff"/>
<property key="labeling/priority" value="5"/>
<property key="labeling/quadOffset" value="1"/>
<property key="labeling/repeatDistance" value="0"/>
<property key="labeling/repeatDistanceMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/repeatDistanceUnit" value="1"/>
<property key="labeling/reverseDirectionSymbol" value="false"/>
<property key="labeling/rightDirectionSymbol" value=">"/>
<property key="labeling/scaleMax" value="35000000"/>
<property key="labeling/scaleMin" value="1"/>
<property key="labeling/scaleVisibility" value="true"/>
<property key="labeling/shadowBlendMode" value="6"/>
<property key="labeling/shadowColorB" value="0"/>
<property key="labeling/shadowColorG" value="0"/>
<property key="labeling/shadowColorR" value="0"/>
<property key="labeling/shadowDraw" value="false"/>
<property key="labeling/shadowOffsetAngle" value="135"/>
<property key="labeling/shadowOffsetDist" value="1"/>
<property key="labeling/shadowOffsetGlobal" value="true"/>
<property key="labeling/shadowOffsetMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/shadowOffsetUnits" value="1"/>
<property key="labeling/shadowRadius" value="1.5"/>
<property key="labeling/shadowRadiusAlphaOnly" value="false"/>
<property key="labeling/shadowRadiusMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/shadowRadiusUnits" value="1"/>
<property key="labeling/shadowScale" value="100"/>
<property key="labeling/shadowTransparency" value="30"/>
<property key="labeling/shadowUnder" value="0"/>
<property key="labeling/shapeBlendMode" value="0"/>
<property key="labeling/shapeBorderColorA" value="255"/>
<property key="labeling/shapeBorderColorB" value="128"/>
<property key="labeling/shapeBorderColorG" value="128"/>
<property key="labeling/shapeBorderColorR" value="128"/>
<property key="labeling/shapeBorderWidth" value="0"/>
<property key="labeling/shapeBorderWidthMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/shapeBorderWidthUnits" value="1"/>
<property key="labeling/shapeDraw" value="false"/>
<property key="labeling/shapeFillColorA" value="255"/>
<property key="labeling/shapeFillColorB" value="255"/>
<property key="labeling/shapeFillColorG" value="255"/>
<property key="labeling/shapeFillColorR" value="255"/>
<property key="labeling/shapeJoinStyle" value="64"/>
<property key="labeling/shapeOffsetMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/shapeOffsetUnits" value="1"/>
<property key="labeling/shapeOffsetX" value="0"/>
<property key="labeling/shapeOffsetY" value="0"/>
<property key="labeling/shapeRadiiMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/shapeRadiiUnits" value="1"/>
<property key="labeling/shapeRadiiX" value="0"/>
<property key="labeling/shapeRadiiY" value="0"/>
<property key="labeling/shapeRotation" value="0"/>
<property key="labeling/shapeRotationType" value="0"/>
<property key="labeling/shapeSVGFile" value=""/>
<property key="labeling/shapeSizeMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/shapeSizeType" value="0"/>
<property key="labeling/shapeSizeUnits" value="1"/>
<property key="labeling/shapeSizeX" value="0"/>
<property key="labeling/shapeSizeY" value="0"/>
<property key="labeling/shapeTransparency" value="0"/>
<property key="labeling/shapeType" value="0"/>
<property key="labeling/substitutions" value="&lt;substitutions/>"/>
<property key="labeling/textColorA" value="255"/>
<property key="labeling/textColorB" value="0"/>
<property key="labeling/textColorG" value="0"/>
<property key="labeling/textColorR" value="0"/>
<property key="labeling/textTransp" value="0"/>
<property key="labeling/upsidedownLabels" value="2"/>
<property key="labeling/useSubstitutions" value="false"/>
<property key="labeling/wrapChar" value=""/>
<property key="labeling/xOffset" value="0"/>
<property key="labeling/yOffset" value="0"/>
<property key="labeling/zIndex" value="1"/>
<property key="variableNames"/>
<property key="variableValues"/>
</customproperties>
<blendMode>0</blendMode>
<featureBlendMode>0</featureBlendMode>
<layerTransparency>0</layerTransparency>
<displayfield>name</displayfield>
<label>0</label>
<labelattributes>
<label fieldname="" text="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"/>
<family fieldname="" name="MS Shell Dlg 2"/>
<size fieldname="" units="pt" value="12"/>
<bold fieldname="" on="0"/>
<italic fieldname="" on="0"/>
<underline fieldname="" on="0"/>
<strikeout fieldname="" on="0"/>
<color fieldname="" red="0" blue="0" green="0"/>
<x fieldname=""/>
<y fieldname=""/>
<offset x="0" y="0" units="pt" yfieldname="" xfieldname=""/>
<angle fieldname="" value="0" auto="0"/>
<alignment fieldname="" value="center"/>
<buffercolor fieldname="" red="255" blue="255" green="255"/>
<buffersize fieldname="" units="pt" value="1"/>
<bufferenabled fieldname="" on=""/>
<multilineenabled fieldname="" on=""/>
<selectedonly on=""/>
</labelattributes>
<SingleCategoryDiagramRenderer diagramType="Histogram" sizeLegend="0" attributeLegend="1">
<DiagramCategory penColor="#000000" labelPlacementMethod="XHeight" penWidth="0" diagramOrientation="Up" sizeScale="0,0,0,0,0,0" minimumSize="0" barWidth="5" penAlpha="255" maxScaleDenominator="1e+08" backgroundColor="#ffffff" transparency="0" width="15" scaleDependency="Area" backgroundAlpha="255" angleOffset="1440" scaleBasedVisibility="0" enabled="0" height="15" lineSizeScale="0,0,0,0,0,0" sizeType="MM" lineSizeType="MM" minScaleDenominator="inf">
<fontProperties description="MS Shell Dlg 2,7.8,-1,5,50,0,0,0,0,0" style=""/>
<attribute field="" color="#000000" label=""/>
</DiagramCategory>
<symbol alpha="1" clip_to_extent="1" type="marker" name="sizeSymbol">
<layer pass="0" class="SimpleMarker" locked="0">
<prop k="angle" v="0"/>
<prop k="color" v="255,0,0,255"/>
<prop k="horizontal_anchor_point" v="1"/>
<prop k="joinstyle" v="bevel"/>
<prop k="name" v="circle"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,0,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0"/>
<prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="scale_method" v="diameter"/>
<prop k="size" v="2"/>
<prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="size_unit" v="MM"/>
<prop k="vertical_anchor_point" v="1"/>
</layer>
</symbol>
</SingleCategoryDiagramRenderer>
<DiagramLayerSettings yPosColumn="-1" showColumn="-1" linePlacementFlags="10" placement="0" dist="0" xPosColumn="-1" priority="0" obstacle="0" zIndex="0" showAll="1"/>
<annotationform>.</annotationform>
<aliases>
<alias field="country_id" index="0" name=""/>
<alias field="region_id" index="1" name=""/>
<alias field="locust_type_id" index="2" name=""/>
<alias field="name" index="3" name=""/>
<alias field="percent" index="4" name=""/>
</aliases>
<excludeAttributesWMS/>
<excludeAttributesWFS/>
<attributeactions default="-1"/>
<attributetableconfig actionWidgetStyle="dropDown" sortExpression="" sortOrder="762605167">
<columns>
<column width="-1" hidden="0" type="field" name="country_id"/>
<column width="-1" hidden="0" type="field" name="region_id"/>
<column width="-1" hidden="0" type="field" name="locust_type_id"/>
<column width="-1" hidden="0" type="field" name="name"/>
<column width="-1" hidden="0" type="field" name="percent"/>
<column width="-1" hidden="1" type="actions"/>
</columns>
</attributetableconfig>
<editform>.</editform>
<editforminit/>
<editforminitcodesource>0</editforminitcodesource>
<editforminitfilepath>.</editforminitfilepath>
<editforminitcode><![CDATA[# -*- coding: utf-8 -*-
"""
QGIS forms can have a Python function that is called when the form is
opened.
Use this function to add extra logic to your forms.
Enter the name of the function in the "Python Init function"
field.
An example follows:
"""
from qgis.PyQt.QtWidgets import QWidget
def my_form_open(dialog, layer, feature):
geom = feature.geometry()
control = dialog.findChild(QWidget, "MyLineEdit")
]]></editforminitcode>
<featformsuppress>0</featformsuppress>
<editorlayout>generatedlayout</editorlayout>
<widgets/>
<conditionalstyles>
<rowstyles/>
<fieldstyles/>
</conditionalstyles>
<defaults>
<default field="country_id" expression=""/>
<default field="region_id" expression=""/>
<default field="locust_type_id" expression=""/>
<default field="name" expression=""/>
<default field="percent" expression=""/>
</defaults>
<previewExpression></previewExpression>
</maplayer>
</projectlayers>
<properties>
<Measurement>
<DistanceUnits type="QString">meters</DistanceUnits>
<AreaUnits type="QString">m2</AreaUnits>
</Measurement>
<SpatialRefSys>
<ProjectCRSProj4String type="QString">+proj=longlat +datum=WGS84 +no_defs</ProjectCRSProj4String>
<ProjectCrs type="QString">EPSG:4326</ProjectCrs>
<ProjectCRSID type="int">3452</ProjectCRSID>
<ProjectionsEnabled type="int">1</ProjectionsEnabled>
</SpatialRefSys>
<PAL>
<SearchMethod type="int">0</SearchMethod>
<ShowingShadowRects type="bool">false</ShowingShadowRects>
<CandidatesPolygon type="int">30</CandidatesPolygon>
<ShowingCandidates type="bool">false</ShowingCandidates>
<DrawRectOnly type="bool">false</DrawRectOnly>
<ShowingPartialsLabels type="bool">true</ShowingPartialsLabels>
<CandidatesLine type="int">50</CandidatesLine>
<CandidatesPoint type="int">16</CandidatesPoint>
<ShowingAllLabels type="bool">true</ShowingAllLabels>
<DrawOutlineLabels type="bool">false</DrawOutlineLabels>
</PAL>
<Paths>
<Absolute type="bool">false</Absolute>
</Paths>
<Gui>
<SelectionColorBluePart type="int">0</SelectionColorBluePart>
<CanvasColorGreenPart type="int">255</CanvasColorGreenPart>
<CanvasColorRedPart type="int">255</CanvasColorRedPart>
<SelectionColorRedPart type="int">255</SelectionColorRedPart>
<SelectionColorAlphaPart type="int">255</SelectionColorAlphaPart>
<SelectionColorGreenPart type="int">255</SelectionColorGreenPart>
<CanvasColorBluePart type="int">255</CanvasColorBluePart>
</Gui>
<Digitizing>
<DefaultSnapToleranceUnit type="int">2</DefaultSnapToleranceUnit>
<LayerSnappingList type="QStringList">
<value>view_frmlocustinfo_p2r_${year}20170221133600806</value>
</LayerSnappingList>
<LayerSnappingEnabledList type="QStringList">
<value>disabled</value>
</LayerSnappingEnabledList>
<SnappingMode type="QString">current_layer</SnappingMode>
<AvoidIntersectionsList type="QStringList"/>
<LayerSnappingToleranceUnitList type="QStringList">
<value>2</value>
</LayerSnappingToleranceUnitList>
<LayerSnapToList type="QStringList">
<value>to_vertex_and_segment</value>
</LayerSnapToList>
<DefaultSnapType type="QString">off</DefaultSnapType>
<DefaultSnapTolerance type="double">0</DefaultSnapTolerance>
<LayerSnappingToleranceList type="QStringList">
<value>0.000000</value>
</LayerSnappingToleranceList>
</Digitizing>
<PositionPrecision>
<DecimalPlaces type="int">2</DecimalPlaces>
<Automatic type="bool">true</Automatic>
</PositionPrecision>
<Legend>
<filterByMap type="bool">false</filterByMap>
</Legend>
</properties>
<visibility-presets/>
</qgis>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,508 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis projectname="" version="2.18.3">
<title></title>
<autotransaction active="0"/>
<evaluateDefaultValues active="0"/>
<layer-tree-group expanded="1" checked="Qt::PartiallyChecked" name="">
<customproperties/>
<layer-tree-layer expanded="1" checked="Qt::Checked" id="view_frmlocustinfo_p3r_201520170221141235646" name="trt('Maps_of_treated_areas_above_ET')">
<customproperties/>
</layer-tree-layer>
<layer-tree-layer expanded="1" providerKey="" checked="Qt::Unchecked" id="OpenLayers_plugin_layer20170821155911549" source="" name="Bing Aerial with labels">
<customproperties/>
</layer-tree-layer>
</layer-tree-group>
<relations/>
<mapcanvas>
<units>meters</units>
<extent>
<xmin>4606484.6726676719263196</xmin>
<ymin>3728012.39886604063212872</ymin>
<xmax>9866330.61264913156628609</xmax>
<ymax>8074944.57324538938701153</ymax>
</extent>
<rotation>0</rotation>
<projections>1</projections>
<destinationsrs>
<spatialrefsys>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</destinationsrs>
<rendermaptile>0</rendermaptile>
<layer_coordinate_transform_info>
<layer_coordinate_transform destAuthId="EPSG:3857" srcAuthId="EPSG:4326" srcDatumTransform="-1" destDatumTransform="-1" layerid="view_frmlocustinfo_p3r_201520170221141235646"/>
<layer_coordinate_transform destAuthId="EPSG:3857" srcAuthId="EPSG:3857" srcDatumTransform="-1" destDatumTransform="-1" layerid="OpenLayers_plugin_layer20170821155911549"/>
</layer_coordinate_transform_info>
</mapcanvas>
<layer-tree-canvas>
<custom-order enabled="0">
<item>view_frmlocustinfo_p3r_201520170221141235646</item>
<item>OpenStreetMap20170221162957823</item>
</custom-order>
</layer-tree-canvas>
<legend updateDrawingOrder="true">
<legendlayer drawingOrder="-1" open="true" checked="Qt::Checked" name="trt('Maps_of_treated_areas_above_ET')" showFeatureCount="0">
<filegroup open="true" hidden="false">
<legendlayerfile isInOverview="0" layerid="view_frmlocustinfo_p3r_201520170221141235646" visible="1"/>
</filegroup>
</legendlayer>
<legendlayer drawingOrder="-1" open="true" checked="Qt::Unchecked" name="Bing Aerial with labels" showFeatureCount="0">
<filegroup open="true" hidden="false">
<legendlayerfile isInOverview="0" layerid="OpenLayers_plugin_layer20170821155911549" visible="0"/>
</filegroup>
</legendlayer>
</legend>
<projectlayers>
<maplayer minimumScale="0" maximumScale="1e+08" type="plugin" hasScaleBasedVisibilityFlag="0" name="openlayers">
<extent>
<xmin>-20037508.33999999985098839</xmin>
<ymin>-20037508.33999999985098839</ymin>
<xmax>20037508.33999999985098839</xmax>
<ymax>20037508.33999999985098839</ymax>
</extent>
<id>OpenLayers_plugin_layer20170821155911549</id>
<datasource></datasource>
<keywordList>
<value></value>
</keywordList>
<layername>Bing Aerial with labels</layername>
<srs>
<spatialrefsys>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</srs>
<customproperties>
<property key="ol_layer_type" value="Bing Aerial with labels"/>
</customproperties>
</maplayer>
<maplayer simplifyAlgorithm="0" minimumScale="0" maximumScale="1e+08" simplifyDrawingHints="1" readOnly="0" minLabelScale="0" maxLabelScale="1e+08" simplifyDrawingTol="1" geometry="Polygon" simplifyMaxScale="1" type="vector" hasScaleBasedVisibilityFlag="0" simplifyLocal="1" scaleBasedLabelVisibilityFlag="0">
<extent>
<xmin>-180</xmin>
<ymin>38.39295510000000178</ymin>
<xmax>180</xmax>
<ymax>82.05862320000009902</ymax>
</extent>
<id>view_frmlocustinfo_p3r_201520170221141235646</id>
<datasource>dbname='CCALM' host=ccalm.org port=5432 user='guest' password='B2C0D5C60590' sslmode=disable key='region_id' estimatedmetadata=true srid=4326 type=MultiPolygon table="main"."view_frmlocustinfo_p3r_${year}" (geom) sql=${sql}</datasource>
<keywordList>
<value></value>
</keywordList>
<layername>trt('Maps_of_treated_areas_above_ET')</layername>
<srs>
<spatialrefsys>
<proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
<srsid>3452</srsid>
<srid>4326</srid>
<authid>EPSG:4326</authid>
<description>WGS 84</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</srs>
<provider encoding="System">postgres</provider>
<previewExpression>COALESCE( "name", '&lt;NULL>' )</previewExpression>
<vectorjoins/>
<layerDependencies/>
<expressionfields/>
<defaults>
<default field="country_id" expression=""/>
<default field="region_id" expression=""/>
<default field="locust_type_id" expression=""/>
<default field="name" expression=""/>
<default field="percent" expression=""/>
</defaults>
<map-layer-style-manager current="">
<map-layer-style name=""/>
</map-layer-style-manager>
<edittypes>
<edittype widgetv2type="TextEdit" name="country_id">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="region_id">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="locust_type_id">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="name">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="percent">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
</edittypes>
<renderer-v2 forceraster="0" symbollevels="0" type="RuleRenderer" enableorderby="0">
<rules key="{4228a59e-abca-4465-b39b-83a899e32c5b}">
<rule filter=" &quot;percent&quot; > 15" key="{fad70a76-868e-45d5-a7d0-88e1b6b670c6}" symbol="0" label=">15% trt('Increase')"/>
<rule filter=" &quot;percent&quot; &lt; 15 AND &quot;percent&quot; > -15" key="{52cc3773-b4d3-4790-aaf0-eee5e70f5cad}" symbol="2" label=">=15% trt('and') &lt;=15% trt('On_the_same_level')"/>
<rule filter=" &quot;percent&quot; &lt; -15" key="{f9d3135a-22bc-481f-96a9-ea2743e1bb3c}" symbol="1" label="&lt;15% trt('Decrease')"/>
<rule filter=" &quot;percent&quot; is null" key="{c017f2c4-f56f-48a8-bbc4-987fa0f239a9}" symbol="3" label="trt('No_data')"/>
</rules>
<symbols>
<symbol alpha="0.960784" clip_to_extent="1" type="fill" name="0">
<layer pass="0" class="SimpleFill" locked="0">
<prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="color" v="255,0,0,77"/>
<prop k="joinstyle" v="bevel"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,255,128"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0.26"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="style" v="solid"/>
</layer>
</symbol>
<symbol alpha="1" clip_to_extent="1" type="fill" name="2">
<layer pass="0" class="SimpleFill" locked="0">
<prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="color" v="255,238,0,77"/>
<prop k="joinstyle" v="bevel"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,255,128"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0.26"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="style" v="solid"/>
</layer>
</symbol>
<symbol alpha="1" clip_to_extent="1" type="fill" name="1">
<layer pass="0" class="SimpleFill" locked="0">
<prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="color" v="0,255,76,77"/>
<prop k="joinstyle" v="bevel"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,255,128"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0.26"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="style" v="solid"/>
</layer>
</symbol>
<symbol alpha="1" clip_to_extent="1" type="fill" name="3">
<layer pass="0" class="SimpleFill" locked="0">
<prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="color" v="150,150,150,102"/>
<prop k="joinstyle" v="bevel"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,0,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0.26"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="style" v="solid"/>
</layer>
</symbol>
</symbols>
</renderer-v2>
<labeling type="simple"/>
<customproperties>
<property key="embeddedWidgets/count" value="0"/>
<property key="labeling" value="pal"/>
<property key="labeling/addDirectionSymbol" value="false"/>
<property key="labeling/angleOffset" value="0"/>
<property key="labeling/blendMode" value="0"/>
<property key="labeling/bufferBlendMode" value="0"/>
<property key="labeling/bufferColorA" value="255"/>
<property key="labeling/bufferColorB" value="255"/>
<property key="labeling/bufferColorG" value="255"/>
<property key="labeling/bufferColorR" value="255"/>
<property key="labeling/bufferDraw" value="true"/>
<property key="labeling/bufferJoinStyle" value="128"/>
<property key="labeling/bufferNoFill" value="false"/>
<property key="labeling/bufferSize" value="1"/>
<property key="labeling/bufferSizeInMapUnits" value="false"/>
<property key="labeling/bufferSizeMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/bufferTransp" value="0"/>
<property key="labeling/centroidInside" value="true"/>
<property key="labeling/centroidWhole" value="false"/>
<property key="labeling/decimals" value="3"/>
<property key="labeling/displayAll" value="false"/>
<property key="labeling/dist" value="0"/>
<property key="labeling/distInMapUnits" value="false"/>
<property key="labeling/distMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/drawLabels" value="true"/>
<property key="labeling/enabled" value="true"/>
<property key="labeling/fieldName" value=" &quot;name&quot;||'\n'||&quot;percent&quot; || '%'"/>
<property key="labeling/fitInPolygonOnly" value="true"/>
<property key="labeling/fontCapitals" value="0"/>
<property key="labeling/fontFamily" value="Arial"/>
<property key="labeling/fontItalic" value="false"/>
<property key="labeling/fontLetterSpacing" value="0"/>
<property key="labeling/fontLimitPixelSize" value="false"/>
<property key="labeling/fontMaxPixelSize" value="10000"/>
<property key="labeling/fontMinPixelSize" value="3"/>
<property key="labeling/fontSize" value="7"/>
<property key="labeling/fontSizeInMapUnits" value="false"/>
<property key="labeling/fontSizeMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/fontStrikeout" value="false"/>
<property key="labeling/fontUnderline" value="false"/>
<property key="labeling/fontWeight" value="75"/>
<property key="labeling/fontWordSpacing" value="0"/>
<property key="labeling/formatNumbers" value="false"/>
<property key="labeling/isExpression" value="true"/>
<property key="labeling/labelOffsetInMapUnits" value="false"/>
<property key="labeling/labelOffsetMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/labelPerPart" value="false"/>
<property key="labeling/leftDirectionSymbol" value="&lt;"/>
<property key="labeling/limitNumLabels" value="false"/>
<property key="labeling/maxCurvedCharAngleIn" value="25"/>
<property key="labeling/maxCurvedCharAngleOut" value="-25"/>
<property key="labeling/maxNumLabels" value="2000"/>
<property key="labeling/mergeLines" value="false"/>
<property key="labeling/minFeatureSize" value="0"/>
<property key="labeling/multilineAlign" value="4294967295"/>
<property key="labeling/multilineHeight" value="1"/>
<property key="labeling/namedStyle" value="Bold"/>
<property key="labeling/obstacle" value="false"/>
<property key="labeling/obstacleFactor" value="1"/>
<property key="labeling/obstacleType" value="0"/>
<property key="labeling/offsetType" value="0"/>
<property key="labeling/placeDirectionSymbol" value="0"/>
<property key="labeling/placement" value="1"/>
<property key="labeling/placementFlags" value="10"/>
<property key="labeling/plussign" value="false"/>
<property key="labeling/predefinedPositionOrder" value="TR,TL,BR,BL,R,L,TSR,BSR"/>
<property key="labeling/preserveRotation" value="false"/>
<property key="labeling/previewBkgrdColor" value="#ffffff"/>
<property key="labeling/priority" value="0"/>
<property key="labeling/quadOffset" value="4"/>
<property key="labeling/repeatDistance" value="0"/>
<property key="labeling/repeatDistanceMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/repeatDistanceUnit" value="1"/>
<property key="labeling/reverseDirectionSymbol" value="false"/>
<property key="labeling/rightDirectionSymbol" value=">"/>
<property key="labeling/scaleMax" value="35000000"/>
<property key="labeling/scaleMin" value="1"/>
<property key="labeling/scaleVisibility" value="true"/>
<property key="labeling/shadowBlendMode" value="6"/>
<property key="labeling/shadowColorB" value="0"/>
<property key="labeling/shadowColorG" value="0"/>
<property key="labeling/shadowColorR" value="0"/>
<property key="labeling/shadowDraw" value="false"/>
<property key="labeling/shadowOffsetAngle" value="135"/>
<property key="labeling/shadowOffsetDist" value="1"/>
<property key="labeling/shadowOffsetGlobal" value="true"/>
<property key="labeling/shadowOffsetMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/shadowOffsetUnits" value="1"/>
<property key="labeling/shadowRadius" value="1.5"/>
<property key="labeling/shadowRadiusAlphaOnly" value="false"/>
<property key="labeling/shadowRadiusMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/shadowRadiusUnits" value="1"/>
<property key="labeling/shadowScale" value="100"/>
<property key="labeling/shadowTransparency" value="30"/>
<property key="labeling/shadowUnder" value="0"/>
<property key="labeling/shapeBlendMode" value="0"/>
<property key="labeling/shapeBorderColorA" value="255"/>
<property key="labeling/shapeBorderColorB" value="128"/>
<property key="labeling/shapeBorderColorG" value="128"/>
<property key="labeling/shapeBorderColorR" value="128"/>
<property key="labeling/shapeBorderWidth" value="0"/>
<property key="labeling/shapeBorderWidthMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/shapeBorderWidthUnits" value="1"/>
<property key="labeling/shapeDraw" value="false"/>
<property key="labeling/shapeFillColorA" value="255"/>
<property key="labeling/shapeFillColorB" value="255"/>
<property key="labeling/shapeFillColorG" value="255"/>
<property key="labeling/shapeFillColorR" value="255"/>
<property key="labeling/shapeJoinStyle" value="64"/>
<property key="labeling/shapeOffsetMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/shapeOffsetUnits" value="1"/>
<property key="labeling/shapeOffsetX" value="0"/>
<property key="labeling/shapeOffsetY" value="0"/>
<property key="labeling/shapeRadiiMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/shapeRadiiUnits" value="1"/>
<property key="labeling/shapeRadiiX" value="0"/>
<property key="labeling/shapeRadiiY" value="0"/>
<property key="labeling/shapeRotation" value="0"/>
<property key="labeling/shapeRotationType" value="0"/>
<property key="labeling/shapeSVGFile" value=""/>
<property key="labeling/shapeSizeMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/shapeSizeType" value="0"/>
<property key="labeling/shapeSizeUnits" value="1"/>
<property key="labeling/shapeSizeX" value="0"/>
<property key="labeling/shapeSizeY" value="0"/>
<property key="labeling/shapeTransparency" value="0"/>
<property key="labeling/shapeType" value="0"/>
<property key="labeling/substitutions" value="&lt;substitutions/>"/>
<property key="labeling/textColorA" value="255"/>
<property key="labeling/textColorB" value="0"/>
<property key="labeling/textColorG" value="0"/>
<property key="labeling/textColorR" value="0"/>
<property key="labeling/textTransp" value="0"/>
<property key="labeling/upsidedownLabels" value="0"/>
<property key="labeling/useSubstitutions" value="false"/>
<property key="labeling/wrapChar" value=""/>
<property key="labeling/xOffset" value="0.2"/>
<property key="labeling/yOffset" value="0.2"/>
<property key="labeling/zIndex" value="0"/>
<property key="variableNames"/>
<property key="variableValues"/>
</customproperties>
<blendMode>0</blendMode>
<featureBlendMode>0</featureBlendMode>
<layerTransparency>0</layerTransparency>
<displayfield>name</displayfield>
<label>0</label>
<labelattributes>
<label fieldname="" text="Подпись"/>
<family fieldname="" name="MS Shell Dlg 2"/>
<size fieldname="" units="pt" value="12"/>
<bold fieldname="" on="0"/>
<italic fieldname="" on="0"/>
<underline fieldname="" on="0"/>
<strikeout fieldname="" on="0"/>
<color fieldname="" red="0" blue="0" green="0"/>
<x fieldname=""/>
<y fieldname=""/>
<offset x="0" y="0" units="pt" yfieldname="" xfieldname=""/>
<angle fieldname="" value="0" auto="0"/>
<alignment fieldname="" value="center"/>
<buffercolor fieldname="" red="255" blue="255" green="255"/>
<buffersize fieldname="" units="pt" value="1"/>
<bufferenabled fieldname="" on=""/>
<multilineenabled fieldname="" on=""/>
<selectedonly on=""/>
</labelattributes>
<SingleCategoryDiagramRenderer diagramType="Histogram" sizeLegend="0" attributeLegend="1">
<DiagramCategory penColor="#000000" labelPlacementMethod="XHeight" penWidth="0" diagramOrientation="Up" sizeScale="0,0,0,0,0,0" minimumSize="0" barWidth="5" penAlpha="255" maxScaleDenominator="1e+08" backgroundColor="#ffffff" transparency="0" width="15" scaleDependency="Area" backgroundAlpha="255" angleOffset="1440" scaleBasedVisibility="0" enabled="0" height="15" lineSizeScale="0,0,0,0,0,0" sizeType="MM" lineSizeType="MM" minScaleDenominator="inf">
<fontProperties description="MS Shell Dlg 2,7.8,-1,5,50,0,0,0,0,0" style=""/>
<attribute field="" color="#000000" label=""/>
</DiagramCategory>
<symbol alpha="1" clip_to_extent="1" type="marker" name="sizeSymbol">
<layer pass="0" class="SimpleMarker" locked="0">
<prop k="angle" v="0"/>
<prop k="color" v="255,0,0,255"/>
<prop k="horizontal_anchor_point" v="1"/>
<prop k="joinstyle" v="bevel"/>
<prop k="name" v="circle"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,0,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0"/>
<prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="scale_method" v="diameter"/>
<prop k="size" v="2"/>
<prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="size_unit" v="MM"/>
<prop k="vertical_anchor_point" v="1"/>
</layer>
</symbol>
</SingleCategoryDiagramRenderer>
<DiagramLayerSettings yPosColumn="-1" showColumn="-1" linePlacementFlags="10" placement="0" dist="0" xPosColumn="-1" priority="0" obstacle="0" zIndex="0" showAll="1"/>
<annotationform>.</annotationform>
<aliases>
<alias field="country_id" index="0" name=""/>
<alias field="region_id" index="1" name=""/>
<alias field="locust_type_id" index="2" name=""/>
<alias field="name" index="3" name=""/>
<alias field="percent" index="4" name=""/>
</aliases>
<excludeAttributesWMS/>
<excludeAttributesWFS/>
<attributeactions default="-1"/>
<attributetableconfig actionWidgetStyle="dropDown" sortExpression="&quot;name&quot;" sortOrder="0">
<columns>
<column width="-1" hidden="0" type="field" name="country_id"/>
<column width="-1" hidden="0" type="field" name="region_id"/>
<column width="-1" hidden="0" type="field" name="locust_type_id"/>
<column width="394" hidden="0" type="field" name="name"/>
<column width="212" hidden="0" type="field" name="percent"/>
<column width="-1" hidden="1" type="actions"/>
</columns>
</attributetableconfig>
<editform>.</editform>
<editforminit/>
<editforminitcodesource>0</editforminitcodesource>
<editforminitfilepath>.</editforminitfilepath>
<editforminitcode><![CDATA[# -*- coding: utf-8 -*-
"""
QGIS forms can have a Python function that is called when the form is
opened.
Use this function to add extra logic to your forms.
Enter the name of the function in the "Python Init function"
field.
An example follows:
"""
from qgis.PyQt.QtWidgets import QWidget
def my_form_open(dialog, layer, feature):
geom = feature.geometry()
control = dialog.findChild(QWidget, "MyLineEdit")
]]></editforminitcode>
<featformsuppress>0</featformsuppress>
<editorlayout>generatedlayout</editorlayout>
<widgets/>
<conditionalstyles>
<rowstyles/>
<fieldstyles/>
</conditionalstyles>
</maplayer>
</projectlayers>
<properties>
<Measurement>
<DistanceUnits type="QString">meters</DistanceUnits>
<AreaUnits type="QString">m2</AreaUnits>
</Measurement>
<SpatialRefSys>
<ProjectCRSProj4String type="QString">+proj=longlat +datum=WGS84 +no_defs</ProjectCRSProj4String>
<ProjectCrs type="QString">EPSG:4326</ProjectCrs>
<ProjectCRSID type="int">3452</ProjectCRSID>
<ProjectionsEnabled type="int">1</ProjectionsEnabled>
</SpatialRefSys>
<Paths>
<Absolute type="bool">false</Absolute>
</Paths>
<Gui>
<SelectionColorBluePart type="int">0</SelectionColorBluePart>
<CanvasColorGreenPart type="int">255</CanvasColorGreenPart>
<CanvasColorRedPart type="int">255</CanvasColorRedPart>
<SelectionColorRedPart type="int">255</SelectionColorRedPart>
<SelectionColorAlphaPart type="int">255</SelectionColorAlphaPart>
<SelectionColorGreenPart type="int">255</SelectionColorGreenPart>
<CanvasColorBluePart type="int">255</CanvasColorBluePart>
</Gui>
<Digitizing>
<DefaultSnapToleranceUnit type="int">2</DefaultSnapToleranceUnit>
<SnappingMode type="QString">current_layer</SnappingMode>
<DefaultSnapType type="QString">off</DefaultSnapType>
<DefaultSnapTolerance type="double">0</DefaultSnapTolerance>
</Digitizing>
<PositionPrecision>
<DecimalPlaces type="int">2</DecimalPlaces>
<Automatic type="bool">true</Automatic>
</PositionPrecision>
<Legend>
<filterByMap type="bool">false</filterByMap>
</Legend>
</properties>
<visibility-presets/>
</qgis>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,509 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis projectname="" version="2.18.3">
<title></title>
<autotransaction active="0"/>
<evaluateDefaultValues active="0"/>
<layer-tree-group expanded="1" checked="Qt::PartiallyChecked" name="">
<customproperties/>
<layer-tree-layer expanded="1" checked="Qt::Checked" id="view_frmlocustinfo_p4r_201520170221164520581" name="trt('Map_of_the_level_of_threat')">
<customproperties/>
</layer-tree-layer>
<layer-tree-layer expanded="1" providerKey="" checked="Qt::Unchecked" id="OpenLayers_plugin_layer20170821155911549" source="" name="Bing Aerial with labels">
<customproperties/>
</layer-tree-layer>
</layer-tree-group>
<relations/>
<mapcanvas>
<units>meters</units>
<extent>
<xmin>4606484.6726676719263196</xmin>
<ymin>3728012.39886604063212872</ymin>
<xmax>9866330.61264913156628609</xmax>
<ymax>8074944.57324538938701153</ymax>
</extent>
<rotation>0</rotation>
<projections>1</projections>
<destinationsrs>
<spatialrefsys>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</destinationsrs>
<rendermaptile>0</rendermaptile>
<layer_coordinate_transform_info>
<layer_coordinate_transform destAuthId="EPSG:3857" srcAuthId="EPSG:4326" srcDatumTransform="-1" destDatumTransform="-1" layerid="view_frmlocustinfo_p4r_201520170221164520581"/>
<layer_coordinate_transform destAuthId="EPSG:3857" srcAuthId="EPSG:3857" srcDatumTransform="-1" destDatumTransform="-1" layerid="OpenLayers_plugin_layer20170821155911549"/>
</layer_coordinate_transform_info>
</mapcanvas>
<layer-tree-canvas>
<custom-order enabled="0">
<item>view_frmlocustinfo_p4r_201520170221164520581</item>
<item>OpenStreetMap20170221170817493</item>
</custom-order>
</layer-tree-canvas>
<legend updateDrawingOrder="true">
<legendlayer drawingOrder="-1" open="true" checked="Qt::Checked" name="trt('Map_of_the_level_of_threat')" showFeatureCount="0">
<filegroup open="true" hidden="false">
<legendlayerfile isInOverview="0" layerid="view_frmlocustinfo_p4r_201520170221164520581" visible="1"/>
</filegroup>
</legendlayer>
<legendlayer drawingOrder="-1" open="true" checked="Qt::Unchecked" name="Bing Aerial with labels" showFeatureCount="0">
<filegroup open="true" hidden="false">
<legendlayerfile isInOverview="0" layerid="OpenLayers_plugin_layer20170821155911549" visible="0"/>
</filegroup>
</legendlayer>
</legend>
<projectlayers>
<maplayer minimumScale="0" maximumScale="1e+08" type="plugin" hasScaleBasedVisibilityFlag="0" name="openlayers">
<extent>
<xmin>-20037508.33999999985098839</xmin>
<ymin>-20037508.33999999985098839</ymin>
<xmax>20037508.33999999985098839</xmax>
<ymax>20037508.33999999985098839</ymax>
</extent>
<id>OpenLayers_plugin_layer20170821155911549</id>
<datasource></datasource>
<keywordList>
<value></value>
</keywordList>
<layername>Bing Aerial with labels</layername>
<srs>
<spatialrefsys>
<proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs</proj4>
<srsid>3857</srsid>
<srid>3857</srid>
<authid>EPSG:3857</authid>
<description>WGS 84 / Pseudo Mercator</description>
<projectionacronym>merc</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</srs>
<customproperties>
<property key="ol_layer_type" value="Bing Aerial with labels"/>
</customproperties>
</maplayer>
<maplayer simplifyAlgorithm="0" minimumScale="0" maximumScale="1e+08" simplifyDrawingHints="1" readOnly="0" minLabelScale="0" maxLabelScale="1e+08" simplifyDrawingTol="1" geometry="Polygon" simplifyMaxScale="1" type="vector" hasScaleBasedVisibilityFlag="0" simplifyLocal="1" scaleBasedLabelVisibilityFlag="0">
<extent>
<xmin>-180</xmin>
<ymin>38.39295510000000178</ymin>
<xmax>180</xmax>
<ymax>82.05862320000009902</ymax>
</extent>
<id>view_frmlocustinfo_p4r_201520170221164520581</id>
<datasource>dbname='CCALM' host=ccalm.org port=5432 user='guest' password='B2C0D5C60590' sslmode=disable key='region_id' estimatedmetadata=true srid=4326 type=MultiPolygon table="main"."view_frmlocustinfo_p4r_${year}" (geom) sql=${sql}</datasource>
<keywordList>
<value></value>
</keywordList>
<layername>trt('Map_of_the_level_of_threat')</layername>
<srs>
<spatialrefsys>
<proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
<srsid>3452</srsid>
<srid>4326</srid>
<authid>EPSG:4326</authid>
<description>WGS 84</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</srs>
<provider encoding="System">postgres</provider>
<previewExpression></previewExpression>
<vectorjoins/>
<layerDependencies/>
<expressionfields/>
<defaults>
<default field="country_id" expression=""/>
<default field="region_id" expression=""/>
<default field="locust_type_id" expression=""/>
<default field="name" expression=""/>
<default field="percent" expression=""/>
</defaults>
<map-layer-style-manager current="">
<map-layer-style name=""/>
</map-layer-style-manager>
<edittypes>
<edittype widgetv2type="TextEdit" name="country_id">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="region_id">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="locust_type_id">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="name">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="percent">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
</edittypes>
<renderer-v2 forceraster="0" symbollevels="0" type="RuleRenderer" enableorderby="0">
<rules key="{d544320a-3c0f-4ff0-97cd-14e77a01f052}">
<rule description="" filter=" &quot;percent&quot; >= -25 AND &quot;percent&quot; &lt;= 25" key="{7c75fcc4-03a0-49be-a6e9-f1fd4612e11f}" symbol="0" label="trt('Normal/Multiyear_average_level')"/>
<rule description="" filter=" &quot;percent&quot; > 25 OR &quot;percent&quot; &lt; -25" key="{708b86f0-c637-43b1-b85b-823ad0a54776}" symbol="1" label="trt('Danger')"/>
<rule filter=" &quot;percent&quot; is null" key="{c017f2c4-f56f-48a8-bbc4-987fa0f239a9}" symbol="2" label="trt('No_data')"/>
</rules>
<symbols>
<symbol alpha="1" clip_to_extent="1" type="fill" name="0">
<layer pass="0" class="SimpleFill" locked="0">
<prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="color" v="0,255,76,77"/>
<prop k="joinstyle" v="bevel"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,255,128"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0.26"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="style" v="solid"/>
</layer>
</symbol>
<symbol alpha="1" clip_to_extent="1" type="fill" name="1">
<layer pass="0" class="SimpleFill" locked="0">
<prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="color" v="255,0,0,77"/>
<prop k="joinstyle" v="bevel"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,255,128"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0.26"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="style" v="solid"/>
</layer>
</symbol>
<symbol alpha="1" clip_to_extent="1" type="fill" name="2">
<layer pass="0" class="SimpleFill" locked="0">
<prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="color" v="150,150,150,102"/>
<prop k="joinstyle" v="bevel"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,0,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0.26"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="style" v="solid"/>
</layer>
</symbol>
</symbols>
</renderer-v2>
<labeling type="simple"/>
<customproperties>
<property key="embeddedWidgets/count" value="0"/>
<property key="labeling" value="pal"/>
<property key="labeling/addDirectionSymbol" value="false"/>
<property key="labeling/angleOffset" value="0"/>
<property key="labeling/blendMode" value="0"/>
<property key="labeling/bufferBlendMode" value="0"/>
<property key="labeling/bufferColorA" value="255"/>
<property key="labeling/bufferColorB" value="255"/>
<property key="labeling/bufferColorG" value="255"/>
<property key="labeling/bufferColorR" value="255"/>
<property key="labeling/bufferDraw" value="true"/>
<property key="labeling/bufferJoinStyle" value="128"/>
<property key="labeling/bufferNoFill" value="false"/>
<property key="labeling/bufferSize" value="1"/>
<property key="labeling/bufferSizeInMapUnits" value="false"/>
<property key="labeling/bufferSizeMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/bufferTransp" value="0"/>
<property key="labeling/centroidInside" value="true"/>
<property key="labeling/centroidWhole" value="false"/>
<property key="labeling/decimals" value="3"/>
<property key="labeling/displayAll" value="true"/>
<property key="labeling/dist" value="0"/>
<property key="labeling/distInMapUnits" value="false"/>
<property key="labeling/distMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/drawLabels" value="true"/>
<property key="labeling/enabled" value="true"/>
<property key="labeling/fieldName" value=" &quot;name&quot; || '\n' || &quot;percent&quot; || '%'"/>
<property key="labeling/fitInPolygonOnly" value="true"/>
<property key="labeling/fontCapitals" value="0"/>
<property key="labeling/fontFamily" value="Arial"/>
<property key="labeling/fontItalic" value="false"/>
<property key="labeling/fontLetterSpacing" value="0"/>
<property key="labeling/fontLimitPixelSize" value="false"/>
<property key="labeling/fontMaxPixelSize" value="10000"/>
<property key="labeling/fontMinPixelSize" value="3"/>
<property key="labeling/fontSize" value="7"/>
<property key="labeling/fontSizeInMapUnits" value="false"/>
<property key="labeling/fontSizeMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/fontStrikeout" value="false"/>
<property key="labeling/fontUnderline" value="false"/>
<property key="labeling/fontWeight" value="75"/>
<property key="labeling/fontWordSpacing" value="0"/>
<property key="labeling/formatNumbers" value="false"/>
<property key="labeling/isExpression" value="true"/>
<property key="labeling/labelOffsetInMapUnits" value="true"/>
<property key="labeling/labelOffsetMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/labelPerPart" value="false"/>
<property key="labeling/leftDirectionSymbol" value="&lt;"/>
<property key="labeling/limitNumLabels" value="false"/>
<property key="labeling/maxCurvedCharAngleIn" value="25"/>
<property key="labeling/maxCurvedCharAngleOut" value="-25"/>
<property key="labeling/maxNumLabels" value="2000"/>
<property key="labeling/mergeLines" value="false"/>
<property key="labeling/minFeatureSize" value="0"/>
<property key="labeling/multilineAlign" value="4294967295"/>
<property key="labeling/multilineHeight" value="1"/>
<property key="labeling/namedStyle" value="Bold"/>
<property key="labeling/obstacle" value="false"/>
<property key="labeling/obstacleFactor" value="1"/>
<property key="labeling/obstacleType" value="0"/>
<property key="labeling/offsetType" value="0"/>
<property key="labeling/placeDirectionSymbol" value="0"/>
<property key="labeling/placement" value="1"/>
<property key="labeling/placementFlags" value="10"/>
<property key="labeling/plussign" value="false"/>
<property key="labeling/predefinedPositionOrder" value="TR,TL,BR,BL,R,L,TSR,BSR"/>
<property key="labeling/preserveRotation" value="true"/>
<property key="labeling/previewBkgrdColor" value="#ffffff"/>
<property key="labeling/priority" value="0"/>
<property key="labeling/quadOffset" value="4"/>
<property key="labeling/repeatDistance" value="0"/>
<property key="labeling/repeatDistanceMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/repeatDistanceUnit" value="1"/>
<property key="labeling/reverseDirectionSymbol" value="false"/>
<property key="labeling/rightDirectionSymbol" value=">"/>
<property key="labeling/scaleMax" value="35000000"/>
<property key="labeling/scaleMin" value="1"/>
<property key="labeling/scaleVisibility" value="true"/>
<property key="labeling/shadowBlendMode" value="6"/>
<property key="labeling/shadowColorB" value="0"/>
<property key="labeling/shadowColorG" value="0"/>
<property key="labeling/shadowColorR" value="0"/>
<property key="labeling/shadowDraw" value="false"/>
<property key="labeling/shadowOffsetAngle" value="135"/>
<property key="labeling/shadowOffsetDist" value="1"/>
<property key="labeling/shadowOffsetGlobal" value="true"/>
<property key="labeling/shadowOffsetMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/shadowOffsetUnits" value="1"/>
<property key="labeling/shadowRadius" value="1.5"/>
<property key="labeling/shadowRadiusAlphaOnly" value="false"/>
<property key="labeling/shadowRadiusMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/shadowRadiusUnits" value="1"/>
<property key="labeling/shadowScale" value="100"/>
<property key="labeling/shadowTransparency" value="30"/>
<property key="labeling/shadowUnder" value="0"/>
<property key="labeling/shapeBlendMode" value="0"/>
<property key="labeling/shapeBorderColorA" value="255"/>
<property key="labeling/shapeBorderColorB" value="128"/>
<property key="labeling/shapeBorderColorG" value="128"/>
<property key="labeling/shapeBorderColorR" value="128"/>
<property key="labeling/shapeBorderWidth" value="0"/>
<property key="labeling/shapeBorderWidthMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/shapeBorderWidthUnits" value="1"/>
<property key="labeling/shapeDraw" value="false"/>
<property key="labeling/shapeFillColorA" value="255"/>
<property key="labeling/shapeFillColorB" value="255"/>
<property key="labeling/shapeFillColorG" value="255"/>
<property key="labeling/shapeFillColorR" value="255"/>
<property key="labeling/shapeJoinStyle" value="64"/>
<property key="labeling/shapeOffsetMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/shapeOffsetUnits" value="1"/>
<property key="labeling/shapeOffsetX" value="0"/>
<property key="labeling/shapeOffsetY" value="0"/>
<property key="labeling/shapeRadiiMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/shapeRadiiUnits" value="1"/>
<property key="labeling/shapeRadiiX" value="0"/>
<property key="labeling/shapeRadiiY" value="0"/>
<property key="labeling/shapeRotation" value="0"/>
<property key="labeling/shapeRotationType" value="0"/>
<property key="labeling/shapeSVGFile" value=""/>
<property key="labeling/shapeSizeMapUnitScale" value="0,0,0,0,0,0"/>
<property key="labeling/shapeSizeType" value="0"/>
<property key="labeling/shapeSizeUnits" value="1"/>
<property key="labeling/shapeSizeX" value="0"/>
<property key="labeling/shapeSizeY" value="0"/>
<property key="labeling/shapeTransparency" value="0"/>
<property key="labeling/shapeType" value="0"/>
<property key="labeling/substitutions" value="&lt;substitutions/>"/>
<property key="labeling/textColorA" value="255"/>
<property key="labeling/textColorB" value="0"/>
<property key="labeling/textColorG" value="0"/>
<property key="labeling/textColorR" value="0"/>
<property key="labeling/textTransp" value="0"/>
<property key="labeling/upsidedownLabels" value="0"/>
<property key="labeling/useSubstitutions" value="false"/>
<property key="labeling/wrapChar" value=""/>
<property key="labeling/xOffset" value="0.2"/>
<property key="labeling/yOffset" value="0.2"/>
<property key="labeling/zIndex" value="0"/>
<property key="variableNames"/>
<property key="variableValues"/>
</customproperties>
<blendMode>0</blendMode>
<featureBlendMode>0</featureBlendMode>
<layerTransparency>0</layerTransparency>
<displayfield>name</displayfield>
<label>0</label>
<labelattributes>
<label fieldname="" text="Подпись"/>
<family fieldname="" name="MS Shell Dlg 2"/>
<size fieldname="" units="pt" value="12"/>
<bold fieldname="" on="0"/>
<italic fieldname="" on="0"/>
<underline fieldname="" on="0"/>
<strikeout fieldname="" on="0"/>
<color fieldname="" red="0" blue="0" green="0"/>
<x fieldname=""/>
<y fieldname=""/>
<offset x="0" y="0" units="pt" yfieldname="" xfieldname=""/>
<angle fieldname="" value="0" auto="0"/>
<alignment fieldname="" value="center"/>
<buffercolor fieldname="" red="255" blue="255" green="255"/>
<buffersize fieldname="" units="pt" value="1"/>
<bufferenabled fieldname="" on=""/>
<multilineenabled fieldname="" on=""/>
<selectedonly on=""/>
</labelattributes>
<SingleCategoryDiagramRenderer diagramType="Histogram" sizeLegend="0" attributeLegend="1">
<DiagramCategory penColor="#000000" labelPlacementMethod="XHeight" penWidth="0" diagramOrientation="Up" sizeScale="0,0,0,0,0,0" minimumSize="0" barWidth="5" penAlpha="255" maxScaleDenominator="1e+08" backgroundColor="#ffffff" transparency="0" width="15" scaleDependency="Area" backgroundAlpha="255" angleOffset="1440" scaleBasedVisibility="0" enabled="0" height="15" lineSizeScale="0,0,0,0,0,0" sizeType="MM" lineSizeType="MM" minScaleDenominator="inf">
<fontProperties description="MS Shell Dlg 2,7.8,-1,5,50,0,0,0,0,0" style=""/>
<attribute field="" color="#000000" label=""/>
</DiagramCategory>
<symbol alpha="1" clip_to_extent="1" type="marker" name="sizeSymbol">
<layer pass="0" class="SimpleMarker" locked="0">
<prop k="angle" v="0"/>
<prop k="color" v="255,0,0,255"/>
<prop k="horizontal_anchor_point" v="1"/>
<prop k="joinstyle" v="bevel"/>
<prop k="name" v="circle"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,0,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0"/>
<prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="scale_method" v="diameter"/>
<prop k="size" v="2"/>
<prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="size_unit" v="MM"/>
<prop k="vertical_anchor_point" v="1"/>
</layer>
</symbol>
</SingleCategoryDiagramRenderer>
<DiagramLayerSettings yPosColumn="-1" showColumn="-1" linePlacementFlags="10" placement="0" dist="0" xPosColumn="-1" priority="0" obstacle="0" zIndex="0" showAll="1"/>
<annotationform>.</annotationform>
<aliases>
<alias field="country_id" index="0" name=""/>
<alias field="region_id" index="1" name=""/>
<alias field="locust_type_id" index="2" name=""/>
<alias field="name" index="3" name=""/>
<alias field="percent" index="4" name=""/>
</aliases>
<excludeAttributesWMS/>
<excludeAttributesWFS/>
<attributeactions default="-1"/>
<attributetableconfig actionWidgetStyle="dropDown" sortExpression="" sortOrder="1380262664">
<columns>
<column width="-1" hidden="0" type="field" name="country_id"/>
<column width="-1" hidden="0" type="field" name="region_id"/>
<column width="-1" hidden="0" type="field" name="locust_type_id"/>
<column width="-1" hidden="0" type="field" name="name"/>
<column width="-1" hidden="0" type="field" name="percent"/>
<column width="-1" hidden="1" type="actions"/>
</columns>
</attributetableconfig>
<editform>.</editform>
<editforminit/>
<editforminitcodesource>0</editforminitcodesource>
<editforminitfilepath>.</editforminitfilepath>
<editforminitcode><![CDATA[# -*- coding: utf-8 -*-
"""
QGIS forms can have a Python function that is called when the form is
opened.
Use this function to add extra logic to your forms.
Enter the name of the function in the "Python Init function"
field.
An example follows:
"""
from qgis.PyQt.QtWidgets import QWidget
def my_form_open(dialog, layer, feature):
geom = feature.geometry()
control = dialog.findChild(QWidget, "MyLineEdit")
]]></editforminitcode>
<featformsuppress>0</featformsuppress>
<editorlayout>generatedlayout</editorlayout>
<widgets/>
<conditionalstyles>
<rowstyles/>
<fieldstyles/>
</conditionalstyles>
</maplayer>
</projectlayers>
<properties>
<Measurement>
<DistanceUnits type="QString">meters</DistanceUnits>
<AreaUnits type="QString">m2</AreaUnits>
</Measurement>
<SpatialRefSys>
<ProjectCRSProj4String type="QString">+proj=longlat +datum=WGS84 +no_defs</ProjectCRSProj4String>
<ProjectCrs type="QString">EPSG:4326</ProjectCrs>
<ProjectCRSID type="int">3452</ProjectCRSID>
<ProjectionsEnabled type="int">1</ProjectionsEnabled>
</SpatialRefSys>
<Paths>
<Absolute type="bool">false</Absolute>
</Paths>
<Gui>
<SelectionColorBluePart type="int">0</SelectionColorBluePart>
<CanvasColorGreenPart type="int">255</CanvasColorGreenPart>
<CanvasColorRedPart type="int">255</CanvasColorRedPart>
<SelectionColorRedPart type="int">255</SelectionColorRedPart>
<SelectionColorAlphaPart type="int">255</SelectionColorAlphaPart>
<SelectionColorGreenPart type="int">255</SelectionColorGreenPart>
<CanvasColorBluePart type="int">255</CanvasColorBluePart>
</Gui>
<Digitizing>
<DefaultSnapToleranceUnit type="int">2</DefaultSnapToleranceUnit>
<LayerSnappingList type="QStringList">
<value>view_frmlocustinfo_p4r_201520170221164520581</value>
</LayerSnappingList>
<LayerSnappingEnabledList type="QStringList">
<value>disabled</value>
</LayerSnappingEnabledList>
<SnappingMode type="QString">current_layer</SnappingMode>
<AvoidIntersectionsList type="QStringList"/>
<LayerSnappingToleranceUnitList type="QStringList">
<value>2</value>
</LayerSnappingToleranceUnitList>
<LayerSnapToList type="QStringList">
<value>to_vertex_and_segment</value>
</LayerSnapToList>
<DefaultSnapType type="QString">off</DefaultSnapType>
<DefaultSnapTolerance type="double">0</DefaultSnapTolerance>
<LayerSnappingToleranceList type="QStringList">
<value>0.000000</value>
</LayerSnappingToleranceList>
</Digitizing>
<PositionPrecision>
<DecimalPlaces type="int">2</DecimalPlaces>
<Automatic type="bool">true</Automatic>
</PositionPrecision>
<Legend>
<filterByMap type="bool">false</filterByMap>
</Legend>
</properties>
<visibility-presets/>
</qgis>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,365 @@
<%@ page language="java" contentType="application/octet-stream" pageEncoding="UTF-8"%>
<%@ page session="true" %>
<%@page import="java.sql.*"%>
<%@page import="java.io.FileReader"%>
<%@page import="java.io.InputStreamReader"%>
<%@page import="java.io.InputStream"%>
<%@page import="java.io.FileInputStream"%>
<%@page import="java.io.BufferedReader"%>
<%@page import="java.util.Locale"%>
<%@page import="java.util.ResourceBundle"%>
<%@ page import="java.io.File" %>
<%@page import="javax.xml.parsers.DocumentBuilderFactory"%>
<%@page import="javax.xml.parsers.DocumentBuilder"%>
<%@page import="org.w3c.dom.Document"%>
<%@page import="org.w3c.dom.Element"%>
<%@page import="org.w3c.dom.NamedNodeMap"%>
<%@page import="org.w3c.dom.Node"%>
<%@page import="org.w3c.dom.NodeList"%>
<%@page import="org.w3c.dom.ls.DOMImplementationLS"%>
<%@page import="org.w3c.dom.ls.LSSerializer"%>
<%@page import="org.w3c.dom.ls.LSOutput"%>
<%@page import="org.w3c.dom.CDATASection"%>
<%@page import="org.w3c.dom.CharacterData"%>
<%@ page import="java.util.Properties" %>
<%!
//application/octet-stream
public String m_locale = "en";
/*public String trt(String val)
{
String locale = m_locale;
try
{
ResourceBundle rb = ResourceBundle.getBundle("messages", new Locale(locale));
val=rb.getString(val);
val=new String(val.getBytes("ISO-8859-1"), "UTF-8");
return val;
}catch(Exception exception){
System.out.println("Exception: "+exception.getMessage());
}
return val.replaceAll("_", " ");
}
//Translate text by patterns
public String getText(String text)
{
int pos1=0;
while(true)
{
pos1=text.indexOf("trt('",pos1);
if(pos1==-1) break;
int pos2=text.indexOf("')",pos1);
if(pos2==-1) break;
text=text.substring(0,pos1)+trt(text.substring(pos1+3,pos2))+text.substring(pos2+2);
}
return text;
}*/
/*public String fileToString(String fName)
{
StringBuilder sb = new StringBuilder();
try
{
InputStream is = new FileInputStream(fName);
BufferedReader buf = new BufferedReader(new InputStreamReader(is));
String line = buf.readLine();
while(line != null)
{
sb.append(line).append("\n");
line = buf.readLine();
}
buf.close();
}
catch (Exception e){
System.out.println("Error: "+e.getMessage());
}
return sb.toString();
}*/
%>
<%
String db_url="";
String db_login="";
String db_password="";
//String data_dir = "";
Properties prop = new Properties();
try {
prop.load(new FileInputStream("org_ccalm_main.properties")); // load a properties file
db_url = prop.getProperty("spring.datasource.url");
db_login = prop.getProperty("spring.datasource.username");
db_password = prop.getProperty("spring.datasource.password");
//data_dir = prop.getProperty("data.dir");
} catch (Exception e) {
e.printStackTrace();
logger.error("Error load org_ccalm_main.properties",e);
}
//Connection to database
Connection conn = null;
try{
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url,db_login,db_password);
if(conn!=null)
{
System.out.println("Connect is OK!");
}else
{
out.write("<br>Connect is ERROR<br>");
}
}catch(Exception e)
{
out.write("<br>Connect Exception:"+e.getMessage()+"<br>");
}
//Select language for current user
String user_id = (String)request.getSession().getAttribute("USER_ID");
if(user_id==null) user_id="null";
Statement st = conn.createStatement();
ResultSet rs=null;
try {
String sql="select l.short_name lng from main._users u LEFT JOIN main._languages l ON l.id = u.language_id where u.id="+user_id+";";
rs = st.executeQuery(sql);
} catch( SQLException ex )
{
out.write("<br>SQLException:"+ex.getMessage()+"<br>");
}
if(rs!=null)
{
while (rs.next())
{
m_locale = rs.getString("lng");
}
}
st.close();
String jspPath = application.getRealPath("/")+"QGIS/";
String fileAsString="";
String name=request.getParameter("name");
//Pods (кубышки)
if(name!=null && (name.equals("frmlocust_pods_density") || name.equals("frmlocust_hoppers_density") || name.equals("frmlocust_bands") || name.equals("frmlocust_adults_density") || name.equals("frmlocust_swarms")))
{
fileAsString = fileToString(jspPath + name + ".qgs");
String country_id=request.getParameter("country_id");
String locust_type_id=request.getParameter("locust_type_id");
String date_start=request.getParameter("date_start");
String date_end=request.getParameter("date_end");
String registered=request.getParameter("registered");
//Make SQL
String sql = "1=1";
String sql2 = "1=1";
if(country_id!=null && !country_id.equals(""))
{
if(country_id.equals("-1"))
{
sql+=" and country_id in (7,3,4,2)";
sql2+=" and country_id in (7,3,4,2)";
}else if(country_id.equals("-2"))
{
sql+=" and country_id in (7,1,5,6,8,9,10)";
sql2+=" and country_id in (7,1,5,6,8,9,10)";
}else
{
sql+=" and country_id="+country_id;
sql2+=" and country_id="+country_id;
}
}
if(locust_type_id!=null && !locust_type_id.equals(""))
{
sql+=" and locust_type_id="+locust_type_id;
}
if(date_start!=null && !date_start.equals(""))
{
sql+=" and date>='"+date_start+"'";
}
if(date_end!=null && !date_end.equals(""))
{
sql+=" and date&lt;='"+date_end+"'";
}
if(registered!=null && registered.equals("1"))
{
sql+=" and registered=true";
}else
if(registered!=null && registered.equals("0"))
{
sql+=" and registered=false";
}
//Apply variables to text
fileAsString=fileAsString.replaceAll("\\$\\{sql\\}",sql);
fileAsString=fileAsString.replaceAll("\\$\\{sql2\\}",sql2);
}
if(name!=null && name.equals("frmlocustdel"))
{
fileAsString = fileToString(jspPath + name + ".qgs");
String country_id=request.getParameter("country_id");
String date_start=request.getParameter("date_start");
String date_end=request.getParameter("date_end");
String registered=request.getParameter("registered");
//Make SQL
String sql = "1=1";
String sql2 = "1=1";
if(country_id!=null && !country_id.equals(""))
{
//sql+=" and country_id="+country_id;
if(country_id.equals("-1"))
{
sql+=" and country_id in (7,3,4,2)";
sql2+=" and country_id in (7,3,4,2)";
}else if(country_id.equals("-2"))
{
sql+=" and country_id in (7,1,5,6,8,9,10)";
sql2+=" and country_id in (7,1,5,6,8,9,10)";
}else
{
sql+=" and country_id="+country_id;
sql2+=" and country_id="+country_id;
}
}
if(date_start!=null && !date_start.equals(""))
{
sql+=" and date>='"+date_start+"'";
}
if(date_end!=null && !date_end.equals(""))
{
sql+=" and date&lt;='"+date_end+"'";
}
if(registered!=null && registered.equals("1"))
{
sql+=" and registered=true";
}else
if(registered!=null && registered.equals("0"))
{
sql+=" and registered=false";
}
//Apply variables to text
fileAsString=fileAsString.replaceAll("\\$\\{sql\\}",sql);
fileAsString=fileAsString.replaceAll("\\$\\{sql2\\}",sql2);
}
if(name!=null && (name.equals("frmlocustinfo_p2") || name.equals("frmlocustinfo_p3") || name.equals("frmlocustinfo_p4")))
{
String country_id=request.getParameter("country_id");
String year=request.getParameter("year");
String locust_type_id=request.getParameter("locust_type_id");
//Make SQL
String sql = "1=1";
if(country_id!=null && !country_id.equals(""))
{
if(country_id.equals("-1"))
{
sql+=" and country_id in (7,3,4,2)";
}else if(country_id.equals("-2"))
{
sql+=" and country_id in (7,1,5,6,8,9,10)";
}else
{
sql+=" and country_id="+country_id;
}
}
if(locust_type_id!=null && !locust_type_id.equals(""))
{
sql+=" and locust_type_id="+locust_type_id;
}
String fileName = jspPath + name + ".qgs";
fileAsString = fileToString(fileName);
//Apply variables to text
fileAsString=fileAsString.replaceAll("\\$\\{year\\}",year);
fileAsString=fileAsString.replaceAll("\\$\\{sql\\}",sql);
}
if(name!=null && (name.equals("frmlocustinfo_p2r") || name.equals("frmlocustinfo_p3r") || name.equals("frmlocustinfo_p4r")))
{
String region_id=request.getParameter("region_id");
String year=request.getParameter("year");
String locust_type_id=request.getParameter("locust_type_id");
//Make SQL
String sql = "1=1";
if(region_id!=null && !region_id.equals(""))
{
sql+=" and region_id="+region_id;
}
if(locust_type_id!=null && !locust_type_id.equals(""))
{
sql+=" and locust_type_id="+locust_type_id;
}
String fileName = jspPath + name + ".qgs";
fileAsString = fileToString(fileName);
//Apply variables to text
fileAsString=fileAsString.replaceAll("\\$\\{year\\}",year);
fileAsString=fileAsString.replaceAll("\\$\\{sql\\}",sql);
}
if(name!=null && name.equals("weather"))
{
String country_id=request.getParameter("country_id");
String country_name=request.getParameter("country_name");
//Make SQL
String sql2 = "1=1";
if(country_id!=null && !country_id.equals(""))
{
//sql+=" and country_id="+country_id;
if(country_id.equals("-1"))
{
sql2+=" and country_id in (7,3,4,2)";
}else if(country_id.equals("-2"))
{
sql2+=" and country_id in (7,1,5,6,8,9,10)";
}else
{
sql2+=" and country_id="+country_id;
}
}
String fileName = jspPath + name + ".qgs";
fileAsString = fileToString(fileName);
//Apply variables to text
fileAsString=fileAsString.replaceAll("\\$\\{country\\}",country_name);
fileAsString=fileAsString.replaceAll("\\$\\{sql2\\}",sql2);
}
if(name!=null && name.equals("NDVI"))
{
String fileName = jspPath + "NDVI.qgs";
fileAsString = fileToString(fileName);
}
if(name!=null && name.equals("NDWI"))
{
String fileName = jspPath + "NDWI.qgs";
fileAsString = fileToString(fileName);
}
//Send file to client.
response.setHeader("Content-Disposition", "attachment;filename=Locust.qgs");
out.write(fileAsString); //out.write(getText(fileAsString));
%>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

View File

@ -0,0 +1,115 @@
/*https://1stwebdesigner.com/free-code-snippets-css-buttons/*/
:root{
--btn-color: #d9d9cc; /*Цвет кнопки*/
--btn-color2: #E0E0FF; /*Цвет кнопки при наведении на неё мышкой*/
}
/* Normal white Button as seen on Google.com*/
button
{
color: #444444;
background: var(--btn-color);
border: 1px #AAAAAA solid;
padding: 5px 10px;
border-radius: 2px;
font-weight: bold;
font-size: 9pt;
outline: none;
}
button:hover {
border: 1px #C6C6C6 solid;
box-shadow: 1px 1px 1px #EAEAEA;
color: #333333;
background: var(--btn-color2);
}
button:active {
box-shadow: inset 1px 1px 1px #DFDFDF;
}
/* Blue button as seen on translate.google.com*/
button.button-secondary,
button.main,
input[type="button"].main,
input[type="button"].button-secondary,
button.blue {
color: white;
background: #1b6ec2;
border: 1px #1861ac solid;
border-radius: 4px;
box-shadow: inset 0 1px 0 #80B0FB;
padding: 3px;
margin: 1px;
}
button.button-secondary:hover,
button.main:hover,
input[type="button"].main:hover,
input[type="button"].button-secondary:hover,
button.blue:hover {
border: 1px #13487e solid;
border-radius: 4px;
box-shadow: 0 1px 1px #EAEAEA, inset 0 1px 0 #5A94F1;
background: #0b5ed7;
padding: 3px;
margin: 1px;
}
button.button-secondary:active,
button.main:active,
input[type="button"].main:active,
input[type="button"].button-secondary:active,
button.blue:active {
box-shadow: inset 0 2px 5px #2370FE;
padding: 3px;
margin: 1px;
}
/* Orange button as seen on blogger.com*/
button.orange {
color: white;
border: 1px solid #FB8F3D;
background: -webkit-linear-gradient(top, #FDA251, #FB8F3D);
background: -moz-linear-gradient(top, #FDA251, #FB8F3D);
background: -ms-linear-gradient(top, #FDA251, #FB8F3D);
}
button.orange:hover {
border: 1px solid #EB5200;
background: -webkit-linear-gradient(top, #FD924C, #F9760B);
background: -moz-linear-gradient(top, #FD924C, #F9760B);
background: -ms-linear-gradient(top, #FD924C, #F9760B);
box-shadow: 0 1px #EFEFEF;
}
button.orange:active {
box-shadow: inset 0 1px 1px rgba(0,0,0,0.3);
}
/* Red Google Button as seen on drive.google.com */
button.red {
background: -webkit-linear-gradient(top, #DD4B39, #D14836);
background: -moz-linear-gradient(top, #DD4B39, #D14836);
background: -ms-linear-gradient(top, #DD4B39, #D14836);
border: 1px solid #DD4B39;
color: white;
text-shadow: 0 1px 0 #C04131;
}
button.red:hover {
background: -webkit-linear-gradient(top, #DD4B39, #C53727);
background: -moz-linear-gradient(top, #DD4B39, #C53727);
background: -ms-linear-gradient(top, #DD4B39, #C53727);
border: 1px solid #AF301F;
}
button.red:active {
box-shadow: inset 0 1px 1px rgba(0,0,0,0.2);
background: -webkit-linear-gradient(top, #D74736, #AD2719);
background: -moz-linear-gradient(top, #D74736, #AD2719);
background: -ms-linear-gradient(top, #D74736, #AD2719);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 767 B

View File

@ -0,0 +1,88 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.io.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.util.ResourceBundle"%>
<%@page import="javax.xml.parsers.DocumentBuilderFactory"%>
<%@page import="javax.xml.parsers.DocumentBuilder"%>
<%@page import="org.w3c.dom.Document"%>
<%@page import="org.w3c.dom.Element"%>
<%@page import="org.w3c.dom.NamedNodeMap"%>
<%@page import="org.w3c.dom.Node"%>
<%@page import="org.w3c.dom.NodeList"%>
<%@page import="org.w3c.dom.ls.DOMImplementationLS"%>
<%@page import="org.w3c.dom.ls.LSSerializer"%>
<%@page import="org.w3c.dom.ls.LSOutput"%>
<%@page import="org.w3c.dom.CDATASection"%>
<%@page import="org.w3c.dom.CharacterData"%>
<%@ page import="java.util.Properties" %>
<%
String db_url="";
String db_login="";
String db_password="";
//String data_dir = "";
Properties prop = new Properties();
try {
prop.load(new FileInputStream("org_ccalm_main.properties")); // load a properties file
db_url = prop.getProperty("spring.datasource.url");
db_login = prop.getProperty("spring.datasource.username");
db_password = prop.getProperty("spring.datasource.password");
//data_dir = prop.getProperty("data.dir");
} catch (Exception e) {
e.printStackTrace();
logger.error("Error load org_ccalm_main.properties",e);
}
String table = request.getParameter("table");
String id = request.getParameter("id");
//Selection of geometric information and sending it to the client using JSON
Connection conn = null;
try{
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url,db_login,db_password);
if(conn!=null)
{
System.out.println("Connect is OK!");
}else
{
out.write("<br>Connect is ERROR<br>");
}
}catch(Exception e)
{
out.write("<br>Connect Exception:"+e.getMessage()+"<br>");
}
Statement st = conn.createStatement();
ResultSet rs=null;
try {
String sql="select id,name,ST_AsGeoJSON(geom,3,0) as geom from main."+table+" where id="+id+";";
rs = st.executeQuery(sql);
} catch( SQLException ex )
{
out.write("<br>SQLException:"+ex.getMessage()+"<br>");
}
if(rs!=null)
{
while (rs.next())
{
String geom=null;
try {
geom=rs.getString("geom");
} catch( Exception ex )
{
out.write("<br>SQLException:"+ex.getMessage()+"<br>");
System.out.println("Error: "+ex.getMessage());
}
if(geom==null) geom="";
out.write(geom);
}
}
st.close();
conn.close();
%>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,37 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>HELP</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
html,body
{
height:100%;
min-height:100%;
margin:0px;
padding:0px;
text-align:center;
background-color: #ffffff;
}
</style>
</head>
<body>
<h3>ASDC Guidelines</h3>
<a href="ASDC_for_Android_ENG.pdf" target="_blank">ASDC_for_Android_ENG_v2.4.3.pdf</a><br/>
<a href="ASDC_for_Android_RUS.pdf" target="_blank">ASDC_for_Android_RUS_v2.4.3.pdf</a>
<h3>CCALM Guidelines</h3>
<a href="CCALM_help_ENG.pdf" target="_blank">CCALM_help_ENG.pdf</a><br/>
<a href="CCALM_help_RUS.pdf" target="_blank">CCALM_help_RUS.pdf</a>
<h3>QGIS Guidelines</h3>
<a href="QGIS_Guide_ENG.doc" target="_blank">QGIS_Guide_ENG.doc</a><br/>
<a href="QGIS_Guide_RUS.doc" target="_blank">QGIS_Guide_RUS.doc</a>
<h3>Technical support and administration.</h3>
<a href="Administration CCALM v 0.3_ENG.doc" target="_blank">Administration CCALM v 0.3_ENG.doc</a><br/>
<a href="Administration CCALM v 0.3_RUS.doc" target="_blank">Administration CCALM v 0.3_RUS.doc</a>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 488 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 957 B

View File

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg2985"
version="1.1"
inkscape:version="0.48.1 "
width="500"
height="431"
sodipodi:docname="cloud.svg"
inkscape:export-filename="D:\projects\Locust_Flex\src\assets\cloud.png"
inkscape:export-xdpi="6.4699998"
inkscape:export-ydpi="6.4699998">
<metadata
id="metadata2991">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs2989" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1205"
inkscape:window-height="950"
id="namedview2987"
showgrid="false"
inkscape:zoom="0.67517401"
inkscape:cx="307.61"
inkscape:cy="201.59211"
inkscape:window-x="89"
inkscape:window-y="30"
inkscape:window-maximized="0"
inkscape:current-layer="svg2985" />
<path
style="fill:#66d346;stroke:#000000;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
d="m 205.78028,265.74168 c 7.4055,19.43943 65.02954,65.42295 117.09945,12.70506 C 471.27546,293.7052 416.58318,78.289638 299.61593,150.9079 293.81089,100.60049 204.82049,59.883021 162.60139,138.49565 29.479273,150.65547 96.582504,337.51906 205.78028,265.74168 z"
id="path2995"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

View File

@ -0,0 +1,96 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
width="330"
height="330"
id="svg2"
sodipodi:docname="empty.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1137"
id="namedview8"
showgrid="false"
inkscape:zoom="2.3182813"
inkscape:cx="59.534365"
inkscape:cy="180.39188"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg2"
inkscape:measure-start="0,0"
inkscape:measure-end="0,0"
showguides="true" />
<defs
id="defs4" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<path
style="opacity:0;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.62362206;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4550"
sodipodi:type="arc"
sodipodi:cx="-263.12598"
sodipodi:cy="-458.5152"
sodipodi:rx="240.69556"
sodipodi:ry="170.81621"
sodipodi:start="0"
sodipodi:end="6.0842003"
d="m -22.43042,-458.5152 a 240.69556,170.81621 0 0 1 -228.72679,170.6049 240.69556,170.81621 0 0 1 -251.47401,-153.63799 240.69556,170.81621 0 0 1 203.71733,-185.88442 240.69556,170.81621 0 0 1 271.733998,135.15151 l -235.946088,33.766 z" />
<g
id="g4591"
transform="matrix(0.81067499,-0.03321887,0.03486609,0.85087382,-64.364067,-278.58886)">
<path
d="M 458.57555,532.69049 A 199.34813,182.01639 0 0 1 261.9603,714.68977 199.34813,182.01639 0 0 1 59.954219,537.68059 199.34813,182.01639 0 0 1 251.03081,350.82803 199.34813,182.01639 0 0 1 458.27588,522.71404"
sodipodi:open="true"
sodipodi:end="6.2283471"
sodipodi:start="0"
sodipodi:ry="182.01639"
sodipodi:rx="199.34813"
sodipodi:cy="532.69049"
sodipodi:cx="259.22742"
sodipodi:type="arc"
id="path4524"
style="fill:#539ef7;fill-opacity:1;stroke:none;stroke-width:0.52919018;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0.99999692,0.00248115,0.00291849,0.99999574,0,0)" />
<path
d="M 405.87067,534.0658 A 146.29276,133.19995 0 0 1 261.58346,667.25323 146.29276,133.19995 0 0 1 113.34014,537.71756 146.29276,133.19995 0 0 1 253.56278,400.97849 146.29276,133.19995 0 0 1 405.65075,526.76501"
sodipodi:open="true"
sodipodi:end="6.2283471"
sodipodi:start="0"
sodipodi:ry="133.19995"
sodipodi:rx="146.29276"
sodipodi:cy="534.0658"
sodipodi:cx="259.57791"
sodipodi:type="arc"
id="path4524-3"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.38780537;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0.99999856,0.001695,0.00195187,0.9999981,0,0)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 515 B

View File

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Creator: CorelDRAW -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xml:space="preserve"
width="250px"
height="351px"
style="shape-rendering:geometricPrecision; image-rendering:optimizeQuality"
viewBox="0 0 250 352"
id="svg2436"
sodipodi:version="0.32"
inkscape:version="0.48.1 "
sodipodi:docname="flag.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1"
inkscape:export-filename="O:\projects\Workspace_Java\ASDC\WebContent\engine\images\icons\flag.png"
inkscape:export-xdpi="7.5139751"
inkscape:export-ydpi="7.5139751"><metadata
id="metadata2445"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs2443"><inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 175.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="250 : 175.5 : 1"
inkscape:persp3d-origin="125 : 117 : 1"
id="perspective2447" /></defs><sodipodi:namedview
inkscape:window-height="974"
inkscape:window-width="1280"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showgrid="false"
inkscape:zoom="1.3162393"
inkscape:cx="125"
inkscape:cy="175.5"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:current-layer="svg2436"
inkscape:window-maximized="0" />
<path
style="fill:none;stroke:#000000;stroke-width:21;stroke-linecap:round"
d="M42 327l0 -291"
id="path2438" />
<path
style="fill:#0096ff;stroke:#000000;stroke-width:10;stroke-linejoin:round;fill-opacity:1"
d="M49 50c70,30 104,28 178,2 -21,42 -21,74 0,116 -72,25 -101,25 -178,0l0 -118z"
id="path2440" />
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Creator: CorelDRAW -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xml:space="preserve"
width="250px"
height="351px"
style="shape-rendering:geometricPrecision; image-rendering:optimizeQuality"
viewBox="0 0 250 352"
id="svg2436"
sodipodi:version="0.32"
inkscape:version="0.48.1 "
sodipodi:docname="flag.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1"
inkscape:export-filename="O:\projects\Workspace_Java\ASDC\WebContent\engine\images\icons\flag.png"
inkscape:export-xdpi="7.5139751"
inkscape:export-ydpi="7.5139751"><metadata
id="metadata2445"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs2443"><inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 175.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="250 : 175.5 : 1"
inkscape:persp3d-origin="125 : 117 : 1"
id="perspective2447" /></defs><sodipodi:namedview
inkscape:window-height="974"
inkscape:window-width="1280"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showgrid="false"
inkscape:zoom="1.3162393"
inkscape:cx="125"
inkscape:cy="175.5"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:current-layer="svg2436"
inkscape:window-maximized="0" />
<path
style="fill:none;stroke:#000000;stroke-width:21;stroke-linecap:round"
d="M42 327l0 -291"
id="path2438" />
<path
style="fill:#0096ff;stroke:#000000;stroke-width:10;stroke-linejoin:round;fill-opacity:1"
d="M49 50c70,30 104,28 178,2 -21,42 -21,74 0,116 -72,25 -101,25 -178,0l0 -118z"
id="path2440" />
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
width="744.09448"
height="1052.3622"
id="svg2"
sodipodi:docname="green.svg"
inkscape:version="0.92.1 r15371">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1680"
inkscape:window-height="975"
id="namedview8"
showgrid="false"
inkscape:zoom="0.72103517"
inkscape:cx="160.915"
inkscape:cy="745.22585"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<defs
id="defs4" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1">
<path
d="m 348.57143,732.36218 c 0,0 -418.556519,-636.613712 -8.57143,-642.85714 409.9851,-6.243428 8.57143,642.85714 8.57143,642.85714 z"
id="path2985"
style="fill:#00ff00;stroke:#000000;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
<path
d="m 545.71429,353.79074 a 102.85714,102.85714 0 1 1 -205.71428,0 102.85714,102.85714 0 1 1 205.71428,0 z"
transform="translate(-97.142857,-90)"
id="path2987"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.01;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 959 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,150 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
width="744.09448"
height="1052.3622"
id="svg2"
sodipodi:docname="red.svg"
inkscape:version="0.92.1 r15371">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1680"
inkscape:window-height="975"
id="namedview8"
showgrid="false"
inkscape:zoom="0.28978516"
inkscape:cx="-1263.9325"
inkscape:cy="470.19911"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<defs
id="defs4" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<path
inkscape:connector-curvature="0"
style="fill:#fb0b00;fill-opacity:1;stroke:#000000;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path2985"
d="m 348.57143,732.36218 c 0,0 -418.556519,-636.613712 -8.57143,-642.85714 409.9851,-6.243428 8.57143,642.85714 8.57143,642.85714 z" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path2987"
d="m 448.57143,263.79074 a 102.85714,102.85714 0 1 1 -205.71428,0 102.85714,102.85714 0 1 1 205.71428,0 z" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4484"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4486"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4488"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4490"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4492"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4494"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4496"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4498"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4500"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4502"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4504"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4506"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4508"
inkscape:connector-curvature="0" />
<g
id="g4513">
<path
inkscape:connector-curvature="0"
id="path4510"
d="M 337.93429,709.57856 C 296.89192,643.4647 253.04213,559.75825 224.56378,493.16149 169.02633,363.28693 150.98282,261.65547 171.43146,193.88963 c 17.85082,-59.15679 63.46079,-91.47841 140.5528,-99.603084 18.9208,-1.99405 59.32433,-1.454544 76.00292,1.014862 39.34819,5.825832 68.23577,18.578332 90.1854,39.812612 24.26494,23.47411 37.34998,53.51175 41.79214,95.9368 1.66212,15.87412 0.62078,55.18407 -1.97069,74.39246 -8.32095,61.67631 -30.32711,134.63906 -65.29358,216.48475 -27.17115,63.59925 -62.56443,133.60819 -98.83369,195.49599 l -5.37188,9.16626 z M 371.31557,363.5705 c 36.53068,-9.90151 63.98456,-37.38746 74.2958,-74.38259 1.79997,-6.45804 2.09593,-10.10409 2.08367,-25.6698 -0.0133,-16.90069 -0.19678,-18.74682 -2.68044,-26.96878 -3.20885,-10.62265 -8.82689,-22.70649 -14.45592,-31.09326 -5.38533,-8.02366 -19.28666,-21.77757 -27.37092,-27.08066 -34.08777,-22.36081 -76.11623,-23.3159 -111.00595,-2.52262 -10.11271,6.02689 -26.29128,21.67942 -32.65532,31.59355 -23.67273,36.87822 -21.97547,83.81998 4.28637,118.54988 13.20331,17.46068 33.0271,30.99881 53.69352,36.66856 12.22891,3.35494 15.76908,3.73732 31.25349,3.37572 11.19408,-0.26141 16.58553,-0.85182 22.5557,-2.47 z"
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.88409662;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" />
</g>
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.88409662;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 337.93429,709.57856 C 296.89192,643.4647 253.04213,559.75825 224.56378,493.16149 169.02633,363.28693 150.98282,261.65547 171.43146,193.88963 c 17.85082,-59.15679 63.46079,-91.47841 140.5528,-99.603084 18.9208,-1.99405 59.32433,-1.454544 76.00292,1.014862 39.34819,5.825832 68.23577,18.578332 90.1854,39.812612 24.26494,23.47411 37.34998,53.51175 41.79214,95.9368 1.66212,15.87412 0.62078,55.18407 -1.97069,74.39246 -8.32095,61.67631 -30.32711,134.63906 -65.29358,216.48475 -27.17115,63.59925 -62.56443,133.60819 -98.83369,195.49599 l -5.37188,9.16626 z M 371.31557,363.5705 c 36.53068,-9.90151 63.98456,-37.38746 74.2958,-74.38259 1.79997,-6.45804 2.09593,-10.10409 2.08367,-25.6698 -0.0133,-16.90069 -0.19678,-18.74682 -2.68044,-26.96878 -3.20885,-10.62265 -8.82689,-22.70649 -14.45592,-31.09326 -5.38533,-8.02366 -19.28666,-21.77757 -27.37092,-27.08066 -34.08777,-22.36081 -76.11623,-23.3159 -111.00595,-2.52262 -10.11271,6.02689 -26.29128,21.67942 -32.65532,31.59355 -23.67273,36.87822 -21.97547,83.81998 4.28637,118.54988 13.20331,17.46068 33.0271,30.99881 53.69352,36.66856 12.22891,3.35494 15.76908,3.73732 31.25349,3.37572 11.19408,-0.26141 16.58553,-0.85182 22.5557,-2.47 z"
id="path4515"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.88409662;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 337.93429,709.57856 C 296.89192,643.4647 253.04213,559.75825 224.56378,493.16149 169.02633,363.28693 150.98282,261.65547 171.43146,193.88963 c 17.85082,-59.15679 63.46079,-91.47841 140.5528,-99.603084 18.9208,-1.99405 59.32433,-1.454544 76.00292,1.014862 39.34819,5.825832 68.23577,18.578332 90.1854,39.812612 24.26494,23.47411 37.34998,53.51175 41.79214,95.9368 1.66212,15.87412 0.62078,55.18407 -1.97069,74.39246 -8.32095,61.67631 -30.32711,134.63906 -65.29358,216.48475 -27.17115,63.59925 -62.56443,133.60819 -98.83369,195.49599 l -5.37188,9.16626 z M 371.31557,363.5705 c 36.53068,-9.90151 63.98456,-37.38746 74.2958,-74.38259 1.79997,-6.45804 2.09593,-10.10409 2.08367,-25.6698 -0.0133,-16.90069 -0.19678,-18.74682 -2.68044,-26.96878 -3.20885,-10.62265 -8.82689,-22.70649 -14.45592,-31.09326 -5.38533,-8.02366 -19.28666,-21.77757 -27.37092,-27.08066 -34.08777,-22.36081 -76.11623,-23.3159 -111.00595,-2.52262 -10.11271,6.02689 -26.29128,21.67942 -32.65532,31.59355 -23.67273,36.87822 -21.97547,83.81998 4.28637,118.54988 13.20331,17.46068 33.0271,30.99881 53.69352,36.66856 12.22891,3.35494 15.76908,3.73732 31.25349,3.37572 11.19408,-0.26141 16.58553,-0.85182 22.5557,-2.47 z"
id="path4517"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#fbff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:24.40106964;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 332.59248,686.71046 C 304.25672,639.15279 280.79868,595.92139 259.61857,552.22493 176.71284,381.18307 150.98137,251.61069 185.20879,177.52991 c 12.27182,-26.56073 34.99046,-48.37768 62.91251,-60.41553 25.08826,-10.81614 50.50283,-15.65408 87.21808,-16.60289 29.40672,-0.759951 48.21485,0.69003 68.88444,5.31053 31.16754,6.96723 51.56909,17.31969 70.00379,35.52239 19.4953,19.24993 31.10955,43.66303 37.00322,77.78056 2.93811,17.00825 2.90123,60.99729 -0.0695,82.96363 -11.30305,83.5763 -45.67154,183.23158 -103.27954,299.47061 -22.80514,46.01526 -57.47596,109.85734 -59.6604,109.85734 -0.49968,0 -7.53268,-11.11774 -15.62887,-24.70609 z m 38.29711,-323.0436 c 36.7408,-9.36339 65.07185,-37.70224 74.9782,-74.99884 3.63533,-13.68672 3.63628,-36.32868 0.002,-50.0222 -12.2674,-46.22211 -52.78275,-77.6198 -100.16039,-77.6198 -47.80986,0 -87.71585,31.08708 -100.27613,78.11589 -3.51529,13.16213 -3.46067,36.05202 0.11817,49.52611 10.94156,41.19407 43.96967,70.88294 86.12734,77.4196 10.16538,1.57616 27.79863,0.48753 39.21037,-2.42076 z"
id="path4501"
inkscape:connector-curvature="0" />
</svg>

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -0,0 +1,147 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
width="744.09448"
height="1052.3622"
id="svg2"
sodipodi:docname="yellow.svg"
inkscape:version="0.92.1 r15371">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1680"
inkscape:window-height="975"
id="namedview8"
showgrid="false"
inkscape:zoom="0.76875648"
inkscape:cx="226.41739"
inkscape:cy="759.33393"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<defs
id="defs4" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1">
<path
d="m 348.57143,732.36218 c 0,0 -418.556519,-636.613712 -8.57143,-642.85714 409.9851,-6.243428 8.57143,642.85714 8.57143,642.85714 z"
id="path2985"
style="fill:#fbff00;stroke:#000000;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;fill-opacity:1" />
<path
d="m 545.71429,353.79074 a 102.85714,102.85714 0 1 1 -205.71428,0 102.85714,102.85714 0 1 1 205.71428,0 z"
transform="translate(-97.142857,-90)"
id="path2987"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.01;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4484"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4486"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4488"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4490"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4492"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4494"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4496"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4498"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4500"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4502"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4504"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4506"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.32136917;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 335.98393,706.34068 C 305.19375,656.10048 269.88836,591.12684 247.16755,542.88908 193.30111,428.52713 166.42955,339.31593 163.8421,266.256 c -2.42871,-68.57748 16.7041,-114.97802 59.1045,-143.33918 30.6262,-20.48553 69.05894,-29.793905 122.82259,-29.747513 38.56388,0.03328 64.18442,4.272508 90.59672,14.990323 120.18389,48.7693 112.18018,224.51453 -22.67452,497.88562 -20.25241,41.05474 -54.37495,103.9675 -63.8009,117.63161 -1.54682,2.24231 -3.07599,0.33601 -13.90656,-17.33618 z M 372.1202,363.39631 c 35.64374,-9.53326 64.35795,-38.7622 73.63012,-74.94999 3.68235,-14.37162 3.41337,-37.05201 -0.60765,-51.23663 -5.30719,-18.72177 -12.98564,-31.68529 -27.19938,-45.92068 -10.55789,-10.57399 -14.61805,-13.5796 -25.71312,-19.03463 -16.63803,-8.18031 -28.71627,-11.05395 -46.46098,-11.05395 -17.61566,0 -29.68693,2.85335 -46.41684,10.9718 -11.15055,5.41097 -15.03872,8.28049 -25.77572,19.02285 -10.66149,10.66679 -13.65868,14.71682 -19.11248,25.82615 -9.03335,18.40087 -11.27588,27.84294 -11.19936,47.15443 0.0712,17.97389 2.30295,28.2412 9.49598,43.68719 13.72067,29.46311 42.76211,51.66556 75.34408,57.60125 9.39715,1.71194 34.24846,0.54446 44.01535,-2.06779 z"
id="path4508"
inkscape:connector-curvature="0" />
<g
id="g4513">
<path
inkscape:connector-curvature="0"
id="path4510"
d="M 337.93429,709.57856 C 296.89192,643.4647 253.04213,559.75825 224.56378,493.16149 169.02633,363.28693 150.98282,261.65547 171.43146,193.88963 c 17.85082,-59.15679 63.46079,-91.47841 140.5528,-99.603084 18.9208,-1.99405 59.32433,-1.454544 76.00292,1.014862 39.34819,5.825832 68.23577,18.578332 90.1854,39.812612 24.26494,23.47411 37.34998,53.51175 41.79214,95.9368 1.66212,15.87412 0.62078,55.18407 -1.97069,74.39246 -8.32095,61.67631 -30.32711,134.63906 -65.29358,216.48475 -27.17115,63.59925 -62.56443,133.60819 -98.83369,195.49599 l -5.37188,9.16626 z M 371.31557,363.5705 c 36.53068,-9.90151 63.98456,-37.38746 74.2958,-74.38259 1.79997,-6.45804 2.09593,-10.10409 2.08367,-25.6698 -0.0133,-16.90069 -0.19678,-18.74682 -2.68044,-26.96878 -3.20885,-10.62265 -8.82689,-22.70649 -14.45592,-31.09326 -5.38533,-8.02366 -19.28666,-21.77757 -27.37092,-27.08066 -34.08777,-22.36081 -76.11623,-23.3159 -111.00595,-2.52262 -10.11271,6.02689 -26.29128,21.67942 -32.65532,31.59355 -23.67273,36.87822 -21.97547,83.81998 4.28637,118.54988 13.20331,17.46068 33.0271,30.99881 53.69352,36.66856 12.22891,3.35494 15.76908,3.73732 31.25349,3.37572 11.19408,-0.26141 16.58553,-0.85182 22.5557,-2.47 z"
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.88409662;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" />
</g>
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.88409662;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 337.93429,709.57856 C 296.89192,643.4647 253.04213,559.75825 224.56378,493.16149 169.02633,363.28693 150.98282,261.65547 171.43146,193.88963 c 17.85082,-59.15679 63.46079,-91.47841 140.5528,-99.603084 18.9208,-1.99405 59.32433,-1.454544 76.00292,1.014862 39.34819,5.825832 68.23577,18.578332 90.1854,39.812612 24.26494,23.47411 37.34998,53.51175 41.79214,95.9368 1.66212,15.87412 0.62078,55.18407 -1.97069,74.39246 -8.32095,61.67631 -30.32711,134.63906 -65.29358,216.48475 -27.17115,63.59925 -62.56443,133.60819 -98.83369,195.49599 l -5.37188,9.16626 z M 371.31557,363.5705 c 36.53068,-9.90151 63.98456,-37.38746 74.2958,-74.38259 1.79997,-6.45804 2.09593,-10.10409 2.08367,-25.6698 -0.0133,-16.90069 -0.19678,-18.74682 -2.68044,-26.96878 -3.20885,-10.62265 -8.82689,-22.70649 -14.45592,-31.09326 -5.38533,-8.02366 -19.28666,-21.77757 -27.37092,-27.08066 -34.08777,-22.36081 -76.11623,-23.3159 -111.00595,-2.52262 -10.11271,6.02689 -26.29128,21.67942 -32.65532,31.59355 -23.67273,36.87822 -21.97547,83.81998 4.28637,118.54988 13.20331,17.46068 33.0271,30.99881 53.69352,36.66856 12.22891,3.35494 15.76908,3.73732 31.25349,3.37572 11.19408,-0.26141 16.58553,-0.85182 22.5557,-2.47 z"
id="path4515"
inkscape:connector-curvature="0" />
<path
style="opacity:0;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.88409662;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 337.93429,709.57856 C 296.89192,643.4647 253.04213,559.75825 224.56378,493.16149 169.02633,363.28693 150.98282,261.65547 171.43146,193.88963 c 17.85082,-59.15679 63.46079,-91.47841 140.5528,-99.603084 18.9208,-1.99405 59.32433,-1.454544 76.00292,1.014862 39.34819,5.825832 68.23577,18.578332 90.1854,39.812612 24.26494,23.47411 37.34998,53.51175 41.79214,95.9368 1.66212,15.87412 0.62078,55.18407 -1.97069,74.39246 -8.32095,61.67631 -30.32711,134.63906 -65.29358,216.48475 -27.17115,63.59925 -62.56443,133.60819 -98.83369,195.49599 l -5.37188,9.16626 z M 371.31557,363.5705 c 36.53068,-9.90151 63.98456,-37.38746 74.2958,-74.38259 1.79997,-6.45804 2.09593,-10.10409 2.08367,-25.6698 -0.0133,-16.90069 -0.19678,-18.74682 -2.68044,-26.96878 -3.20885,-10.62265 -8.82689,-22.70649 -14.45592,-31.09326 -5.38533,-8.02366 -19.28666,-21.77757 -27.37092,-27.08066 -34.08777,-22.36081 -76.11623,-23.3159 -111.00595,-2.52262 -10.11271,6.02689 -26.29128,21.67942 -32.65532,31.59355 -23.67273,36.87822 -21.97547,83.81998 4.28637,118.54988 13.20331,17.46068 33.0271,30.99881 53.69352,36.66856 12.22891,3.35494 15.76908,3.73732 31.25349,3.37572 11.19408,-0.26141 16.58553,-0.85182 22.5557,-2.47 z"
id="path4517"
inkscape:connector-curvature="0" />
</svg>

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 977 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 B

Some files were not shown because too many files have changed in this diff Show More