diff --git a/pom.xml b/pom.xml
index f5d987b2779347151b2b7a51ea8794b45516d05d..36ed0435a4b0e2699460490a6380d19cb61975b7 100755
--- a/pom.xml
+++ b/pom.xml
@@ -9,15 +9,19 @@
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <geotools.version>13.4</geotools.version>
+        <geotools.version>20.2</geotools.version>
     </properties>
     <name>VIPSLogic</name>
     <url>http://maven.apache.org</url>
 
     <repositories>
-        <repository>
+        <!--repository>
             <id>jitpack.io</id>
             <url>https://jitpack.io</url>
+        </repository-->
+        <repository>
+            <id>mvnrepository.com</id>
+            <url>https://mvnrepository.com</url>
         </repository>
         <repository>
             <id>bedatadriven</id>
@@ -49,15 +53,15 @@
             <version>4.2.0</version>
         </dependency>
         <dependency>
-            <groupId>com.github.bjornharrtell</groupId>
-            <!--groupId>org.wololo</groupId-->
+            <!--groupId>com.github.bjornharrtell</groupId-->
+            <groupId>org.wololo</groupId>
             <artifactId>jts2geojson</artifactId>
-            <version>0.10.0</version>
+            <version>0.12.0</version>
         </dependency>
         <dependency>
             <groupId>org.hibernate</groupId>
             <artifactId>hibernate-spatial</artifactId>
-            <version>5.3.9.Final</version>
+            <version>5.4.2.Final</version>
             <exclusions>
                 <exclusion>
                     <artifactId>postgresql</artifactId>
@@ -168,8 +172,7 @@
         <dependency>
             <groupId>org.hibernate</groupId>
             <artifactId>hibernate-core</artifactId>
-            <version>5.3.9.Final</version>
-            <scope>provided</scope>
+            <version>5.4.2.Final</version>
         </dependency>
         <dependency>
             <groupId>org.postgresql</groupId>
@@ -183,6 +186,12 @@
             <version>2.9.8</version>
             <type>jar</type>
         </dependency>
+        <dependency>
+            <groupId>org.locationtech.jts</groupId>
+            <artifactId>jts-core</artifactId>
+            <version>1.16.0</version>
+            <type>jar</type>
+        </dependency>
         <dependency>
             <groupId>javax</groupId>
             <artifactId>javaee-web-api</artifactId>
@@ -251,12 +260,12 @@
         <dependency>
             <groupId>org.geotools</groupId>
             <artifactId>gt-api</artifactId>
-            <version>17.2</version>
+            <version>20.3</version>
         </dependency>
         <dependency>
             <groupId>org.geotools</groupId>
             <artifactId>gt-epsg-hsql</artifactId>
-            <version>17.2</version>
+            <version>20.3</version>
         </dependency>
         <dependency>
             <groupId>com.webcohesion.enunciate</groupId>
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/OrganizationController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/OrganizationController.java
index 67a068d77657ddf6b1b562ea9056eda6f962e60c..68f30fcbefa199f806de82884ecc2dadf561afaa 100644
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/OrganizationController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/OrganizationController.java
@@ -20,11 +20,8 @@
 package no.nibio.vips.logic.controller.servlet;
 
 import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
-import java.util.Locale;
 import java.util.TimeZone;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/PointOfInterestController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/PointOfInterestController.java
index 20676a24358b948d44aa14ceb81f4b6061ee98c6..b3fb1d1b33bc6cf3ebc6aa3f24bea3864bd87197 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/PointOfInterestController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/PointOfInterestController.java
@@ -19,9 +19,9 @@
 
 package no.nibio.vips.logic.controller.servlet;
 
-import com.vividsolutions.jts.geom.Coordinate;
-import com.vividsolutions.jts.geom.GeometryFactory;
-import com.vividsolutions.jts.geom.Point;
+import org.locationtech.jts.geom.Coordinate;
+import org.locationtech.jts.geom.GeometryFactory;
+import org.locationtech.jts.geom.Point;
 import java.io.IOException;
 import java.net.URISyntaxException;
 import java.util.Collections;
diff --git a/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java b/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java
index 0b16c62705c583f6ec075420a32f8ee154fa3fb6..b23cbba09fd738c973e9d6d39bfa07e39c2fa37b 100755
--- a/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java
+++ b/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java
@@ -20,7 +20,6 @@
 package no.nibio.vips.logic.controller.session;
 
 import com.fasterxml.jackson.databind.JsonNode;
