Plot a skew-T log-P diagram based on sounding data.
This was forked from: https://github.com/dfelix/skewt-js.
- By now LOTS.
- Updated to work with D3 version 5.
- A treeshaken D3 is now bundled into bundle.js, no need to load it.
- Interactivity: Set top pressure (zoom), set gradient, set parcel temperature, toggle maintain temperature range.
- Highlight different lines.
I have added the following functionality thanks to Victor Berchet :
- Added moist adiabats.
- Added isohumes.
- Added parcel trajectory.
Added calculations for TCON, LCL, CCL, Thermal top and cloud Top. Lines to indicate these parameters can be toggled.
<link rel="stylesheet" href="dist/skewt.css">
<script src="dist/bundle.js"></script>Ensure you create a div using a specified id (ex: id="mySkewt") and class = "skew-t"
<div id="mySkewt" class="skew-t"></div>Declare a new SkewT var passing the css selector for the placeholder.
var skewt = new SkewT('#mySkewt' , options);SkewT currently only contains methods:
.plot(array, plotOptions) will plot dew point and air temperature lines and wind barbs. options is optional.
Available options:
plotOptions = {
add:true, // to add a plotline, else the current ones will be cleared.
select:true, // added plot line will be highlighted, relevant if >1.
max: 2// maximum number of plots superimposed, if max reached, last one will be overwritten,
ixShift: 1// moves the windbarbs and clouds to the right, ( I use it in windy to differentiate between sonde data and forecast data )
} var skewt = new SkewT('#mySkewt');
var sounding = [];
skewt.plot(sounding, plotOptions);Expected array format should follow the GSD Sounding Format.
[{
"press": 1000.0, // pressure in whole millibars
"hght": 173.0, // height in meters (m)
"temp": 14.1, // temperature in degrees Celsius
"dwpt": 6.5, // dew point temperature in degree Celsius
"wdir": 8.0, // wind direction in degrees
"wspd": 6.173 // wind speed in meters per second (m/s)
}, {
"press": 975.0,
"hght": 386.0,
"temp": 12.1,
"dwpt": 5.6,
"wdir": 10.0,
"wspd": 7.716
},
...
].clear() will clear the previous plot lines and wind barbs.
.selectSkewt( array_previously_sent_with_plot ) to highlight a plot lines. The tooltips will then display info from this line.
.removePlot //remove a specific plot, referenced by data object passed initially.
.parcelTrajectory(
{temp, gh, level}, //arrays, must be same length
steps, // integer
surface_temp, surface_pressure, surface_dewpoint
).setParams(
{
height, //in pixels
topp, //top pressure
parctempShift, //default parcel temperature offset
parctemp,
basep,
steph, //step height
gradient //in degrees
}
)
.getParams();.move2P, .hideTooltips and .showTooltips
.on(event, callback);
Possible events:
press, //when tooltip is moved.parctemp, topp, parctempShift, gradient; //when any of the ranges are moved