Difference between revisions of "Statistical Algorithms Importer: Python Project FAQ"

From Gcube Wiki
Jump to: navigation, search
(How to use the input file parameters)
Line 4: Line 4:
  
 
F.A.Q. of Statistical Algorithms Importer (SAI), here are common mistakes we have found in Python Project.
 
F.A.Q. of Statistical Algorithms Importer (SAI), here are common mistakes we have found in Python Project.
 
 
== Matplotlib ==
 
Matplotlib require the $DISPLAY environment variable which means a running X server. DataMiner service do not allow a running X server session. So your code must be modified:
 
 
<source lang='python'>
 
#
 
# author Giancarlo Panichi
 
#
 
# Write file image.png
 
#
 
import matplotlib as mpl
 
mpl.use('Agg')
 
import matplotlib.pyplot as plt
 
import numpy as np
 
....
 
plt.imshow(image)
 
plt.savefig('image.png')
 
</source>
 
  
  
Line 102: Line 83:
 
[[File:Phonebook.zip|Phonebook.zip]]
 
[[File:Phonebook.zip|Phonebook.zip]]
  
 +
 +
 +
== Matplotlib ==
 +
Matplotlib require the $DISPLAY environment variable which means a running X server. DataMiner service do not allow a running X server session. So your code must be modified:
 +
 +
<source lang='python'>
 +
#
 +
# author Giancarlo Panichi
 +
#
 +
# Write file image.png
 +
#
 +
import matplotlib as mpl
 +
mpl.use('Agg')
 +
import matplotlib.pyplot as plt
 +
import numpy as np
 +
....
 +
plt.imshow(image)
 +
plt.savefig('image.png')
 +
</source>
  
  
 
[[Category:Statistical Algorithms Importer]]
 
[[Category:Statistical Algorithms Importer]]

Revision as of 16:35, 10 January 2018

F.A.Q. of Statistical Algorithms Importer (SAI), here are common mistakes we have found in Python Project.


How to use the input file parameters

For example we consider Phonebook algorithm:
Phonebook, SAI
Phonebook, SAI
Phonebook, SAI


DataMiner show the Phonebook algorithm in this way:
Phonebook in DataMiner interface, SAI


Python script code in sample:
#
# author Giancarlo Panichi
#
# Phonebook
# 
import sys
import string
 
def print_numbers(numbers):
    print "Telephone Numbers:"
    for x in numbers.keys():
        value="Name: "+x+" Number: "+numbers[x]
        print value,
 
def lookup_number(numbers,name):
    if numbers.has_key(name):
        return "For "+name+" the number is "+numbers[name]
    else:
        return "For "+name+" was not found"
 
def load_numbers(numbers,filename):
    with open(filename,"r") as f:
        for in_line in f:            
            [name,number] = string.split(in_line,",")
            numbers[name] = number
 
def save_result(result,filename):
    with open(filename,"w") as f:
        f.write(result)
 
phonebookFile=sys.argv[1] 
name=sys.argv[2]
phone_list = {}
 
load_numbers(phone_list,phonebookFile)
print_numbers(phone_list)
number=lookup_number(phone_list,name)
print number
save_result(number,"result.txt")


phonebook.csv:
Giancarlo,0123456789
Gianpaolo,9876541234
Paolo,1231410414


phonebook result with Giancarlo:
For Giancarlo the number is 0123456789


Phonebook code:

File:Phonebook.zip


Matplotlib

Matplotlib require the $DISPLAY environment variable which means a running X server. DataMiner service do not allow a running X server session. So your code must be modified:

#
# author Giancarlo Panichi
#
# Write file image.png
# 
import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt
import numpy as np
....
plt.imshow(image)
plt.savefig('image.png')