Appendix A. Data file details
350
range. At a size of around 10 megabytes, however, gdt files can be both written and read in under
asecond, surely fast enough for most purposes.
381MB
38MB
19MB
10MB
format
write read
write
read
write
read
write
read
gdt
21.76
4.91
2.20
0.48
1.19
0.32
0.59
0.16
gdtb
3.82
1.10
0.39
0.11
0.25
0.06
0.13
0.03
Table A.1: Data write and read timings in seconds for datasets of various sizes in megabytes. The MB
numbers represent the size of the datasets in memory; files of both formats are substantially smaller when
compressionis applied.
A.3 Native database format
Agretl database consists of two parts: an ASCII index file (with filename suffix .idx) containing
information on the series, and a binary file (suffix .bin) containing the actual data. Two examples
of the format for an entry in the idx file are shown below:
G0M910 Composite index of 11 leading indicators (1987=100)
M 1948.01 - 1995.11 n = 575
currbal Balance of Payments: Balance on Current Account; SA
Q 1960.1 - 1999.4 n = 160
The first field is the series name. The second is a description of the series (maximum 128 charac-
ters). On the second line the first field is a frequency code: M for monthly, Q for quarterly, A for
annual, B for business-daily (daily with five days per week) and D for daily (seven days per week).
No other frequencies are accepted at present. Then comes the starting date (N.B. with two digits
following the point for monthly data, one for quarterly data, none for annual), a space, a hyphen,
another space, the ending date, the string “n = ” and the integer number of observations. In the
case of daily data the starting and ending dates should be given in the form YYYY/MM/DD. This
format must be respected exactly.
Optionally, the first line ofthe index file may contain a short comment (up to 64 characters) on the
source and nature of the data, following a hash mark. For example:
# Federal Reserve Board (interest rates)
The correspondingbinary databasefileholds thedata values,representedas“floats”, that is,single-
precision floating-point numbers, typically taking four bytes apiece. The numbers are packed “by
variable”,so that the first n numbers are the observations ofvariable 1, the next m the observations
on variable 2, and so on.
Change pdf to powerpoint online - SDK software service:C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF in C#.net, ASP.NET MVC, WinForms, WPF
Online C# Tutorial for Creating PDF from Microsoft PowerPoint Presentation
www.rasteredge.com
Change pdf to powerpoint online - SDK software service:VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to PDF in vb.net, ASP.NET MVC, WinForms, WPF
VB.NET Tutorial for Export PDF file from Microsoft Office PowerPoint
www.rasteredge.com
Appendix B
Data import via ODBC
Since version 1.7.5, gretl provides a method for retrieving data from databases which support the
Open Database Connectivity (ODBC) standard. Most userswon’t be interestedin this, but there may
be some for whom this feature matters a lot — typically, those who work in an environment where
huge data collections are accessible via a Data Base Management System (DBMS).
In the following section we explain what is needed for ODBC support in gretl. We provide some
background information on how ODBC works in sectionB.2, andexplain the details ofgetting gretl
to retrieve data from a database in sectionB.3.
B.1 ODBC support
The piece of software that bridges between gretl and the ODBC system is a dynamically loaded
“plugin”. This is included in the gretl packages for MS Windows and Mac OS X (on OS X support
was added in gretl 1.9.0). On other unix-type platforms (notably Linux) you will have to build gretl
from source to get ODBC support. This is because the gretl plugin depends on having unixODBC
installed, which we cannot assume to be the case on typical Linux systems. To enable the ODBC
plugin when building gretl, you must pass the option --with-odbc to gretl’s configure script. In
addition, ifunixODBC is installed in a non-standard location you will have to specify its installation
prefix using --with-ODBC-prefix, as in (for example)
./configure --with-odbc --with-ODBC-prefix=/opt/ODBC
B.2 ODBC base concepts
ODBC is short for Open DataBase Connectivity, a group of software methods that enable a client to
interact with a database server. The most common operation is when the client fetches some data
from the server. ODBC acts as an intermediate layer between client and server, so the client “talks”
to ODBC rather than accessing the server directly (see FigureB.1).
ODBC
query
data
Figure B.1: Retrieving datavia ODBC
For the above mechanism to work, it is necessary that the relevant ODBC software is installed
and working on the client machine (contact your DB administrator for details). At this point, the
database (or databases) that the server provides will be accessible to the client as a data source
with a specific identifier (a Data Source Name or DSN); in most cases, a username and a password
are required to connect to the data source.
Once the connection is established, the user sends a query to ODBC, which contacts the database
manager, collects the results and sends them back to the user. The query is almost invariably
351
SDK software service:Online Convert PowerPoint to PDF file. Best free online export
Online Powerpoint to PDF Converter. Download Free Trial. Convert a PPTX/PPT File to PDF. Just upload your file by clicking on the blue
www.rasteredge.com
SDK software service:RasterEdge for .NET Online Demo
Convert Word to PDF; Convert Excel to PDF; Convert PowerPoint to PDF; PDF Files; Split PDF Document; Remove Password from PDF; Change PDF Permission Settings.
www.rasteredge.com
Appendix B. Data import via ODBC
352
formulated in a special language used for the purpose, namely SQL.
1
We will not provide here an
SQL tutorial: there are many such tutorials on the Net; besides, each database manager tends to
support its own SQL dialect so the precise form of an SQL query may vary slightly if the DBMS on
the other end is Oracle, MySQL, PostgreSQL or something else.
Suffice it to say that the main statement forretrieving data isthe SELECT statement. Within a DBMS,
data are organized in tables, which are roughly equivalent to spreadsheets. The SELECT statement
returns a subset of a table, which is itself a table. For example, imagine that the database holds a
table called “NatAccounts”, containing the data shown in TableB.1.
year qtr
gdp
consump
tradebal
1970
1
584763
344746.9
5891.01
1970
2
597746
350176.9
7068.71
1970
3
604270
355249.7
8379.27
1970
4
609706
361794.7
7917.61
1971
1
609597
362490
6274.3
1971
2
617002
368313.6
6658.76
1971
3
625536
372605
4795.89
1971
4
630047
377033.9
6498.13
Table B.1: The“NatAccounts”table
The SQL statement
SELECT qtr, tradebal, gdp FROM NatAccounts WHERE year=1970;
produces the subset of the original data shown in TableB.2.
qtr
tradebal
gdp
1
5891.01
584763
2
7068.71
597746
3
8379.27
604270
4
7917.61
609706
Table B.2: Result of a SELECT statement
Gretl provides a mechanism for forwarding your query to the DBMS via ODBC and including the
results in your currently open dataset.
B.3 Syntax
At present gretl does not offer a graphical interface for ODBC import; this must be done via the
command line interface. The two commands used for fetching data via an ODBC connection are
open and data.
The open command is used for connecting to a DBMS: its syntax is
open dsn=database [user=username] [password=password] --odbc
The user and password items are optional; the effect of this command is to initiate an ODBC
connection. It is assumed that the machine gretl runs on has a working ODBC client installed.
In order to actually retrieve the data, the data command is used. Its syntax is:
1
Seehttp://en.wikipedia.org/wiki/SQL.
SDK software service:C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
Convert Word to PDF; Convert Excel to PDF; Convert PowerPoint to PDF; PDF Files; Split PDF Document; Remove Password from PDF; Change PDF Permission Settings.
www.rasteredge.com
SDK software service:VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
Convert Word to PDF; Convert Excel to PDF; Convert PowerPoint to PDF; PDF Files; Split PDF Document; Remove Password from PDF; Change PDF Permission Settings.
www.rasteredge.com
Appendix B. Data import via ODBC
353
data series [obs-format=format-string] query=query-string --odbc
where:
series is a list ofnames of gretl seriesto contain the incoming data, separated by spaces. Note that
these series need not exist pior to the ODBC import.
format-string is an optional parameter, usedto handle cases when a “rectangular” organisation of
the database cannot be assumed(more on this later);
query-string is a string containing the SQL statement used to extract the data.
2
There should be no spaces aroundthe equals signsin the obs-format and query fields in the data
command.
The query-string can, in principle, contain any validSQL statement which results in a table. This
string may be specified directly within the command, as in
data x query="SELECT foo FROM bar" --odbc
which will store into thegretl variablex the content ofthe column foo from the table bar. However,
since in a real-life situation the string containing the SQL statement may be rather long, it may be
best to store it in a string variable. For example:
string SqlQry = "SELECT foo1, foo2 FROM bar"
data x y query=SqlQry --odbc
The observation format specifier
If the optional parameter obs-format is absent, as in the above example, the SQL query should
return k columns of data, where k is the number of series names listed in the data command.
It may be necessary to include a smpl command before the data command to set up the right
“window” for the incoming data. In addition, if one cannot assume that the data will be delivered
in the correct order (typically, chronological order), the SQL query should contain an appropriate
ORDER BY clause.
The optional format string is used for those cases when there isno certainty that the data from the
query will arrive in the same order as the gretl dataset. This may happen when missing values are
interspersed within a column, or with data that do not have a natural ordering, e.g. cross-sectional
data. In this case, the SQL statement should return a table with m k columns, where the first m
columns are used to identify the observation or row in the gretl dataset into which the actual data
values in the final k columnsshould be placed. The obs-format string is usedto translate the first
mfields into a string which matches the string gretl uses to identify observations in the currently
open dataset. Up to three columns can be used for this purpose (m 3).
Note that the strings gretl uses to identify observations can be seen by printing any variable “by
observation”, as in
print index --byobs
(The series named index is automatically added to a dataset created via the nulldata command.)
The format specifiers available for use with obs-format are as follows:
%d
print an integer value
%s
print an string value
%g
print a floating-point value
2
Prior to gretl 1.8.8, the tag “query=” was not required (or accepted) before the query string, and only one series
could beimported atatime. Thisvariant isstillacceptedfor the sakeof backward compatibility.
SDK software service:RasterEdge XDoc.PowerPoint for .NET - SDK for PowerPoint Document
Add image to specified position on PowerPoint page. Next Steps. Download Free Trial Download and try PDF for .NET with online support. See Pricing
www.rasteredge.com
SDK software service:DocImage SDK for .NET: Web Document Image Viewer Online Demo
Try Online Demo Now. Please click Browse to upload a file to display in web viewer. Suppported files are Word, Excel, PowerPoint, PDF, Tiff, Dicom and main
www.rasteredge.com
Appendix B. Data import via ODBC
354
In addition the format can includeliteral characters tobe passedthrough,such asslashesorcolons,
to make the resulting string compatible with gretl’s observation identifiers.
For example,consider the following fictitious case: we have a 5-days-per-week dataset, to which we
want to add the stock index for the Verdurian market;
3
it so happens that in Verduria Saturdays
are working days but Wednesdays are not. We want a column which does not contain data on
Saturdays, because we wouldn’t know where to put them, but at the same time we want to place
missing values on all the Wednesdays.
In this case, the following syntax couldbe used
string QRY="SELECT year,month,day,VerdSE FROM AlmeaIndexes"
data y obs-format="%d/%d/%d" query=QRY --odbc
The column VerdSE holds the data to be fetched, which will go into the gretl series y. The first
three columns are used to construct a string which identifies the day. Daily dates take the form
YYYY/MM/DD in gretl. If a rowfrom the DBMS produces the observation string 2008/04/01 this will
match OK (it’s a Tuesday), but 2008/04/05 will not match since it is a Saturday; the corresponding
row will therefore be discarded. On the other hand, since no string 2008/04/23 will be found in
the data coming from the DBMS (it’s a Wednesday), that entry is left blank in our series y.
B.4 Examples
Table Consump
Table DATA
Field
Type
time
decimal(7,2)
income
decimal(16,6)
consump
decimal(16,6)
Field
Type
year
decimal(4,0)
qtr
decimal(1,0)
varname
varchar(16)
xval
decimal(20,10)
Table B.3: Example AWM database – structure
Table Consump
Table DATA
1970.00
424278.975500
344746.944000
1970.25
433218.709400
350176.890400
1970.50
440954.219100
355249.672300
1970.75
446278.664700
361794.719900
1971.00
447752.681800
362489.970500
1971.25
453553.860100
368313.558500
1971.50
460115.133100
372605.015300
...
1970
1
CAN
517.9085000000
1970
2
CAN
662.5996000000
1970
3
CAN
1130.4155000000
1970
4
CAN
467.2508000000
1970
1
COMPR
18.4000000000
1970
2
COMPR
18.6341000000
1970
3
COMPR
18.3000000000
1970
4
COMPR
18.2663000000
1970
1
D1
1.0000000000
1970
2
D1
0.0000000000
...
Table B.4: Example AWM database — data
In the following examples, we will assume that access is available to a database known to ODBC
with the data source name “AWM”, with username “Otto” and password “Bingo”. The database
“AWM” contains quarterly data in two tables (seeB.3 andB.4):
3
Seehttp://www.almeopedia.com/index.php/Verduria.
SDK software service:VB.NET PDF - Create PDF Online with VB.NET HTML5 PDF Viewer
Convert Word to PDF; Convert Excel to PDF; Convert PowerPoint to PDF; PDF Files; Split PDF Document; Remove Password from PDF; Change PDF Permission Settings.
www.rasteredge.com
SDK software service:VB.NET PDF - Annotate PDF Online with VB.NET HTML5 PDF Viewer
VB.NET HTML5 PDF Viewer: Annotate PDF Online. Click to strikethrough text on PDF page. Users can change outline color and set transparency value in properties.
www.rasteredge.com
Appendix B. Data import via ODBC
355
The table Consump is the classic “rectangular” dataset; that is, its internal organization is the same
as in a spreadsheet or econometrics package: each row is a data point andeach column is a variable.
The structure of the DATA table is different: each record is one figure, stored in the column xval,
and the other fields keep track of which variable it belongs to, for which date.
Example B.1: Simple queryfrom a rectangulartable
nulldata 160
setobs 4 1970:1 --time
open dsn=AWM user=Otto password=Bingo --odbc
string Qry = "SELECT consump, income FROM Consump"
data cons inc query=Qry --odbc
ExampleB.1 shows a query for two series: first we set up an empty quarterly dataset. Then we
connect to the database using the open statement. Once the connection is established we retrieve
two columns from the Consump table. No observation string is required because the data already
have a suitable structure; we need only import the relevant columns.
Example B.2: Simplequery from anon-rectangular table
string S = "select year, qtr, xval from DATA \
where varname=’WLN’ ORDER BY year, qtr"
data wln obs-format="%d:%d" query=S --odbc
In exampleB.2, by contrast, we make use of the observation string since we are drawing from the
DATA table, which isnot rectangular. The SQLstatement stored in the string S produces a table with
three columns. The ORDER BY clause ensures that the rows will be in chronological order, although
this is not strictly necessary in this case.
Appendix B. Data import via ODBC
356
Example B.3: Handling of missing values fora non-rectangulartable
string foo = "select year, qtr, xval from DATA \
where varname=’STN’ AND qtr>1"
data bar obs-format="%d:%d" query=foo --odbc
print bar --byobs
ExampleB.3 shows what happens if the rows in the outcome from the SELECT statement do not
match the observations in the currently open gretl dataset. The query includes a condition which
filters out all the data from the first quarter. The query result (invisible to the user) would be
something like
+------+------+---------------+
| year | qtr
| xval
|
+------+------+---------------+
| 1970 |
2 |
7.8705000000 |
| 1970 |
3 |
7.5600000000 |
| 1970 |
4 |
7.1892000000 |
| 1971 |
2 |
5.8679000000 |
| 1971 |
3 |
6.2442000000 |
| 1971 |
4 |
5.9811000000 |
| 1972 |
2 |
4.6883000000 |
| 1972 |
3 |
4.6302000000 |
...
Internally, gretl fills the variable bar with the corresponding value if it finds a match; otherwise, NA
is used. Printing out the variable bar thus produces
Obs
bar
1970:1
1970:2
7.8705
1970:3
7.5600
1970:4
7.1892
1971:1
1971:2
5.8679
1971:3
6.2442
1971:4
5.9811
1972:1
1972:2
4.6883
1972:3
4.6302
...
Appendix C
Building gretl
Here we give instructions detailed enough to allow a user with only a basic knowledge of a Unix-
type system to build gretl. These steps were tested on a fresh installation ofDebian Etch. For other
Linux distributions (especially Debian-based ones, like Ubuntu and its derivatives) little should
change. Other Unix-like operatingsystems such as Mac OS Xand BSD would probably require more
substantial adjustments.
In this guided example, we will build gretl complete with documentation. This introduces a few
more requirements, but gives you the ability to modify the documentation files as well, like the
help files or the manuals.
C.1 Installing the prerequisites
We assume that the basic GNU utilities are already installed on the system, together with these
other programs:
 some T