-import com.google.common.base.Functions;
 import java.util.Calendar;
 import java.util.TimeZone;
 import de.micromata.opengis.kml.v_2_2_0.Coordinate;
@@ -51,7 +50,6 @@ import javax.persistence.EntityManager;
 import javax.persistence.NoResultException;
 import javax.persistence.PersistenceContext;
 import javax.persistence.Query;
-import javax.ws.rs.ProcessingException;
 import javax.ws.rs.client.Client;
 import javax.ws.rs.client.ClientBuilder;
 import javax.ws.rs.client.WebTarget;
diff --git a/src/main/java/no/nibio/vips/logic/entity/ForecastResult.java b/src/main/java/no/nibio/vips/logic/entity/ForecastResult.java
index 4d4d1f2a269835f7a293dc96ccdb1478861ba883..f345707d5d904e7c507ef92579bb14b61b422780 100755
--- a/src/main/java/no/nibio/vips/logic/entity/ForecastResult.java
+++ b/src/main/java/no/nibio/vips/logic/entity/ForecastResult.java
@@ -45,7 +45,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.vividsolutions.jts.geom.Geometry;
+import org.locationtech.jts.geom.Geometry;
 
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/entity/Gis.java b/src/main/java/no/nibio/vips/logic/entity/Gis.java
index b0fef7e6ef89b658adfa0b15517f91bc5f1e4e14..7ee47bb64d87b1f1184284d87a8c1846d6a6dba5 100755
--- a/src/main/java/no/nibio/vips/logic/entity/Gis.java
+++ b/src/main/java/no/nibio/vips/logic/entity/Gis.java
@@ -20,8 +20,8 @@
 package no.nibio.vips.logic.entity;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.vividsolutions.jts.geom.Coordinate;
-import com.vividsolutions.jts.geom.Geometry;
+import org.locationtech.jts.geom.Coordinate;
+import org.locationtech.jts.geom.Geometry;
 import java.io.Serializable;
 import javax.persistence.Basic;
 import javax.persistence.Column;
diff --git a/src/main/java/no/nibio/vips/logic/entity/Organization.java b/src/main/java/no/nibio/vips/logic/entity/Organization.java
index a02f5f55c5ddd011e90ca43606cb85550ea7657e..aaa394b877711f52016cdf6224a690c352989fb0 100755
--- a/src/main/java/no/nibio/vips/logic/entity/Organization.java
+++ b/src/main/java/no/nibio/vips/logic/entity/Organization.java
@@ -19,7 +19,7 @@
 
 package no.nibio.vips.logic.entity;
 
-import com.vividsolutions.jts.geom.Point;
+import org.locationtech.jts.geom.Point;
 import java.io.Serializable;
 import java.util.Set;
 import javax.persistence.Basic;
@@ -40,6 +40,7 @@ import javax.xml.bind.annotation.XmlTransient;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import javax.persistence.FetchType;
 import javax.persistence.OneToOne;
