Skip to content

Commit

Permalink
fix_NM_dynamic
Browse files Browse the repository at this point in the history
  • Loading branch information
pierromond committed Apr 24, 2024
1 parent 8a7c413 commit e1a3f8d
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 66 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@
import org.h2gis.utilities.GeometryTableUtilities;
import org.h2gis.utilities.JDBCUtilities;
import org.locationtech.jts.geom.LineString;
import org.noise_planet.noisemodelling.emission.DirectionAttributes;
import org.noise_planet.noisemodelling.emission.RailWayLW;
import org.noise_planet.noisemodelling.jdbc.utils.StringPreparedStatements;
import org.noise_planet.noisemodelling.pathfinder.CnossosPropagationData;
import org.noise_planet.noisemodelling.pathfinder.IComputeRaysOut;
Expand All @@ -43,7 +41,10 @@
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.ConcurrentLinkedDeque;
import java.util.zip.GZIPOutputStream;

Expand All @@ -62,10 +63,6 @@ public class LTPointNoiseMapFactory implements PointNoiseMap.PropagationProcessD
LTComputeRaysOut.LtData ltData = new LTComputeRaysOut.LtData();
int srid;

/**
* Attenuation and other attributes relative to direction on sphere
*/
public Map<Integer, DirectionAttributes> directionAttributes = new HashMap<>();


