Essa é uma revisão anterior do documento!
Tabela de conteúdos
aRT Development Page
Team: Pedro, PJ, Eduardo Sant'ana
This is a development page, with ongoing work and future functionalities for the package. For a description of aRT see the webpage.
Ongoing Work
para a próxima versão (1.6-2)
strip aRT.dll (windows)colocar o libmysql.dll em libs (windows) skosta@gmail.com: Quando se instala o mysql, ele instala a biblioteca que vem com ele, e nós temos que atualizar a biblioteca do mysql por aquela que foi compilado para gcc.compilar o aRT com a versao nova da terralib (Release 3.2.1, October 24th)compilar o aRT e executar o check com a nova versão do R (2.8-X)adicionar o cvs no apt das dependencias do script de instalação- erro MySQL windows quando executa o script recife.R: "too long …". ver problema e relatar para o pessoal da TerraLib, antes da nova versao (15/out).
- Postgre commandos ⇒ LEG
- colocar debs na pagina ⇒ gerar debs ⇒ LEG
- atualizar esta pagina
manipulacao de celulas
getRelation
PJ: getRelation(lpred, c("within", "touches"), lpolys)) e ver outras funcoes que possam usar a mesma estrategia
Pedro: Implementado. ver script recife.R na versao nova, a construcao da rel3.
Password
PJ: será que o print da classe aRTconn poderia "esconder" a senha (talvez possa ter um argumento com default pass=FALSE)
Pedro: O print agora nao mostra mais a senha, mostra apenas um Yes ou No, indicando se a conexao usa ou nao senha. Se o usuario tem necessidade de saber a senha, ele pode verificar o comando que foi usado para estabelecer a conexao.
getSetOperation
PJ: na documentacao esta': "id: The ids which to be used in the operation. 'difference' and 'xor' use only two ids. 'union' and 'intersection' have as default all objects of the layer." mas o argumentoi id é origatorio no codigo:
union <- getSetOperation(ldistricts, "union") Erro em .aRTcall(object, "cppGetSetOperation", operation = operation, : argumento "id" ausente, sem padrão
Pedro: Já está funcionando na nova versão. Paulo, me passe o seu script e dados para eu testar.
simplify
PJ: ?simplify abre documentacao de aRTgeometry, deve ser um recorta e cola para eduitar depois? o que simpify() faz? Outra cooisa : rodando os script meso e neigh-parana da pagina abro as visualizacoes dos poligonos no TV e nao consigo ver as cores das legendas – aparece tudo com cor s;olida do poligono será que estou fazendo algo errado (desmarquei todas e marquei só a que queria ver e mando desenhar)
Pedro: O simplify é uma funcao da classe aRTgeometry. ela simplifica poligonos em memoria, removendo pontos de acordo com limites de distancia e angulacao máximas. esta foi a primeira funcao que implementei que funciona com objetos em memoria, e nao armazenados no banco. Documentacao feita (?simplify) e exemplo feito (tests/geometry.R).
legendas
PJ: rodando os script meso e neigh-parana da pagina abro as visualizacoes dos poligonos no TV e nao consigo ver as cores das legendas – aparece tudo com cor s;olida do poligono. será que estou fazendo algo errado (desmarquei todas e marquei só a que queria ver e mando desenhar)
getGeometry
PJ: Typo nos docs: Usage:\S4method{getGeometry}{aRTgeometry}(object) e nao consigo rodar:
getGeometry(ldistricts) Erro em function (classes, fdef, mtable) : unable to find an inherited method for function "getGeometry", for signature "aRTlayer"o que parece inconsistente com a documentacao de getSetOperation() que tem exemplos com getSetMetric() (resquicio de versao anterior??)
Pedro: a função getGeometry é da classe aRTgeometry, e não da classe aRTlayer. A classe aRTlayer tem os métodos getPoints, getPolygons e getLines. Isto porque um aRTlayer suporta mais de um tipo de geometria, enquanto que um aRTgeometry possui apenas uma geometria. A documentacao de getSetOperation estava errada, e já foi substituida para getSetMetric(layer, "union").
Probably Implemented, but not Checked
- when adding/reading data to a table, do not fill missing values (NA).
- openTheme(db, "theme") (directly from the database, instead of the layer)
- temporal slicing?
- reload(db) to reconnect to the database, keeping consistent all children (layers, tables)
- aRTvisual class
Scripts com exemplos, dúvidas e problemas
- List of Scripts about aRT
Drivers
SQLite Driver
- Aborted due to syntax constraints. It does not support all the SQL commands TerraLib needs (left join, right join).
- Discussions about the implementation of a TerraLib driver for SQLite.
Connection Through ODBC
- ODBC strategy plans for an access to the TL data base using ODBC aiming a common solution for Linux and Windows
Postgre
- all databasde operations (createDB, createLayer etc) are echoing messages such as:
> th = createTheme(lpolygons, "poligons", vi="view") > NOTA: CREATE TABLE / PRIMARY KEY criará Ãndice implÃcito > "te_collection_2_pkey" na tabela "te_collection_2" > NOTA: CREATE TABLE criará sequência implÃcita > "te_collection_2_aux_unique_id_seq" para coluna serial > "te_collection_2_aux.unique_id" > NOTA: CREATE TABLE / PRIMARY KEY criará Ãndice implÃcito > "te_collection_2_aux_pkey" na tabela "te_collection_2_aux"How to remove them?
To Do List
Bugs
- shapefile: great chance to have a bug when 'object_id' is a column of real numbers. Perhaps a warning?
- when creating themes with more than one table, the last attribute of the tables but the first disappear. Probably it thinks the table has less attributes it really has, because of the object_id that joins the tables. And it removes another attribute instead of obj_id
- Polygonos with holes still do not work very well.
- bug creating themes, but when trying again it works (problem with SAUDAVEL database).
Temporal Tables
- aRT currently has a fixed format for temporal attributes: "YYYY-MM-DD HH:mm:SS"
- getFormat to get the format of a column? (package chron works with time formats)
- if we use it, the format MUST be an argument each time we write a temporal column in the database
- aRTdynattrtable.cpp:
at.dateTimeFormat_ = "YYYYsMMsDDsHHsmmsSS"; at.dateChronon_ = TeSECOND; at.dateSeparator_ = "-"; at.timeSeparator_ = ":";
Media Tables
Na verdade a questao é referente ao banco do saudavel onde já há uma midia e o Miguel acha (e eu concordo) que deveriamos ncluir a media no banco.. Isto é o que motiva esta pergunta. Portanto, pelo que vc comenta é possível adicionar mais de uma midia à tabela. Nao sei o quão complicado é isto,é desejável, embora não totalmente prioritário no momnebnt
media tables are now (terralib 3.2) part of terraview. Put the access to the following functions:
terralib/terraView/TeApplicationUtils.h
bool insertMedia(TeDatabase* db, const string& tableName, string& fileName, const string& description, const string& type, bool blob=true); bool insertMediaObjLayer (TeDatabase* db, TeLayer* layer, const string& objectId, const string& mediaName, const string& mediaTable); bool setDefaultMedia(TeDatabase* db, TeLayer* layer, const string& objectId, const string& mediaName, const string& mediaTable); bool updateMediaDescription(TeDatabase* db, const string& mediaName, const string& mediaTable, const string& desc);
existe um erro nas tabelas de media, mas ainda nao sei se o erro é do aRT ou da TerraLib, ou se é apenas uma decisao de projeto da terralib. acontece que não é possivel repetir o nome da url nas tabelas (assim como o id nao pode ser repetido). o erro ocorre quando voce tenta adicionar o terceiro elemento do data.frame, que tem media_name igual ao do segundo elemento.
object_id media_name 1 261160605094 http://www.leg.est.ufpr.br/~paulojus/aviDengue/gamBT.avi 2 261160605054 http://www.leg.est.ufpr.br/~paulojus/aviDengue/gamCFP.avi 3 261160605055 http://www.leg.est.ufpr.br/~paulojus/aviDengue/gamCFP.avi
o problema é que as tabelas de media exigem que ambos object id e media name sejam uma chave composta.
Miscelaneous
- selecting attributes when creating themes
- getLastID ou getBiggerID (or something like that), only when using ID as integers (to Elias).
- getUniqueTimes(table) for temporal tables
- exportShape(), exportMidmif, exportSpring()
- getPoints etc para pegar a projecao e colocar no objeto sp
- incorporar importDynTable() no aRT da melhor forma e considear uns comentario que deixei no script. Qaundo estiver td certo e com certeza de estar funcionando a gente "enxuga" o script
- querier for raster data?
- colocar um relatorio no final da instalacao do aRT, e colocar uma funcao com este mesmo relatorio no pacote.
- colocar a variavel ambiente dentro da funcao de carregar o aRT, e colocar isto no configure para alterar automaticamente
- apagar conceptualmodel da funcao de criar banco, e ver se funciona corretamente
- deleteColumn()
an old agenda
- opcao para compilar sem banco
Links
- R Spatial task view and R-SIG-Geo resources