Code Monkey home page Code Monkey logo

metalknight / woss-ns3 Goto Github PK

View Code? Open in Web Editor NEW
29.0 5.0 8.0 75 KB

WOSS is a framework that permits the integration of any underwater channel simulator that expects environmental data and provides a channel realization. WOSS integrates the Bellhop ray-tracing program. Thanks to its automation the user only has to specify the location in the world and the time where the simulation should take place.

Home Page: https://woss.dei.unipd.it

C++ 93.61% Python 4.69% CMake 1.70%
ns3 hdf5 netcdf4 netcdf woss ns3-users underwater-acoustics underwater-communications simulation bellhop

woss-ns3's People

Contributors

metalknight avatar patel999jay avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

woss-ns3's Issues

"NetCDF: HDF error" in mobile network scenarios

Dear colleagues,

I am working on mobile network simulation scenarios leveraging WOSS through this integration module.

Simulation scenario

Using the example as base, I modeled my scenario equipping all nodes with WossWaypointMobilityModel, with a set of 4 nodes having fixed location and a single node roaming through the network.

Fixed nodes location example (CSV)

node_id, latitude, longitude, depth
0, 43.8291, 9.56412, 0.00791293
1, 43.8289, 9.56461, 0.00978492
2, 43.829, 9.56498, 0.0115909
3, 43.8289, 9.56476, 0

Roaming node waypoints file example (CSV):

time_seconds, latitude, longitude, depth
0, 43.8289, 9.56476, 0
10.1001, 43.829, 9.56475, 0
20.2994, 43.829, 9.56473, 0
30.3991, 43.829, 9.56472, 0
40.4995, 43.829, 9.5647, 0
50.6004, 43.829, 9.56469, 0
(...)

Geodesic coordinates from such files are fed to the mobility model via the CreateVectorFromCoordZ() after having created woss::CoordZ objects from related fields.
Depth is passed both to the CoordZ constructor and via the CoordZ::setDepth() function after each object creation.

WOSS configuration

According to advices regarding "high mobility" scenarios (1)(2), we can devise the following WOSS configurations:

  1. ResDb + no memory optimization
    WossHelper attributes ResDbFilePath and ResDbFileName are properly defined, and the WossPropModel instance used for WossChannel is created with default attribute values.

  2. No ResDb + memory optimization
    Following previously mentioned advices, ResDbFilePath and ResDbFileName attributes of WossHelper are left with default values, whereas WossPropModel's MemoryOptimization attribute is set to true.

Outcome: error not appearing

Upon executing my simulation, I noticed the "NetCDF: HDF error" does not appear only if the network is completely static and configured accordingly: i.e. WOSS configuration 1, with the roaming node having just 2 waypoints, one at time 0 and the other at time N, both with having the same position (e.g. waypoint 0), effectively making it a static node as well.

Outcome: error consistently appearing

The error instead consistently shows up whenever the following simulation setups are executed:

  • WOSS configuration 1 + roaming node;
  • WOSS configuration 2 + effectively static node;
  • WOSS configuration 2 + roaming node.

Activating all WOSS-related debug options via the WossHelper interface does not shed more light on this error, which is only accompanied by the exception source "ncVar.cpp line:1626".

Simulations during which the error occurs actually run for some time first, and then crash upon this error appearing.
In order to rule out possible invalid locations of the roaming node, the "effectively static node" setup has been tested across multiple different locations for both WOSS configuration 1 and 2. WOSS configuration 2 was thus identified as problematic, whereas WOSS configuration 1 did not pose issues in the "effectively static node" case.

System setup

  • ns-3 version: 3.33
  • Acoustic toolbox: June 2020
  • HDF5 version: v1.8.13
  • NetCDF C version: v4.7.3
  • NetCDF C++ version: v4.3.1
  • WOSS version: 1.12.0
  • GEBCO bathymetry: global, 2020

All libraries are installed as per instructions, passing all tests.

normalizedPdp

Thank you for your wonderful work, but I can't find a definition about method normalizedPdp() in class UanPdb along with its implement,would you like to make it clear?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.