+import org.hibernate.annotations.Type;
 
 /**
  * @copyright 2019 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/PointOfInterest.java b/src/main/java/no/nibio/vips/logic/entity/PointOfInterest.java
index d047e6dafa7fdb065c2f53ef706da9c5f16f54f3..f8325ed7b538bac528c7bb2ba202491292fc47f7 100755
--- a/src/main/java/no/nibio/vips/logic/entity/PointOfInterest.java
+++ b/src/main/java/no/nibio/vips/logic/entity/PointOfInterest.java
@@ -39,7 +39,7 @@ import javax.persistence.Transient;
 import javax.validation.constraints.Size;
 import javax.xml.bind.annotation.XmlRootElement;
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.vividsolutions.jts.geom.Geometry;
+import org.locationtech.jts.geom.Geometry;
 import java.util.Set;
 import javax.persistence.CascadeType;
 import javax.persistence.DiscriminatorType;
diff --git a/src/main/java/no/nibio/vips/logic/gis/GeometryEntity.java b/src/main/java/no/nibio/vips/logic/gis/GeometryEntity.java
index 81fc2d344275a100080660c09915f3539d203e37..6589880e44b7d844b7c754589c8c47ddd2479756 100755
--- a/src/main/java/no/nibio/vips/logic/gis/GeometryEntity.java
+++ b/src/main/java/no/nibio/vips/logic/gis/GeometryEntity.java
@@ -19,7 +19,7 @@
 
 package no.nibio.vips.logic.gis;
 
-import com.vividsolutions.jts.geom.Geometry;
+import org.locationtech.jts.geom.Geometry;
 import java.io.Serializable;
 import javax.persistence.Column;
 import javax.persistence.Entity;
diff --git a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSite.java b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSite.java
index bf96fa03642907de80bd4e7c0b8caef084f8b059..3e425dcd7dd80a0846758d94cdec9e4e244f7b94 100755
--- a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSite.java
+++ b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSite.java
@@ -19,7 +19,7 @@
 
 package no.nibio.vips.logic.modules.applefruitmoth;
 
-import com.vividsolutions.jts.geom.Geometry;
+import org.locationtech.jts.geom.Geometry;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.HashSet;
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/model/grid/preprocessor/ZymoseptoriaSimpleRiskGridModelPreprocessor.java b/src/main/java/no/nibio/vips/logic/scheduling/model/grid/preprocessor/ZymoseptoriaSimpleRiskGridModelPreprocessor.java
index e22771e2ca96419ce0a7e9a87ec61d9d623a92b0..215afe76a8723cec5371612d9524323dced4a5d8 100644
--- a/src/main/java/no/nibio/vips/logic/scheduling/model/grid/preprocessor/ZymoseptoriaSimpleRiskGridModelPreprocessor.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/model/grid/preprocessor/ZymoseptoriaSimpleRiskGridModelPreprocessor.java
@@ -19,7 +19,7 @@
 
 package no.nibio.vips.logic.scheduling.model.grid.preprocessor;
 
-import com.vividsolutions.jts.geom.Coordinate;
+import org.locationtech.jts.geom.Coordinate;
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
 import java.time.temporal.ChronoUnit;
diff --git a/src/main/java/no/nibio/vips/logic/service/ModelFormService.java b/src/main/java/no/nibio/vips/logic/service/ModelFormService.java
index 30f5099d740d8fa0cb870d40c77dbf0717cb9694..04b997c65113b79fbf652011cef02f47f73f90a0 100644
--- a/src/main/java/no/nibio/vips/logic/service/ModelFormService.java
+++ b/src/main/java/no/nibio/vips/logic/service/ModelFormService.java
@@ -19,15 +19,13 @@
 
 package no.nibio.vips.logic.service;
 
-import com.vividsolutions.jts.geom.Coordinate;
+import org.locationtech.jts.geom.Coordinate;
 import com.webcohesion.enunciate.metadata.Facet;
 import java.util.Date;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.TimeZone;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
@@ -44,16 +42,13 @@ import no.nibio.vips.logic.entity.Organization;
 import no.nibio.vips.logic.entity.PointOfInterestWeatherStation;
 import no.nibio.vips.logic.entity.WeatherStationDataSource;
 import no.nibio.vips.logic.scheduling.model.PreprocessorException;
-import no.nibio.vips.logic.scheduling.model.preprocessor.SeptoriaApiicolaModelPreprocessor;
 import no.nibio.vips.logic.scheduling.model.preprocessor.SeptoriaHumidityModelPreprocessor;
 import no.nibio.vips.logic.util.RunModelException;
 import no.nibio.vips.logic.util.SessionControllerGetter;
 import no.nibio.vips.logic.util.SystemTime;
 import no.nibio.vips.util.ParseRESTParamUtil;
-import no.nibio.vips.util.WeatherElements;
 import no.nibio.vips.util.WeatherUtil;
 import no.nibio.vips.util.XDate;
-import no.nibio.vips.util.weather.WeatherDataSourceException;
 import no.nibio.vips.util.weather.WeatherDataSourceUtil;
 
 /**
@@ -183,6 +178,7 @@ public class ModelFormService {
             ModelConfiguration mConf = new SeptoriaHumidityModelPreprocessor().getModelConfiguration(fConf);
 
             Integer VIPSCoreUserId = organization.getDefaultVipsCoreUserId();
+            System.out.println("defaultVIPScoreUserId = " + VIPSCoreUserId);
 
             List<Result>results = SessionControllerGetter.getForecastBean().runForecast(mConf, VIPSCoreUserId);
 
diff --git a/src/main/java/no/nibio/vips/logic/util/GISEntityUtil.java b/src/main/java/no/nibio/vips/logic/util/GISEntityUtil.java
index 0000b69afdff9fb6ed58ff5f324e9329dd604f43..6b9160c76ffb3e4230a69889ebe84473d3b7d142 100755
--- a/src/main/java/no/nibio/vips/logic/util/GISEntityUtil.java
+++ b/src/main/java/no/nibio/vips/logic/util/GISEntityUtil.java
@@ -146,7 +146,7 @@ public class GISEntityUtil {
     
     
     
-    public de.micromata.opengis.kml.v_2_2_0.Coordinate getKMLCoordinateFromJTSCoordinate(com.vividsolutions.jts.geom.Coordinate jtsCoordinate)
+    public de.micromata.opengis.kml.v_2_2_0.Coordinate getKMLCoordinateFromJTSCoordinate(org.locationtech.jts.geom.Coordinate jtsCoordinate)
     {
         return new de.micromata.opengis.kml.v_2_2_0.Coordinate(
                 jtsCoordinate.x, 
diff --git a/src/main/java/no/nibio/web/forms/FormField.java b/src/main/java/no/nibio/web/forms/FormField.java
index 65e23918e16b8888104ca29dfe69439ca0273245..b99a15e2e90f75591b54a3bad0f4e7b101c1d043 100755
--- a/src/main/java/no/nibio/web/forms/FormField.java
+++ b/src/main/java/no/nibio/web/forms/FormField.java
@@ -21,10 +21,10 @@ package no.nibio.web.forms;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.vividsolutions.jts.geom.Coordinate;
-import com.vividsolutions.jts.geom.GeometryFactory;
-import com.vividsolutions.jts.geom.Point;
-import com.vividsolutions.jts.geom.PrecisionModel;
+import org.locationtech.jts.geom.Coordinate;
+import org.locationtech.jts.geom.GeometryFactory;
+import org.locationtech.jts.geom.Point;
+import org.locationtech.jts.geom.PrecisionModel;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
diff --git a/src/test/java/no/nibio/vips/logic/entity/ObservationTest.java b/src/test/java/no/nibio/vips/logic/entity/ObservationTest.java
index b3fc6529922d8eee10d3063045ce7a67ed928c08..d1c5c3ee961e2d1cd9832c4944be80ff0cc0fb01 100755
--- a/src/test/java/no/nibio/vips/logic/entity/ObservationTest.java
+++ b/src/test/java/no/nibio/vips/logic/entity/ObservationTest.java
@@ -18,9 +18,9 @@
  */
 package no.nibio.vips.logic.entity;
 
