piątek, 30 września 2011

Fork/Join under a condition

After an Activity 1 there is an Activity 2 and - under a certain condition - simultaneously Activity 3. After Act.2 and Act.3 are finished or after only Act.2 is finished (if the condition is not fulfilled) there is an Act.4. The problem is how to model this on an Activity diagram? 

Below there are two Act. diagrams showing this situation:


The above diagram comprises a problem. What if the condition is not fulfilled? How long should we wait after Act.2 to start  Act.4?


















This digram shows the solution: we should use decision diamond representing the condition. If the condition is not fulfilled the flow goes to the Join and waits for the end of Act.2 then flow goes to Act.4







czwartek, 7 kwietnia 2011

How to count size od tables in Oracle Spatial?

Generally:

SELECT round((bytes/1024/1024/1024),1) size_GB
FROM dba_segments
WHERE owner = <OWNER_NAME> and segment_name = <TABLE_NAME>;

Use the above select for:
1) Table itself.

2) Indexes for the table (put them as <TABLE_NAME> in the above statement). You can retrieve them as follows:

2.1) Indexes:

SELECT index_name
FROM all_indexes
WHERE table_owner = <OWNER_NAME>and table_name = <TABLE_NAME>;

2.2) Spatial indexes:

SELECT sdo_index_table
FROM all_sdo_index_info
WHERE table_owner = <OWNER_NAME>and table_name = <TABLE_NAME>;

środa, 2 marca 2011

Dictionary iteration - ValueError: too many values to unpack

If you get the following error trying to iterate on a dictionary:
 
ValueError: too many values to unpack
 
you have forgotten add iteritems() method:
 
for k,v in dict.iteritems():
    print k, v

wtorek, 1 marca 2011

How to select value of SDO_GEOMETRY Object

http://download.oracle.com/docs/cd/E11882_01/appdev.112/e11830/sdo_objrelschema.htm#i1004087

States:

"Oracle Spatial defines the object type SDO_GEOMETRY as:

CREATE TYPE sdo_geometry AS OBJECT (
 SDO_GTYPE NUMBER,
 SDO_SRID NUMBER,
 SDO_POINT SDO_POINT_TYPE,
 SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY,
 SDO_ORDINATES SDO_ORDINATE_ARRAY);
"

Let's assume we have a "TABLE" with SDO_GEOMETRY Type field named "GEOM".
If you want to get the values of certain SDO_GEOMETRY Type field and make query like this:

select geom.SDO_GTYPE from table;

You'll get ORA-00904 Error: "invalid identifier".

Try with table name alias:

select t.geom.SDO_GTYPE from table t;

GEOM.SDO_GTYPE   
----------------------
2003      

piątek, 11 lutego 2011

poniedziałek, 7 lutego 2011

[linux] How many files of a certain type...

If you want  to count how many files of a certain type or similar name you have (in linux), eg. all files starting with a word: "Report" - try:
find . -name 'Report*' | wc -l
  • find
  • . (dot) means here (in this catalogue)
  • -name files or catalogues of a name...
  • 'Report*' name starts with 'Report', asterisk means the rest of the name
  • | and the result put to the another command...
  • wc ... which is count
  • -l means number of lines.
[PL: Sposób znalezienia plików danego typu i policzenia ich ilości w Linuxie]

OGR in Python - an example

Required Python and GDAL.

1. Open Python
2. Import OGR module
3. Set data type
4. Open data source
5. Get layers (here we have only one)
And now we can e.g.:
6. Get layer extension
7. Get an object on the layer
8. Get attribute
9. Get object geometry
10. Get coordinates (point in this case).


from osgeo import ogr #2
driver = ogr.GetDriverByName('ESRI Shapefile') #3
dataSource = driver.Open('plik.shp',0) #4
layer = dataSource.GetLayer() #5
layer.GetExtent() #6
feature = layer.GetFeature(0) #7 (pobieramy obiekt pierwszy)
feature.GetField('ID') #8
geometry = feature.GetGeometryRef() #9
geometry.GetX() #10
geometry.GetY() #10


______________________________________________________________
Src: Geoprocessing with Python using Open Source GIS

[PL: Przykład wykorzystania OGR (GDAL) w Python]

[py, gdal] GDAL for Python 2.7 installation package

If you have Python 2.7 and want to install GDAL library and you can't find it there:

http://download.osgeo.org/gdal/win32/1.7/
ftp://ftp.remotesensing.org/gdal/win32/1.7/

Try there:

http://www.lfd.uci.edu/~gohlke/pythonlibs/

niedziela, 6 lutego 2011

cx_Oracle - how to get SDO_GEOMETRY data

#Let's connect to the database
import cx_Oracle
orcl = cx_Oracle.connect ('scott/tiger@orcl')
c = orcl.cursor()

#we need some spatial data
sql = "SELECT geom FROM geometry_tab WHERE (...)"
res = c.execute(sql)
obj = res.fetchone()[0]

#ok, what do we have?
obj
<cx_Oracle.OBJECT object at 0x0158A4C0>
#if you type dir(obj) you will not get the attributes names - try..
# you MUST know (or read here) the you can use attributes from SDO_GEOMETRY object in ORCL, like:
#'SDO_GTYPE','SDO_SRID','SDO_POINT','SDO_ELEM_INFO','SDO_ORDINATES'

obj.SDO_GTYPE
2003.0

obj.SDO_ELEM_INFO
[1.0, 1003.0, 1.0]

obj.SDO_ORDINATES
[20.623358189, 52.88806347, 20.623203441, 52.887897231000004, 20.623488043000002, 52.887861954, (...) , 52.888026894, 20.623358189, 52.88806347]