2353 shaares
Une approche intéressante pour dissoudre des polygones avec Spatialite. Je tente et je conserve...
Ah ben merde alors. J'imaginais pas que ça irait si rapidement... Découverte d'une collision ya pas longtemps, et boum. Un algo pour les trouver...
Via Mathieu. Ya deux-trois graphiques qui laissent rêveurs... à creuser plus en détail.
SMBC a découvert le moyen de gonfler son taux de citation.
Bon à savoir...
Stratégie super intéressante!!! À suivre.
J'aime bien quand SMBC se lance dans la théologie XD
Ah ben voilà, maintenant, je comprends ce qui se passe avec mon programme: la réponse de sds est limpide.
J'ai écrit un programme qui lit des raster, les affiche avec un plotRGB, met un point avec un buffer dessus, sauve l'image, et vire les raster. À la fin, un coup de rm(), un coup de gc(), et on répète ça sur un bon millier de cartes.
Pourtant, toutes les 10 cartes, on a:
Error: cannot allocate vector of size 9.6 Mb
Et après, on a beau tourner le truc dans tous les sens, plus moyen de faire quoi que ce soit. Et quand je regarde l'environnement, il est vide, ou quasi.
Trois fonctions par ci par là, un data.frame de 30 lignes, une vingtaine de tout petits objets, mais ne constituant pas un 1Mo de mémoire bouffée. Quasi-vide quoi. Et non seulement l'environnement est vide, mais la mémoire sous linux n'est qu'à moitié remplie (i.e. pas des masses de programmes tournant en même temps). Et pourtant, je peux pas allouer un vecteur, même de taille modeste: plus de place. C'était surréaliste. Là, l'explication de sds est limpide:
"The R garbage collector is imperfect in the following (not so) subtle way: it does not move objects (i.e., it does not compact memory) because of the way it interacts with C libraries (...). This means that if you take turns allocating small chunks of memory which are then discarded and larger chunks for more permanent objects (this is a common situation when doing string/regexp processing), then your memory becomes fragmented and the garbage collector can do nothing about it: the memory is released, but cannot be re-used because the free chunks are too short.
The only way to fix the problem is to save the objects you want, restart R, and reload the objects. "
Eh ben, moi j'ai pas le cul sorti des ronces comme dirait l'autre...
J'ai écrit un programme qui lit des raster, les affiche avec un plotRGB, met un point avec un buffer dessus, sauve l'image, et vire les raster. À la fin, un coup de rm(), un coup de gc(), et on répète ça sur un bon millier de cartes.
Pourtant, toutes les 10 cartes, on a:
Error: cannot allocate vector of size 9.6 Mb
Et après, on a beau tourner le truc dans tous les sens, plus moyen de faire quoi que ce soit. Et quand je regarde l'environnement, il est vide, ou quasi.
Trois fonctions par ci par là, un data.frame de 30 lignes, une vingtaine de tout petits objets, mais ne constituant pas un 1Mo de mémoire bouffée. Quasi-vide quoi. Et non seulement l'environnement est vide, mais la mémoire sous linux n'est qu'à moitié remplie (i.e. pas des masses de programmes tournant en même temps). Et pourtant, je peux pas allouer un vecteur, même de taille modeste: plus de place. C'était surréaliste. Là, l'explication de sds est limpide:
"The R garbage collector is imperfect in the following (not so) subtle way: it does not move objects (i.e., it does not compact memory) because of the way it interacts with C libraries (...). This means that if you take turns allocating small chunks of memory which are then discarded and larger chunks for more permanent objects (this is a common situation when doing string/regexp processing), then your memory becomes fragmented and the garbage collector can do nothing about it: the memory is released, but cannot be re-used because the free chunks are too short.
The only way to fix the problem is to save the objects you want, restart R, and reload the objects. "
Eh ben, moi j'ai pas le cul sorti des ronces comme dirait l'autre...
Intéressante interview!
YEEEES. J'ai réussi cette étape-ci... En suivant à la lettre ces instructions, ça marche.
Edit: non, ça marche pas en fait. J'arrive bien à avoir ECW parmi les drivers dispo, mais impossible d'importer ce foutu ecw de merde avec. Erreur mémoire, mauvaise allocation.
Bon, je continue à chercher...
Edit 2: j'ai recompilé en remplaçant le so 64 bits par le 32, même souci... Je vais essayer avec une autre version du SDK...
Edit 3: Hexagon geospatial ne laisse pas le choix de la version du sdk. Tu prends celle qu'on te donne et tu la fermes (au passage, tu nous laisses ton nom, ton prénom, ton numéro de téléphone, ton adresse, etc.).
Le monde du propriétaire, j'adore.
Edit 4: Essai de recompiler complètement une version récente de gdal (2.1.3) en suivant les instructions ici: https://trac.osgeo.org/gdal/wiki/ECW
Après suppression de ma version précédente (1.11). La compilation plante à cause de l'ECW après une demi-heure de compilation. Recherche sur internet, je tombe sur ça: http://osgeo-org.1560.x6.nabble.com/gdal-dev-gdal-2-1-ecw-5-2-1-td5299048.html
J'essaie la compilation avec les flags indiqués, rien à faire, la compilation plante encore à cause de cette saloperie de merde de chiotte d'ECW de mes couilles.
Et pour info, même problème avec une version plus ancienne de gdal quand on la recompile (1.11)
Edit 5: j'essaie une approche différente: je vais compiler une version ancienne du SDK, et recompiler gdal avec cette version. Je récupère la version ici:
https://github.com/cga-harvard/cga-worldmap/wiki/How-to-enable-ECW-support-in-GeoServer
Je compile ça, je l'installe, et je recompile gdal avec --with-ecw=/usr/lib
Edit 6: PUTAIN ÇA MARCHE TOUJOURS PAS!!!! J'ai essayé les deux versions de gdal, rien à faire. Ça compile, ça me liste ecw dans les drivers, mais putain ça veut pas me sortir un gdalinfo qui marche! On a toujours ce putain d'erreur d'allocation mémoire.
Dernier essai, j'essaie d'appliquer les patchs aux sources listés ici, et je recommence:
https://github.com/cga-harvard/cga-worldmap/wiki/How-to-enable-ECW-support-in-GeoServer
Edit 7: PUTAIN ÇA MARCHE!!!!! La vache, j'y ai passé la journée, mais j'ai RÉUSSI!!!!
Je synthétise: on récupère une ancienne version du SDK (version 3), on récupère et on applique les patchs des bugs (pour éviter les erreurs d'allocation mémoire), on la compile et on l'installe. Ensuite, on récupère les sources de gdal -- version 1.11, je garantis pas que ça marchera avec une version plus récente -- on compile ces sources (en indiquant l'adresse de la lib ECW lors du ./configure, puis après classique make), et on installe, et ça marche. Attention, il ne faut pas passer par l'étape "sudo gdal-ecw-build /usr/local" décrite ici: https://github.com/cga-harvard/cga-worldmap/wiki/How-to-enable-ECW-support-in-GeoServer (à part ça, ce lien est le plus proche de ce qui peut marcher).
Et on termine en recompilant le package raster et rgdal sous R pour pouvoir utiliser ça.
YEEEEEEEEEEEEEEEEEEEEEEESSSSSSS!!!!
Putain je commençais à plus y croire.
Edit 8: Euh, par contre, quand on recompile rgdal, on ne peut plus utiliser les versions de qgis et grass présentes dans les dépots: il faut complètement recompiler ces logiciels depuis les sources. C'est pas compliqué, mais c'est chiant. Donc si je synthétise, pour pouvoir importer l'ECW avec gdal, il faut récupérer la lib ECW version 3 (ancienne version sinon ça marche pas), compiler cette lib et l'installer, récupérer les sources de gdal en les compiler en indiquant la localisation de cette lib, et récupérer les sources et compiler tous les SIG qui s'appuient sur gdal.
Donc tous les SIG (qgis et grass), puisque gdal est central. Et, bien sûr, les packages R associés. Moralité, pour pouvoir utiliser ce format de merde, il faut réinstaller TOUT le système.
Je l'ai fait, mais ce que je pense du monde du logiciel propriétaire est assez clair je pense...
Edit: non, ça marche pas en fait. J'arrive bien à avoir ECW parmi les drivers dispo, mais impossible d'importer ce foutu ecw de merde avec. Erreur mémoire, mauvaise allocation.
Bon, je continue à chercher...
Edit 2: j'ai recompilé en remplaçant le so 64 bits par le 32, même souci... Je vais essayer avec une autre version du SDK...
Edit 3: Hexagon geospatial ne laisse pas le choix de la version du sdk. Tu prends celle qu'on te donne et tu la fermes (au passage, tu nous laisses ton nom, ton prénom, ton numéro de téléphone, ton adresse, etc.).
Le monde du propriétaire, j'adore.
Edit 4: Essai de recompiler complètement une version récente de gdal (2.1.3) en suivant les instructions ici: https://trac.osgeo.org/gdal/wiki/ECW
Après suppression de ma version précédente (1.11). La compilation plante à cause de l'ECW après une demi-heure de compilation. Recherche sur internet, je tombe sur ça: http://osgeo-org.1560.x6.nabble.com/gdal-dev-gdal-2-1-ecw-5-2-1-td5299048.html
J'essaie la compilation avec les flags indiqués, rien à faire, la compilation plante encore à cause de cette saloperie de merde de chiotte d'ECW de mes couilles.
Et pour info, même problème avec une version plus ancienne de gdal quand on la recompile (1.11)
Edit 5: j'essaie une approche différente: je vais compiler une version ancienne du SDK, et recompiler gdal avec cette version. Je récupère la version ici:
https://github.com/cga-harvard/cga-worldmap/wiki/How-to-enable-ECW-support-in-GeoServer
Je compile ça, je l'installe, et je recompile gdal avec --with-ecw=/usr/lib
Edit 6: PUTAIN ÇA MARCHE TOUJOURS PAS!!!! J'ai essayé les deux versions de gdal, rien à faire. Ça compile, ça me liste ecw dans les drivers, mais putain ça veut pas me sortir un gdalinfo qui marche! On a toujours ce putain d'erreur d'allocation mémoire.
Dernier essai, j'essaie d'appliquer les patchs aux sources listés ici, et je recommence:
https://github.com/cga-harvard/cga-worldmap/wiki/How-to-enable-ECW-support-in-GeoServer
Edit 7: PUTAIN ÇA MARCHE!!!!! La vache, j'y ai passé la journée, mais j'ai RÉUSSI!!!!
Je synthétise: on récupère une ancienne version du SDK (version 3), on récupère et on applique les patchs des bugs (pour éviter les erreurs d'allocation mémoire), on la compile et on l'installe. Ensuite, on récupère les sources de gdal -- version 1.11, je garantis pas que ça marchera avec une version plus récente -- on compile ces sources (en indiquant l'adresse de la lib ECW lors du ./configure, puis après classique make), et on installe, et ça marche. Attention, il ne faut pas passer par l'étape "sudo gdal-ecw-build /usr/local" décrite ici: https://github.com/cga-harvard/cga-worldmap/wiki/How-to-enable-ECW-support-in-GeoServer (à part ça, ce lien est le plus proche de ce qui peut marcher).
Et on termine en recompilant le package raster et rgdal sous R pour pouvoir utiliser ça.
YEEEEEEEEEEEEEEEEEEEEEEESSSSSSS!!!!
Putain je commençais à plus y croire.
Edit 8: Euh, par contre, quand on recompile rgdal, on ne peut plus utiliser les versions de qgis et grass présentes dans les dépots: il faut complètement recompiler ces logiciels depuis les sources. C'est pas compliqué, mais c'est chiant. Donc si je synthétise, pour pouvoir importer l'ECW avec gdal, il faut récupérer la lib ECW version 3 (ancienne version sinon ça marche pas), compiler cette lib et l'installer, récupérer les sources de gdal en les compiler en indiquant la localisation de cette lib, et récupérer les sources et compiler tous les SIG qui s'appuient sur gdal.
Donc tous les SIG (qgis et grass), puisque gdal est central. Et, bien sûr, les packages R associés. Moralité, pour pouvoir utiliser ce format de merde, il faut réinstaller TOUT le système.
Je l'ai fait, mais ce que je pense du monde du logiciel propriétaire est assez clair je pense...
En conclusion: l'ECW est un format de merde. Peut-être que ça permet une compression impressionnante, mais des données publiques dans des formats fermés, c'est vraiment la merde.
Je HAIS l'ECW. Je vais quand même pas devoir réinstaller tout mon système juste pour pouvoir lire ces putains d'ECW de merde?
Je hais ce format.
Je HAIS l'ECW. Je vais quand même pas devoir réinstaller tout mon système juste pour pouvoir lire ces putains d'ECW de merde?
Je hais ce format.
Construction du support ECW pour GDAL. Je garde sous le coude
Edit: marche pas.
Edit: marche pas.
Eh ben, sont vraiment mal barrés les ricains, avec leur clown pendant quatre ans...
(via Mathieu)
(via Mathieu)
Voila un article intéressant...
De l'usage des index spatiaux pour accélérer les opérations spatiales avec spatialite. Spatialite, je découvre je découvre...
Et j'adopte!
Et j'adopte!
Tout est là. À garder sous le coude donc.
Euh... quelqu'un m'explique?
Voila une personne intéressante. Ses papiers ont l'air TRÈS intéressants.
TRÈS.
Alire donc.
TRÈS.
Alire donc.
A lire