help-glpk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-glpk] Transposing result table using MathProg


From: xypron
Subject: Re: [Help-glpk] Transposing result table using MathProg
Date: Tue, 5 Jan 2010 10:13:43 -0800 (PST)

Hello Noli,

the model belows will read your input data from a csv file and output it to
another csv file with one column per value of period.

Best regards

Xypron

http://old.nabble.com/file/p27026678/input.csv input.csv 
http://old.nabble.com/file/p27026678/test.mod test.mod 

# Read a csv file and output it as another csv file
# with generation of columns for each value of
# one of the indices.
#
# output csv f
param f,symbolic := "output.csv";
# CROP_ID CROPTYPE Period Ini_Age
set S dimen 4;
# Period
set P := setof{(i,j,k,l) in S} k;
# CROP_ID CROPTYPE Ini_Age
set Q := setof{(i,j,k,l) in S} (i,j,l);
# Area_Cut
param a{S};

table tin IN 'CSV' 'input.csv' :
S <- [CROP_ID, CROPTYPE, Period, Ini_Age], a~Area_Cut;

solve;

printf "Writing output to %s\n", f;

printf "CROP_ID,CROPTYPE,Ini_Age" > f;
for{p in P} printf ",Period_%d", p >> f;
printf "\n" >> f;

for{(i,j,k) in Q} {
   printf "%s,%s,%s",i,j,k >> f;
   for{p in P} printf ",%f", if (i,j,p,k) in S then a[i,j,p,k] else 0 >>f;
   printf "\n" >>f;
}
end;

input.csv
=======
CROP_ID,CROPTYPE,Period,Ini_Age,Area_Cut
83,SORI,1,31,528.2465512
84,SORI,1,32,74.55179899
85,SORI,1,33,72.45778618
86,SORI,1,34,139.5272947
82,SORI,2,28,1.711642933
83,SORI,2,29,2.500000071
84,SORI,2,30,432.5139327
93,SORM,2,35,316.8422545
62,OTRM,3,30,64.60526438
82,SORI,3,27,26.93674606
3,SORM,3,35,223.3658345
82,SORI,4,26,2.500000071
4,SORM,4,34,1008.643
5,OTRI,5,25,32.42603214
5,OTRM,5,29,65.9031344
5,SORM,5,32,223.1489321
5,SORM,5,33,72.59203041
5,SORM,5,35,222.8402746
6,OTRI,6,22,2.499999851
6,OTRI,6,23,3.374626509
6,OTRI,6,24,96.13462257
6,OTRM,6,26,830.7463641
6,OTRM,6,27,731.6228643
6,OTRM,6,28,16.3519762
7,OTRM,7,26,1636.5693
8,OTRM,8,26,553.0050146
9,OTRM,9,26,894.414033
10,OTRM,10,24,38.72597099
10,OTRM,10,25,308.6452707
10,OTRM,10,26,786.1761969
10,SORM,10,31,235.8360136




Noli Sicad wrote:
> 
> Hi,
> 
> I have dealing a lot of manual format of my LP result inorder that I
> can use the data for the map purpose. I did to run my LP results into
> graphs and maps. I am working on forest management / forest carbon
> estate modelling and maps are very important to visualise multi period
> results of the LP model. The period that I am running is 1 to 100
> years.
> 
> This is the LP format as output by MathProg.
> 
> From:
> set A set B set C param
> 
> 
> Desired table,
> To:
> set A set B param set C
> 
> 
> Sample result and desired table (below)
> 
> How do I do in MathProg? As we know there is transpose (tr.) in Data
> section. I hope this can be use in the result sectio as well. But
> probably somebody can show me how to do this in MathProg / GMPL.
> 
> Thanks. Noli
> 
> 
> 
> ~~~~~~~~
> CROP_ID       CROPTYPE        Period  Ini_Age Area_Cut
> 83    SORI    1       31      528.2465512
> 84    SORI    1       32      74.55179899
> 85    SORI    1       33      72.45778618
> 86    SORI    1       34      139.5272947
> 82    SORI    2       28      1.711642933
> 83    SORI    2       29      2.500000071
> 84    SORI    2       30      432.5139327
> 93    SORM    2       35      316.8422545
> 62    OTRM    3       30      64.60526438
> 82    SORI    3       27      26.93674606
> 3     SORM    3       35      223.3658345
> 82    SORI    4       26      2.500000071
> 4     SORM    4       34      1008.643
> 5     OTRI    5       25      32.42603214
> 5     OTRM    5       29      65.9031344
> 5     SORM    5       32      223.1489321
> 5     SORM    5       33      72.59203041
> 5     SORM    5       35      222.8402746
> 6     OTRI    6       22      2.499999851
> 6     OTRI    6       23      3.374626509
> 6     OTRI    6       24      96.13462257
> 6     OTRM    6       26      830.7463641
> 6     OTRM    6       27      731.6228643
> 6     OTRM    6       28      16.3519762
> 7     OTRM    7       26      1636.5693
> 8     OTRM    8       26      553.0050146
> 9     OTRM    9       26      894.414033
> 10    OTRM    10      24      38.72597099
> 10    OTRM    10      25      308.6452707
> 10    OTRM    10      26      786.1761969
> 10    SORM    10      31      235.8360136
> 
> Desired Table.
>               Period 1        Period 2        Period 3        Period 4        
> Period 5        Period 6        Period
> 7     Period 8        Period 9        Period 10
> CROP_ID       CROPTYPE                                                        
>                         
> 83    SORI    31                                                              
>         
> 84    SORI    32                                                              
>         
> 85    SORI    33                                                              
>         
> 86    SORI    34                                                              
>         
> 82    SORI            28                                                      
>         
> 83    SORI            29                                                      
>         
> 84    SORI            30                                                      
>         
> 93    SORM            35                                                      
>         
> 62    OTRM                    30                                              
>         
> 82    SORI                    27                                              
>         
> 3     SORM                    35                                              
>         
> 82    SORI                            26                                      
> 4     SORM                            34                                      
> 5     OTRI                                    25                              
> 5     OTRM                                    29                              
> 5     SORM                                    32                              
> 5     SORM                                    33                              
> 5     SORM                                    35                              
> 6     OTRI                                            22                      
> 6     OTRI                                            23                      
> 6     OTRI                                            24                      
> 6     OTRM                                            26                      
> 6     OTRM                                            27                      
> 6     OTRM                                            28                      
> 7     OTRM                                                    26              
> 8     OTRM                                                            26      
> 9     OTRM                                                                    
> 26
> 10    OTRM                                                                    
>         24
> 10    OTRM                                                                    
>         25
> 10    OTRM                                                                    
>         26
> 10    SORM                                                                    
>         31
> 
> 
> _______________________________________________
> Help-glpk mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/help-glpk
> 
> 

-- 
View this message in context: 
http://old.nabble.com/Transposing-result-table-using-MathProg-tp27023621p27026678.html
Sent from the Gnu - GLPK - Help mailing list archive at Nabble.com.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]