This commit is contained in:
Igor I
2025-01-09 18:41:02 +05:00
parent 96b3c3ed1e
commit 29888de73b
5 changed files with 145 additions and 149 deletions

View File

@ -318,7 +318,7 @@ public class AirTemperature implements ServletContextAware {
if(!country_id.isEmpty()) db_ru=true;
}
if(country_id!=null && !country_id.equals("") && !country_id.equals("null"))
if(country_id!=null && !country_id.isEmpty() && !country_id.equals("null"))
{
String sql= """
insert into main.air_temperature(
@ -333,44 +333,36 @@ public class AirTemperature implements ServletContextAware {
main.get_point_id(?,?,?)
);
""";
//String point_id=null;
if(db_all) {
//point_id = DBTools.getPointId(st_all, country_id, lon, lat);
//if(point_id!=null) {
try (PreparedStatement pstmt = conn_all.prepareStatement(sql)) {
pstmt.setFloat(1, dataArrayTmp.getFloat(pos));
pstmt.setLong(2, Long.valueOf(country_id));
//pstmt.setLong(3, Long.valueOf(point_id));
pstmt.setString(3, date + " " + time);
pstmt.setInt(4, Integer.valueOf(forecast));
pstmt.setLong(5, Long.valueOf(country_id));
pstmt.setDouble(6, lon);
pstmt.setDouble(7, lat);
pstmt.executeUpdate();
} catch (SQLException ex) {
logger.error("E10:"+ex.getMessage(),ex);
throw new Exception("Failed insert ...");
}
//}
try (PreparedStatement pstmt = conn_all.prepareStatement(sql)) {
pstmt.setFloat(1, dataArrayTmp.getFloat(pos));
pstmt.setLong(2, Long.valueOf(country_id));
pstmt.setString(3, date + " " + time);
pstmt.setInt(4, Integer.valueOf(forecast));
pstmt.setLong(5, Long.valueOf(country_id));
pstmt.setDouble(6, lon);
pstmt.setDouble(7, lat);
pstmt.executeUpdate();
} catch (SQLException ex) {
logger.error("E10:"+ex.getMessage(),ex);
throw new Exception("Failed insert ...");
}
}
if(db_ru) {
//point_id = DBTools.getPointId(st_ru, country_id, lon, lat);
//if(point_id!=null) {
try (PreparedStatement pstmt = conn_ru.prepareStatement(sql)) {
pstmt.setFloat(1, dataArrayTmp.getFloat(pos));
pstmt.setLong(2, Long.valueOf(country_id));
//pstmt.setLong(3, Long.valueOf(point_id));
pstmt.setString(3, date + " " + time);
pstmt.setInt(4, Integer.valueOf(forecast));
pstmt.setLong(5, Long.valueOf(country_id));
pstmt.setDouble(6, lon);
pstmt.setDouble(7, lat);
pstmt.executeUpdate();
} catch (SQLException ex) {
logger.error("E11:"+ex.getMessage(),ex);
throw new Exception("Failed insert ...");
}
//}
try (PreparedStatement pstmt = conn_ru.prepareStatement(sql)) {
pstmt.setFloat(1, dataArrayTmp.getFloat(pos));
pstmt.setLong(2, Long.valueOf(country_id));
pstmt.setString(3, date + " " + time);
pstmt.setInt(4, Integer.valueOf(forecast));
pstmt.setLong(5, Long.valueOf(country_id));
pstmt.setDouble(6, lon);
pstmt.setDouble(7, lat);
pstmt.executeUpdate();
} catch (SQLException ex) {
logger.error("E11:"+ex.getMessage(),ex);
throw new Exception("Failed insert ...");
}
}
}
}

View File

