Description
This model demonstrates how to read more than one parameter from in single CSV file. However, this cannot be done with CSVRead directly, since CSVRead returns one single parameter. The data must be split later on. This model is referenced in "Getting Started Example 4 - Reading more than one parameter from a single input file" from the CSVRead Documentation. Keywords: CSVRead, data exchange, GAMS language features
Category : GAMS Data Utilities library
Main file : csv2gdx5.gms includes : csv2gdx5.gms
$title CSVRead Example 5 - Reading more than one Parameter from a single Input File (CSV2GDXE5,114)
$onText
This model demonstrates how to read more than one parameter from in single CSV
file. However, this cannot be done with CSVRead directly, since CSVRead returns
one single parameter. The data must be split later on.
This model is referenced in "Getting Started Example 4 - Reading more than one
parameter from a single input file" from the CSVRead Documentation.
Keywords: CSVRead, data exchange, GAMS language features
$offText
$onEcho > networkData.csv
plant;station;length;minCap;maxCap;stage;cost
p1;s1;100;50;100;1;1200
p1;s2;75;35;65;1;500
p1;s1;100;100;150;2;1800
p2;s1;150;50;100;1;1400
p2;s1;150;100;150;2;2000
p2;s1;150;150;200;3;2350
p2;s2;75;25;50;1;600
p2;s2;75;50;75;2;800
p3;s1;80;40;100;1;1050
$offEcho
$call gamstool csvread networkData.csv id=dataPar useHeader=y fieldSep=semiColon index=1,2,6 values=4,5,7 trace=0 gdxout=networkData.gdx
$ifE errorLevel<>0 $abort Problems reading networkData.csv!
Set plant, station, stage;
* CSVRead reads all data into one single parameter. To split the data later on,
* it is necessary to declare the dummy parameter dataPar at first
Parameter
dataPar
minCap(plant,station,stage)
maxCap(plant,station,stage)
cost(plant,station,stage);
$gdxIn networkData.gdx
$load plant = dim1
$load station = dim2
$load stage = dim3
$load dataPar
$gdxIn
minCap(plant,station,stage) = dataPar(plant,station,stage,'minCap');
maxCap(plant,station,stage) = dataPar(plant,station,stage,'maxCap');
cost(plant,station,stage) = dataPar(plant,station,stage,'cost');
display plant, station, stage, minCap, maxCap, cost;