-import com.vividsolutions.jts.geom.Coordinate;
-import com.vividsolutions.jts.geom.GeometryCollection;
-import com.vividsolutions.jts.geom.Point;
+import org.locationtech.jts.geom.Coordinate;
+import org.locationtech.jts.geom.GeometryCollection;
+import org.locationtech.jts.geom.Point;
 import java.util.Date;
 import org.junit.After;
 import org.junit.AfterClass;
diff --git a/src/test/java/no/nibio/vips/logic/test/mock/MockModel.java b/src/test/java/no/nibio/vips/logic/test/mock/MockModel.java
index 022dab95728cd1a68831ce407bee99bd969545d8..27b0cd98b5aac157e08f3baf7dfa1e8b2ec1aa1e 100644
--- a/src/test/java/no/nibio/vips/logic/test/mock/MockModel.java
+++ b/src/test/java/no/nibio/vips/logic/test/mock/MockModel.java
@@ -19,8 +19,8 @@
 
 package no.nibio.vips.logic.test.mock;
 
-import com.vividsolutions.jts.geom.Coordinate;
-import com.vividsolutions.jts.geom.GeometryFactory;
+import org.locationtech.jts.geom.Coordinate;
+import org.locationtech.jts.geom.GeometryFactory;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Date;
diff --git a/src/test/java/no/nibio/vips/util/weather/YrWeatherForecastProviderTest.java b/src/test/java/no/nibio/vips/util/weather/YrWeatherForecastProviderTest.java
index b7294e0c7ca96519f61d6081db62b27faeb6fe8f..4188d964d3d2f5bb00cf9a159a921946d1ac8c2d 100755
--- a/src/test/java/no/nibio/vips/util/weather/YrWeatherForecastProviderTest.java
+++ b/src/test/java/no/nibio/vips/util/weather/YrWeatherForecastProviderTest.java
@@ -18,8 +18,8 @@
  */
 package no.nibio.vips.util.weather;
 
-import com.vividsolutions.jts.geom.Coordinate;
-import com.vividsolutions.jts.geom.Point;
+import org.locationtech.jts.geom.Coordinate;
+import org.locationtech.jts.geom.Point;
 import java.util.Collections;
 import java.util.List;
 import no.nibio.vips.entity.WeatherObservation;