E
X/LAT
E
Xsystem (texlive will do beautifully)
 Gnuplot
 ImageMagick
We also assume that the user has administrative privileges andknows how to install packages. The
examples beloware carried out using the apt-get shell command, but they can be performed with
menu-based utilities like aptitude, dselect or the GUI-based program synaptic. Users of Linux
distributions which employ rpm packages (e.g. Red Hat/Fedora, Mandriva, SuSE) may want to refer
to thedependenciespage on the gretl website.
The first stepis installing the C compilerand related basic utilities, ifthese are not already in place.
On a Debian (or derivative) system, these are containedin a bunch of packages that can be installed
via the command
apt-get install gcc autoconf automake1.9 libtool flex bison gcc-doc \
libc6-dev libc-dev gfortran gettext pkgconfig
Then it is necessary to install the “development” (dev) packages for the libraries that gretl uses:
357
Appendix C. Building gretl
358
Library
command
GLIB
apt-get install libglib2.0-dev
GTK 3.0
apt-get install libgtk3.0-dev
PNG
apt-get install libpng12-dev
XSLT
apt-get install libxslt1-dev
LAPACK
apt-get install liblapack-dev
FFTW
apt-get install libfftw3-dev
READLINE
apt-get install libreadline-dev
ZLIB
apt-get install zlib1g-dev
XML
apt-get install libxml2-dev
GMP
apt-get install libgmp-dev
CURL
apt-get install libcurl4-gnutls-dev
MPFR
apt-get install libmpfr-dev
MPFR is optional, but recommended. It is possible to substitute GTK 2.0 for GTK 3.0. The dev
packages for these libraries are necessary to compile gretl—you’ll also need the plain, non-dev
library packages to run gretl,but most of these shouldalready be part of a standardinstallation. In
order to enable other optional features, like audio support, you may need to install more libraries.
+
The above steps can be much simplified on Linux systems that provide deb-based package managers,
such as Debian and its derivatives (Ubuntu, Knoppixand other distributions). The command
apt-get build-dep gretl
will download and install all the necessary packages for buildingthe version of gretl that is currently present
in your APT sources. Techincally, this does not guarantee that all the software necessary to build the git
version is included, because the version of gretl on your repository may be quite old and build requirements
may have changed in the meantime. However, the chances of a mismatch are rather remote for a reasonably
up-to-date system, soin most cases the above command should take care of everything correctly.
C.2 Getting the source: release or git
At this point, it is possible to build from the source. You have two options here: obtain the
latest released source package, or retrieve the current git version of gretl (git = the version control
software currently in use for gretl). The usual caveat applies to the git version, namely, that it may
not build correctly and may contain “experimental” code; on the other hand, git often contains
bug-fixes relative to the released version. If you want to help with testing and to contribute bug
reports, we recommend using git gretl.
To work with the released source:
1. Downloadthe gretl source package fromgretl.sourceforge.net.
2. Unzip and untar the package. On a system with the GNU utilities available, the command
would be tar xvfJ gretl-N.tar.xz (replace N with the specific version number of the file
you downloaded at step 1).
3. Change directory to the gretl source directory created at step 2 (e.g. gretl-1.10.2).
4. Proceed to the next section, “Configure and make”.
To work with git you’ll first need to install the git client program if it’s not already on your sys-
tem. Relevant resources you may wish to consult include the main git website atgit-scm.com and
instructions specific to gretl:gretlgitbasics.
Appendix C. Building gretl
359
When grabbing the git sources for the first time, you should first decide where you want to store
the code. For example, you might create a directory called git under your home directory. Open a
terminal window, cd into this directory, and type the following commands:
git clone git://git.code.sf.net/p/gretl/git gretl-git
At this point git should create a subdirectory namedgretl-git andfill it with the current sources.
When you want to update the source, this is very simple: just move into the gretl-git directory
and type
git pull
Assuming you’re nowin the gretl-git directory, you can proceed in the same manner as with the
released source package.
C.3 Configure the source
The next command you need is ./configure; this is a complexscript that detects which tools you
have on your system and sets thingsup. The configure commandaccepts many options; you may
want to run
./configure --help
first to see what options are available. One option you way wish to tweak is --prefix. By default
the installation goes under /usr/local but you can change this. For example
./configure --prefix=/usr
will put everything under the /usr tree.
If you have a multi-core machine you may want to activate support for OpenMP, which permits the
parallelization of matrixmultiplication and some other tasks. This requires adding the configure
flag
--enable-openmp
By default the gretl GUI is built using version 3.0 of the GTK library, if available, otherwise version
2.0. If you have both versions installed and prefer to use GTK 2.0, use the flag
--enable-gtk2
In order to have the documentation built, we need to pass the relevant option to configure, as in
--enable-build-doc
But please note that this option will work only ifyou are using the git source.
+
Inorder tobuildthe documentation,thereisthepossibility thatyouwill havetoinstallsomeextra software
on top of the packages mentioned in the previous section. For example, you may need some extra L
A
T
E
X
packages to compile the manuals. Two of the required packages, that not every standard L
A
T
E
Xinstallation
include, are typically pifont.sty and appendix.sty. You could install the corresponding packages from your
distribution or you couldsimply download them from CTAN and install them by hand.
This, for example, if you want to install under /usr, with OpenMP support, and also build the
documentation, you would do
Documents you may be interested
Documents you may be interested