@ -312,72 +312,71 @@ public class Precipitation implements ServletContextAware {
}
int pos=0;
for(int nLat=0;nLat<dataArrayLat.getSize();nLat++)
{
for(int nLon=0;nLon<dataArrayLon.getSize();nLon++)
try{
for(int nLat=0;nLat<dataArrayLat.getSize();nLat++)
{
//WGS84 Bounds: -180.0000, -90.0000, 180.0000, 90.0000
//Projected Bounds: -180.0000, -90.0000, 180.0000, 90.0000
double lon = dataArrayLon.getFloat(nLon);
if(lon>180) lon=lon-360;
double lat = dataArrayLat.getFloat(nLat);
if(lat>29 && lat<67 && lon>17 && lon<180) //Central Asia
for(int nLon=0;nLon<dataArrayLon.getSize();nLon++)
{
if(!Float.isNaN(dataArrayTmp.getFloat(pos))) //On the water none temperatyre.
{
String country_id="";
boolean db_all=false,db_ru=false;
if(country_id.isEmpty()) {
country_id = DBTools.getCountryId(st_all, lon, lat);
if(!country_id.isEmpty()) db_all=true;
}
if(country_id.isEmpty()) {
country_id = DBTools.getCountryId(st_ru, lon, lat);
if(!country_id.isEmpty()) db_ru=true;
}
//WGS84 Bounds: -180.0000, -90.0000, 180.0000, 90.0000
//Projected Bounds: -180.0000, -90.0000, 180.0000, 90.0000
double lon = dataArrayLon.getFloat(nLon);
if(lon>180) lon=lon-360;
double lat = dataArrayLat.getFloat(nLat);
if(country_id!=null && !country_id.equals("") && !country_id.equals("null"))
if(lat>29 && lat<67 && lon>17 && lon<180) //Central Asia
{
if(!Float.isNaN(dataArrayTmp.getFloat(pos))) //On the water none temperatyre.
{
String sql= """
insert into main.precipitation(
val,
country_id,
point_id,
air_temperature_date_id
)values(
?,
?,
?,
main.get_precipitation_date(cast(to_timestamp(?, 'YYYYMMDD HH24') as timestamp without time zone),?)
);
""";
String point_id=null;
if(db_all) {
point_id = DBTools.getPointId(st_all, country_id, lon, lat);
if(point_id!=null) {
String country_id="";
boolean db_all=false,db_ru=false;
if(country_id.isEmpty()) {
country_id = DBTools.getCountryId(st_all, lon, lat);
if(!country_id.isEmpty()) db_all=true;
}
if(country_id.isEmpty()) {
country_id = DBTools.getCountryId(st_ru, lon, lat);
if(!country_id.isEmpty()) db_ru=true;
}
if(country_id!=null && !country_id.isEmpty() && !country_id.equals("null"))
{
String sql= """
insert into main.precipitation(
val,
country_id,
air_temperature_date_id,
point_id
)values(
?,
?,
main.get_precipitation_date(cast(to_timestamp(?, 'YYYYMMDD HH24') as timestamp without time zone),?),
main.get_point_id(?,?,?)
);
""";
if(db_all) {
try (PreparedStatement pstmt = conn_all.prepareStatement(sql)) {
pstmt.setFloat(1, dataArrayTmp.getFloat(pos));
pstmt.setLong(2, Long.valueOf(country_id));
pstmt.setLong(3, Long.valueOf(point_id));
pstmt.setString(4, date + " " + time);
pstmt.setInt(5, Integer.valueOf(forecast));
pstmt.setString(3, date + " " + time);
pstmt.setInt(4, Integer.valueOf(forecast));
pstmt.setLong(5, Long.valueOf(country_id));
pstmt.setDouble(6, lon);
pstmt.setDouble(7, lat);
pstmt.executeUpdate();
} catch (SQLException ex) {
logger.error("E10:"+ex.getMessage(),ex);
throw new Exception("Failed insert precipitation...");
}
}
}
if(db_ru) {
point_id = DBTools.getPointId(st_ru, country_id, lon, lat);
if(point_id!=null) {
if(db_ru) {
try (PreparedStatement pstmt = conn_ru.prepareStatement(sql)) {
pstmt.setFloat(1, dataArrayTmp.getFloat(pos));
pstmt.setLong(2, Long.valueOf(country_id));
pstmt.setLong(3, Long.valueOf(point_id));
pstmt.setString(4, date + " " + time);
pstmt.setInt(5, Integer.valueOf(forecast));
pstmt.setString(3, date + " " + time);
pstmt.setInt(4, Integer.valueOf(forecast));
pstmt.setLong(5, Long.valueOf(country_id));
pstmt.setDouble(6, lon);
pstmt.setDouble(7, lat);
pstmt.executeUpdate();
} catch (SQLException ex) {
logger.error("E10:"+ex.getMessage(),ex);
@ -385,14 +384,15 @@ public class Precipitation implements ServletContextAware {
}
}
}
}
}
}
pos++;
}
}
}
}
pos++;
}
}
} catch (Exception ex) {
logger.error(ex.getMessage(),ex);
}
//Cut data piece from big country of Russia
try {
String sql="delete from main.points p where country_id=7 and not ST_Contains(ST_SetSRID(ST_GeomFromText('POLYGON((10.00 66.00,10.00 40.00,179.00 40.00,179.00 66.00,10.00 66.00))'),4326),ST_SetSRID(st_makepoint(p.lon,p.lat),4326));";

View File

@ -331,73 +331,71 @@ public class SoilTmperature implements ServletContextAware {
}
int pos=0;
for(int nLat=0;nLat<dataArrayLat.getSize();nLat++)
{
for(int nLon=0;nLon<dataArrayLon.getSize();nLon++)
try{
for(int nLat=0;nLat<dataArrayLat.getSize();nLat++)
{
//WGS84 Bounds: -180.0000, -90.0000, 180.0000, 90.0000
//Projected Bounds: -180.0000, -90.0000, 180.0000, 90.0000
double lon = dataArrayLon.getFloat(nLon);
if(lon>180) lon=lon-360;
double lat = dataArrayLat.getFloat(nLat);
if(lat>29 && lat<67 && lon>17 && lon<180) //Central Asia
for(int nLon=0;nLon<dataArrayLon.getSize();nLon++)
{
if(!Float.isNaN(dataArrayTmp.getFloat(pos))) //On the water none temperatyre.
//WGS84 Bounds: -180.0000, -90.0000, 180.0000, 90.0000
//Projected Bounds: -180.0000, -90.0000, 180.0000, 90.0000
double lon = dataArrayLon.getFloat(nLon);
if(lon>180) lon=lon-360;
double lat = dataArrayLat.getFloat(nLat);
if(lat>29 && lat<67 && lon>17 && lon<180) //Central Asia
{
String country_id="";
boolean db_all=false,db_ru=false;
if(country_id.isEmpty()) {
country_id = DBTools.getCountryId(st_all, lon, lat);
if(!country_id.isEmpty()) db_all=true;
}
if(country_id.isEmpty()) {
country_id = DBTools.getCountryId(st_ru, lon, lat);
if(!country_id.isEmpty()) db_ru=true;
}
if(!country_id.isEmpty() && !country_id.equals("null"))
if(!Float.isNaN(dataArrayTmp.getFloat(pos))) //On the water none temperatyre.
{
String country_id="";
boolean db_all=false,db_ru=false;
if(country_id.isEmpty()) {
country_id = DBTools.getCountryId(st_all, lon, lat);
if(!country_id.isEmpty()) db_all=true;
}
if(country_id.isEmpty()) {
country_id = DBTools.getCountryId(st_ru, lon, lat);
if(!country_id.isEmpty()) db_ru=true;
}
String sql="""
insert into main.soil_temperature(
val,
country_id,
point_id,
soil_temperature_date_id
)values(
?,
?,
?,
main.get_soil_temperature_date(cast(to_timestamp(?, 'YYYYMMDD HH24') as timestamp without time zone),?)
);
""";
String point_id=null;
if(db_all) {
point_id = DBTools.getPointId(st_all, country_id, lon, lat);
if(point_id!=null) {
if(country_id!=null && !country_id.isEmpty() && !country_id.equals("null"))
{
String sql="""
insert into main.soil_temperature(
val,
country_id,
soil_temperature_date_id,
point_id
)values(
?,
?,
main.get_soil_temperature_date(cast(to_timestamp(?, 'YYYYMMDD HH24') as timestamp without time zone),?),
main.get_point_id(?,?,?)
);
""";
if(db_all) {
try (PreparedStatement pstmt = conn_all.prepareStatement(sql)) {
pstmt.setFloat(1, dataArrayTmp.getFloat(pos));
pstmt.setLong(2, Long.valueOf(country_id));
pstmt.setLong(3, Long.valueOf(point_id));
pstmt.setString(4, date + " " + time);
pstmt.setInt(5, Integer.valueOf(forecast));
pstmt.setString(3, date + " " + time);
pstmt.setInt(4, Integer.valueOf(forecast));
pstmt.setLong(5, Long.valueOf(country_id));
pstmt.setDouble(6, lon);
pstmt.setDouble(7, lat);
pstmt.executeUpdate();
} catch (SQLException ex) {
logger.error("E10:"+ex.getMessage(),ex);
throw new Exception("Failed insert soil temperature...");
}
}
}
if(db_ru) {
point_id = DBTools.getPointId(st_ru, country_id, lon, lat);
if(point_id!=null) {
if(db_ru) {
try (PreparedStatement pstmt = conn_ru.prepareStatement(sql)) {
pstmt.setFloat(1, dataArrayTmp.getFloat(pos));
pstmt.setLong(2, Long.valueOf(country_id));
pstmt.setLong(3, Long.valueOf(point_id));
pstmt.setString(4, date + " " + time);
pstmt.setInt(5, Integer.valueOf(forecast));
pstmt.setString(3, date + " " + time);
pstmt.setInt(4, Integer.valueOf(forecast));
pstmt.setLong(5, Long.valueOf(country_id));
pstmt.setDouble(6, lon);
pstmt.setDouble(7, lat);
pstmt.executeUpdate();
} catch (SQLException ex) {
logger.error("E10:"+ex.getMessage(),ex);
@ -406,11 +404,12 @@ public class SoilTmperature implements ServletContextAware {
}
}
}
}
pos++;
}
pos++;
}
} catch (Exception ex) {
logger.error(ex.getMessage(),ex);
}
//Cut data piece from big country of Russia