[[PageOutline]] = Project ideas = This page collects ideas for possible student projects. == Dynamic retiling of arrays == * __Mentors__: dmisev * __Languages__: C/C++, a bit of parsing (Flex/Bison) * __Overview__: Multidimensional arrays in rasdaman are broken-down and stored as tiles (more info on [wiki:Tiling tiling]). At the moment the tiling is ''static'' and can be only specified when the data is initially inserted into rasdaman. Furthermore, the tiling is global to the array, i.e. it is not possible to tile one part of the array using one strategy, and another with a different strategy. The idea is to make tiling ''dynamic'', so that an array or even parts of the array can be re-tiled at any time with a different tiling strategy. This could be part of the UPDATE statement in rasql: {{{ update collName as c set c[domainToBeTiled] tiling ... }}} Once this is achieved, further enhancement would be to make the server self-aware of data access patterns. Rasdaman would keep statistics and learn what's the best tiling based on the queries that are typically run, and re-tile the data accordingly. __Ticket__: #312 == Overlays of Geometries == * __Mentors__: pcampalani * __Languages__: Java, SQL * __Overview__: At the moment Petascope works with ''aligned'' coverages, i.e. coverages with axes parallel to the external CRS dimensions. Enabling rotations and curvilinear grid topologies will add computational burden on the domain2grid conversion. The task is to implement '''optimized''' algorithms to identify which cells are to be extracted. == (Web) Graphical query builder == * __Mentors__: * __Languages__: HTML, !JavaScript, possibly JSP or PHP * __Overview__: New users typically have difficulties initially with writing ''WCPS'' or ''rasql'' queries. Such users would benefit a lot from a graphical user interface (preferably web-based) that allows them to build queries and extract information from the database without knowing much about the query languages. Some examples in the SQL world about such tools are: - http://www.activequerybuilder.com/ - http://www.ajaxquerybuilder.com/ - http://www.dbfacephp.com/query-builder/ - http://www.razorsql.com/features/sql_gui.html This could possibly be done by taking an existing open-source SQL builder, and adapting it to rasql/WCPS. == !GeoServer and Rasdaman Integration == * __Mentors__: abeccati, pcampalani + discuss and work with !GeoServer community * __Languages__: Java * __Overview__: Establish prototype to demonstrate that [http://geoserver.org GeoServer] can exploit Rasdaman as a native raster data source == Cancel long standing query execution == * __Mentors__: abeccati * __Languages__: C/C++ and Java (servlets) * __Overview__: Spawning from audience request at FOSS4G 2013 For any interactive system providing access to large datasets, there is potential for an unexpectedly long synchronous execution time. execution of such long standing queries might need to be cancelled. In the rasdaman system (www.rasdaman.org) a request can come in from a web-client and go thorugh server process (array database) and a RDBMS (fetching data). A system for cancelling running queries should be investigated. Since there array database employs tile streaming, a "still valid request" check could be added or process signalling could be employed. This project consists of: * A preliminary review of existing literature * A review of practical cases and approaches of existing systems * A code review of the rasdaman system (from OGC interface to array engine) to identify processing chain and candidate points of interruption * Devise and prototype an effective solution allowing cancellation of standing queries * Optionally, estimation metrics for expected array processing time can be investigated