public LTPointNoiseMapFactory(Connection connection, LTConfig ltConfig) {
Expand All @@ -92,13 +89,6 @@ public LTComputeRaysOut.LtData getLtData() {
return ltData;
}

public void insertTrainDirectivity() {
directionAttributes.clear();
directionAttributes.put(0, new LTPropagationProcessData.OmnidirectionalDirection());
for(RailWayLW.TrainNoiseSource noiseSource : RailWayLW.TrainNoiseSource.values()) {
directionAttributes.put(noiseSource.ordinal() + 1, new RailWayLW.TrainAttenuation(noiseSource));
}
}

@Override
public void initialize(Connection connection, PointNoiseMap pointNoiseMap) throws SQLException {
Expand Down Expand Up @@ -222,7 +212,7 @@ public void cancel() {
@Override
public LTPropagationProcessData create(ProfileBuilder builder) {
LTPropagationProcessData ltPropagationProcessData = new LTPropagationProcessData(builder, ltConfig, ltConfig.propagationProcessPathDataT.entrySet().iterator().next().getValue().freq_lvl);
ltPropagationProcessData.setDirectionAttributes(directionAttributes);

return ltPropagationProcessData;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
import org.h2gis.utilities.JDBCUtilities;
import org.h2gis.utilities.SpatialResultSet;
import org.locationtech.jts.geom.Geometry;
import org.noise_planet.noisemodelling.emission.DirectionAttributes;
import org.noise_planet.noisemodelling.pathfinder.CnossosPropagationData;
import org.noise_planet.noisemodelling.pathfinder.ProfileBuilder;
import org.noise_planet.noisemodelling.propagation.PropagationProcessPathData;
Expand All @@ -52,10 +51,6 @@ public class LTPropagationProcessData extends CnossosPropagationData {
public HashMap<String, List<double[]>> wjSourcesT ;


/**
* Attenuation and other attributes relative to direction on sphere
*/
public Map<Integer, DirectionAttributes> directionAttributes = new HashMap<>();

LTConfig ltConfig;

Expand All @@ -64,10 +59,6 @@ public LTPropagationProcessData(ProfileBuilder builder, LTConfig ltConfig, List<
this.ltConfig = ltConfig;
}

public void setDirectionAttributes(Map<Integer, DirectionAttributes> directionAttributes) {
this.directionAttributes = directionAttributes;
}

@Override
public void addSource(Long pk, Geometry geom, SpatialResultSet rs) throws SQLException, IOException {
super.addSource(pk, geom, rs);
Expand All @@ -83,12 +74,10 @@ public boolean isOmnidirectional(int srcIndex) {
@Override
public double[] getSourceAttenuation(int srcIndex, double[] frequencies, double phi, double theta) {
int directivityIdentifier = sourceDirection.get(sourcesPk.get(srcIndex));
if(directionAttributes.containsKey(directivityIdentifier)) {
return directionAttributes.get(directivityIdentifier).getAttenuationArray(frequencies, phi, theta);
} else {
// This direction identifier has not been found
return new double[frequencies.length];
}
// todo add direction attributes
// This direction identifier has not been found
return new double[frequencies.length];

}

@Override
Expand Down Expand Up @@ -148,16 +137,4 @@ public double[] getMaximalSourcePower(int sourceId) {
}
}

public static class OmnidirectionalDirection implements DirectionAttributes {

@Override
public double getAttenuation(double frequency, double phi, double theta) {
return 0;
}

@Override
public double[] getAttenuationArray(double[] frequencies, double phi, double theta) {
return new double[frequencies.length];
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ import org.h2gis.utilities.SpatialResultSet
import org.h2gis.utilities.TableLocation
import org.h2gis.utilities.wrapper.ConnectionWrapper
import org.locationtech.jts.geom.*
import org.noise_planet.noisemodelling.emission.EvaluateRoadSourceDynamic
import org.noise_planet.noisemodelling.emission.RoadSourceParametersDynamic
import org.noise_planet.noisemodelling.emission.road.cnossosvar.RoadVehicleCnossosvar
import org.noise_planet.noisemodelling.emission.road.cnossosvar.RoadVehicleCnossosvarParameters

import java.security.InvalidParameterException
import java.sql.Connection
Expand Down Expand Up @@ -606,12 +606,12 @@ class Vehicle {
return result;
}
for (int i = 0; i < freqs.length; i++) {
RoadSourceParametersDynamic rsParametersDynamic = new RoadSourceParametersDynamic(
speed * 3.6, 0, vehicle_type, 1, freqs[i], 20,"NL08", true, 100, 1,
0, id
)

RoadVehicleCnossosvarParameters rsParametersDynamic = new RoadVehicleCnossosvarParameters(
speed * 3.6, 0, vehicle_type, 0, true, 1, id )
rsParametersDynamic.setRoadSurface("DEF")
// remove lw_correction
result[i] = EvaluateRoadSourceDynamic.evaluate(rsParametersDynamic) + lw_correction;
result[i] = RoadVehicleCnossosvar.evaluate(rsParametersDynamic) + lw_correction;
}
return result;
}
Expand Down Expand Up @@ -800,18 +800,19 @@ class IndividualVehicleEmissionProcessData {
int FreqParam = f
double Temperature = 20
String RoadSurface = "DEF"
boolean Stud = true
boolean Stud = false
double Junc_dist = 200
int Junc_type = 1
String veh_type = "1"
int acc_type = 1
double LwStd = 1
int VehId = 10

RoadSourceParametersDynamic rsParameters = new RoadSourceParametersDynamic(speed, acc, veh_type, acc_type, FreqParam, Temperature, RoadSurface, Stud, Junc_dist, Junc_type, LwStd, VehId)
RoadVehicleCnossosvarParameters rsParameters = new RoadVehicleCnossosvarParameters(speed, acc, veh_type, acc_type, Stud, LwStd, VehId)
rsParameters.setRoadSurface(RoadSurface)
rsParameters.setSlopePercentage(0)

res_LV[kk] = EvaluateRoadSourceDynamic.evaluate(rsParameters)
res_LV[kk] = RoadVehicleCnossosvar.evaluate(rsParameters)
kk++
}

Expand All @@ -821,22 +822,22 @@ class IndividualVehicleEmissionProcessData {
int kk = 0
for (f in list) {
double speed = SPEED_HV.get(idSource)
int acc = 0
double acc = 0
int FreqParam = f
double Temperature = 20
String RoadSurface = "DEF"
boolean Stud = true
boolean Stud = false
double Junc_dist = 200
int Junc_type = 1
String veh_type = "3"
int acc_type = 1
double LwStd = 1
int VehId = 10

RoadSourceParametersDynamic rsParameters = new RoadSourceParametersDynamic(speed, acc, veh_type, acc_type, FreqParam, Temperature, RoadSurface, Stud, Junc_dist, Junc_type, LwStd, VehId)
RoadVehicleCnossosvarParameters rsParameters = new RoadVehicleCnossosvarParameters(speed, acc, veh_type, acc_type, Stud, LwStd, VehId)
rsParameters.setSlopePercentage(0)

res_HV[kk] = EvaluateRoadSourceDynamic.evaluate(rsParameters)
rsParameters.setRoadSurface(RoadSurface)
res_HV[kk] = RoadVehicleCnossosvar.evaluate(rsParameters)
kk++
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ class TestNoiseModelling extends JdbcTestCase {
"duration":100])


assertEquals("Calculation Done ! The table LW_ROADS has been created.", res)
assertEquals("Calculation Done ! The table LW_DYNAMIC_GEOM has been created.", res)
}

@Test
Expand All @@ -89,15 +89,15 @@ class TestNoiseModelling extends JdbcTestCase {
["tableRoads": "ROADS2",
"method" : "PROBA",
"timestep" : 1,
"gridStep":10,
"gridStep":20,
"duration":100])

res = new Noise_level_from_source().exec(connection,
["tableBuilding" : "BUILDINGS",
"tableSources" : "ALL_VEH_POS_0DB",
"tableReceivers": "RECEIVERS",
"confMaxSrcDist" : 250,
"confDiffHorizontal" : true,
"confMaxSrcDist" : 100,
"confDiffHorizontal" : false,
"confExportSourceId": true,
"confSkipLevening":true,
"confSkipLnight":true,
Expand All @@ -121,15 +121,15 @@ class TestNoiseModelling extends JdbcTestCase {
["tableRoads": "ROADS2",
"method" : "VALENTIN",
"timestep" : 1,
"gridStep":10,
"duration":300])
"gridStep":20,
"duration":100])

res = new Noise_level_from_source().exec(connection,
["tableBuilding" : "BUILDINGS",
"tableSources" : "ALL_VEH_POS_0DB",
"tableReceivers": "RECEIVERS",
"confMaxSrcDist" : 250,
"confDiffHorizontal" : true,
"confMaxSrcDist" : 100,
"confDiffHorizontal" : false,
"confExportSourceId": true,
"confSkipLevening":true,
"confSkipLnight":true,
Expand All @@ -151,7 +151,7 @@ class TestNoiseModelling extends JdbcTestCase {



assertEquals("Calculation Done ! The table LW_ROADS has been created.", res)
assertEquals("The columns LEQA and LEQ have been added to the table: LT_GEOM_VAL.", res)
}

@Test
Expand Down

0 comments on commit e1a3f8d

Please sign in to comment.