OSGeo Planet

gvSIG Team: The second Release Candidate of the gvSIG 2.1 version is now available

OSGeo Planet - 15 sec ago
pThe second gvSIG 2.1 Release Candidate (gvSIG 2.1 RC2) has been released [1]./p pDuring the stabilization process from the first release candidate a lot of errors have been fixed, and some new functionalities have been included in gvSIG 2.1 too, like a new layout with TOC (table of contents), new grid functionalities, memory management at the Preferences menu or the possibility to add layers to the view dragging the file from the file browser directly./p pWe encourage you to test this version and send us any errors and suggestions in the users mailing list in English [2] or Spanish [3] or directly in the bugtracker (see interesting links for testers [4])./p pThe complete list of the main new features of gvSIG 2.1 can be consulted on [5]./p pThanks for your collaboration./p p[1] a href=http://www.gvsig.org/web/projects/gvsig-desktop/official/gvsig-2.1/downloadshttp://www.gvsig.org/web/projects/gvsig-desktop/official/gvsig-2.1/downloads/abr / [2] a href=http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_internacionalhttp://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_internacional/abr / [3] a href=http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios target=_blankhttp://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios /abr / [4] a href=http://www.gvsig.org/web/docusr/doctesting/interesting-links-for-testers/view?set_language=enhttp://www.gvsig.org/web/docusr/doctesting/interesting-links-for-testers/view?set_language=en/abr / [5] a href=http://www.gvsig.org/web/projects/gvsig-desktop/official/gvsig-2.1/notas-de-version/new-featureshttp://www.gvsig.org/web/projects/gvsig-desktop/official/gvsig-2.1/notas-de-version/new-features/a/pbr /Filed under: a href=http://blog.gvsig.org/category/gvsig-development/development/development/a, a href=http://blog.gvsig.org/category/languages/english/english/a, a href=http://blog.gvsig.org/category/products/gvsig-desktop/gvSIG Desktop/a, a href=http://blog.gvsig.org/category/gvsig-development/testing/testing/a img alt= border=0 height=1 src=http://pixel.wp.com/b.gif?host=blog.gvsig.orgamp;blog=8230583amp;post=2554amp;subd=gvsigamp;ref=amp;feed=1 width=1 /
Categories: OSGeo Planet

Even Rouault: Blending metadata into vector formats

OSGeo Planet - Wed, 2014-10-22 21:50
div style=text-align: justify;This post explores a few ideas, and the resulting experiments, I've had recently to put metadata (or arbitrary information) into vector GIS formats that have no provision for them. One typical such format is the good-old a href=http://dl.maptools.org/dl/shapelib/shapefile.pdfShapefile format/a. A shapefile generally consists in 3 files, a .shp file that contains the geometries, a .shx that is an index from the shape number to the offset in the .shp file where the geometry is located (to allow fast retrieval by shape ID) and a .dbf file that contains the attributes of each shape./divdiv style=text-align: justify;Of course, the most simple way of adding metadata would be to but an additional file besides the 3 mentionned ones, but that would not be very challenging (plus the risk of losing it during copy)./divdiv style=text-align: justify;Most implementations require at least those 3 files to be present. Some allow .dbf to be missing (e.g. a href=http://gdal.org/GDAL/OGR/a). Some allow .shx to be missing, like a href=http://www.openjump.org/OpenJUMP/a which doesn't read it even if it is available, which is both a feature and a drawback in a href=http://trac.osgeo.org/gdal/ticket/5706situations when there are holes/a in the .shp due to editing./divbr /div style=text-align: justify;A basic solution is to add our metadata at the end of one of those 3 files. I've done tests with GDAL/OGR (based on a href=http://shapelib.maptools.org/Shapelib/a), a href=http://www.geotools.org/GeoTools/a 12.0, OpenJUMP 1.7.1 (whose shapefile reader is a forked version of the GeoTools one with changes), proprietary software code-named GM and proprietary software AG /divdiv style=text-align: justify;.dbf : all 5 implementations are happy with extra content at the end of the file/divdiv style=text-align: justify;.shp : all implementations happy, except OpenJUMP that opens the file, but throws a warning because it tries to interprete the additional bytes as shape./div.shx : all 5 implementations are happybr /div style=text-align: justify;So we have at least 2 possibilities that are rather portable./divdiv style=text-align: justify;It should be checked how they react in editing use cases, like adding new features to the shapefile. Regarding GDAL/OGR, I can say that it would overwrite the extra content at the end of the .dbf and the .shx. It would let the extra content at the end of the .shp to write the new geometry afterwards./divbr /div style=text-align: justify;What if we want to link the metadata per feature in a way where it is preserved if shapes are added ? And for the sake of exploring more possibilities, we will exclude using the data-at-end-of-file track. Interleaving data and metadata is not possible in .dbf since the records are placed consecutively. Same for .shx. In .shp, we can try reserving some space between all geometry records and make sure that the .shx index takes the holes into account. Due to the fact that size and offsets in shapefile are expressed in term of 16 bit words, that extra space must be a multiple of 16 bit too. That works fine for all implementations, except OpenJUMP for the same reason as above. Hum, and what if we incorporate the metadata, not between the encoded geometries, but inside them ? Each geometry record is indeed structured like this :/divbr /Shape Id: 4 bytesbr /Record length (number of 16 bit words after that field): 4 bytesbr /Record content: (2 * record length) bytesbr /    Shape Type: 4 bytesbr /    Variable payload according to shape typebr /br /div style=text-align: justify;We can try adding extra payload at the end of record content while still updating record length to take into account. We could have thought that implementations strictly checks that the declared record length is consistant with the shape type, but experimentations (and code inspection on the 3 Open Source implementations) show that, when they check, they check that the record length is at least greater or equal to the minimum expected record length. So this works for the 5 implementations ! At least on a layer with 2D polygons. That should also work for other 2D geometry type. 3D shapes consist in the 2D information, followed by the Z information, and optionaly by the M(eausre) information. M information is sometimes omitted when it is not present (this is the case of the OGR writer). So if we would want to add metadata for 3D shapes, we would have to write dummy M information (writting not-a-number double values is commonly done to indicate that M information is invalid)./divbr /div style=text-align: justify;To go back to .dbf file a bit, sometimes the width of fields of string type is larger than strictly needed. The values are left aligned in the field and remaining space is padded with space characters. I've tried to insert a nul character just at the end of the string, and put the extra information afterwards. This works fine for the 3 C/C++ based shapefile readers (GDAL/OGR, G.M., A.G) since nul character is conventionnaly used to terminate a string in C/C++. Unfortunately that does not work with the 2 Java based implementations that do not use that convention : the extra content is displayed after the field content./divbr /div style=text-align: justify;As we have started exploring modifying the data itself, let's return to .shp file. One thing to consider is that coordinates in shapefiles are stored as double precision floating point numbers, stored on 64 bits using the a href=http://en.wikipedia.org/wiki/Double-precision_floating-point_formatIEEE-754 binary representation/a. Such numbers are decomposed like the following : 1 bit for the sign of the value, 11 bits for the exponent and its sign and 52 bits for the mantissa. The mantissa is where the significand precision of the number is stored. How big is that ? Let's go back to geography a bit. The Earth has rougly a circonference of 40 000 km. If we want to map features with a precision of 1 cm, we need 40 000 000 / 0.01 = 4 billion distinct numbers. 4 billion fits conveniently on a 32 bit integer (and a href=http://wiki.openstreetmap.org/wiki/PBF_FormatOpenStreetMap .pbf /aoptimized format store coordinates on 32 bit integers based on that observation). So 52 bits allow 2^(52-32)=2^20, roughly 1 million more numbers, i.e. a precision of 10^-8 meters = 10 nanometers ! We could almost map every molecule located on the Earth surface !/divdiv style=text-align: justify;It is consequently reasonable to borrow the 16 least significant bits from the mantissa for other use. Said differently for every 2D point/vertex, we can get back 4 bytes without any noticeable loss of precision. Depending on the shape complexity, this might be not big enough to store per-feature metadata. But on a typical shapefile, if we spead the metadata over the features, we can certainly store useful content. And the really great news is that this metadata would be preserved naturally in most format conversions (at least with GDAL/OGR whose internal geometry representation also uses 64-bit floating point numbers, and probably most other geometry engines), and for formats like a href=https://www.gaia-gis.it/fossil/libspatialite/indexSpatialite/a or a href=http://www.geopackage.org/GeoPackage/a that also use 64-bit floating point numbers. However, one must be aware than any other operation like rescaling or reprojection would completely change the least significant bits and erase our metadata./divbr /div style=text-align: justify;Admitedly this is not a new idea. People have explored similar ideas for a href=http://en.wikipedia.org/wiki/Digital_watermarkingdigital watermarking/a and more generally a href=http://en.wikipedia.org/wiki/Steganographysteganography/a, typically used to embed copyright information or source tracking (i.e. you generate a slightly different dataset for each customer, hence if a copy is then available for download, you can identify the origin of the leak), generally in a not noticeable way. Using least significant bits is the very basic technique, that can be circumvented easily by just zeroing them or adding noise. More advanced technique operate in the a href=http://en.wikipedia.org/wiki/Frequency_domainspectral domain/a, like a href=http://en.wikipedia.org/wiki/Discrete_cosine_transformDCT/a (Discrete Cosine Transform), a href=http://en.wikipedia.org/wiki/Discrete_Fourier_transformDFT/a (Discrete Fourier Transform) or a href=http://en.wikipedia.org/wiki/Discrete_wavelet_transformDWT/a (Discrete Wavelet Tranform). Some techniques have been specifically designed for GIS data, using topological properties for example. The common target of those techniques is to have robustness against attempts of removing the watermark from the signal, at the expense of a reduced bandwith for the inserted information. But for regular metadata, we do not need such guarantee and the use of least-significant bits might be good enough and easily implemented./divbr /Any other ideas ? Sure...br /br /div style=text-align: justify;For polygons, the shapefile specification states that the vertices of the outer ring must be listed in clockwise order. But it does not specify which vertex of the outline must be the first one. Let's consider that the top-most vertex of the polygon is numbered 0 (if there are several vertices with the same y coordinate, let's take the one of them with the minimum x), the following vertex in clockwise order is 1, etc... If our polygon has 16 vertices, and we serialize it starting at vertex 11, we have coded the 11 number. Combined with information of following polygons, we can build a longer message. This idea could only work in practice for shapefiles of complex/dense enough polygons. If every polygon has 256 vertex, we can encode log2(256)=8 bits per polygon. More generally, for a polygon with N vertex, we could encode log2(N) bits (rounded to inferior integer). So we need also at least hundreds or thousands of polygons of that complexity to be able to encode something useful. The advantage of this technique is that it is robust to rescaling, and probably most reprojections (at least the one that globally preserve the appearance of shapes), provided that the shapes are rewritten in the same order as in the original data./divdiv style=text-align: justify;That technique could also be adapted for lines. Let's consider a line made of (V1,V2,....Vn). We can for example simply build a multi-polyline of 2 parts (V1,...Vi) and (Vi,....,VN) that will visually looks like the original line and will encode for the i value. The increase in binary encoding would be modest (4+8+8=20 extra bytes)./divbr /div style=text-align: justify;Another technique might be to use repeated vertices. Let's consider a line or a polygon: if while listing consecutive vertices, they are repeated, this would encode a 1 value. Otherwise 0. For example, if a line is made of the sequence of vertices (V1,V1,V2,V3,V4,V4,V5,V5,V6), it would be equivalent to binary number 100110. So we could encode as many bits as vertices in the geometry. If needed, we can also use more repetitions to encode more bits. For one bit per vertex, on average such a technique would increase shapefile size by 50% (because on average, half of bits in a message are 1). It would preserve metadata perfectly for all coordinate transformations (geometry engines generally operate on vertices separately). But not to operations that would remove duplicated vertices./divbr /div style=text-align: justify;Finally, here's another idea, conceptually close to the one based on the starting vertex. Excluding implementations that don't rely on the .shx (I've no prejudice against such one ! Keep on good work folks !), we could use the order of shapes in the .shp to encode information. Traditionnaly, feature 1 appears first in the .shp, followed by feature 2, etc... But we could re-order the shapes as we wish, provided we make the .shx point to the right offset in the .shp. If we have N shapes, there are N! (a href=http://en.wikipedia.org/wiki/Factorialfactorial/a(N) = N*(N-1)*(N-2)*...2*1) ways of ordering them. So for N shapes, we can encode log2(N!) bits. In practice for 10 shapes, that is 21 bits. For 100 shapes, 524 bits. For 1000 shapes, 8529 bits. And for 10000, 118458. Advantages: works for all geometry types, no increase in file size. Inconvenients: possibly less performant sequential reading because of apparently random seeking within the .shp, doesn't resist to file conversion./divbr /div style=text-align: justify;I've not mentionned it, but for nearly all mentionned techniques, especially the last ones, we would need to reserve a few bits to insert a CRC or any other integrity mechanism, so as to make sure that we think is metadata really is. And all them could be potentially combined !/div
Categories: OSGeo Planet

gvSIG Team: Open Planet Especial nº1: 10 años gvSIG “gvSIG: no sólo ciencia. Recopilatorio de escritos”

OSGeo Planet - Wed, 2014-10-22 11:46
pEstamos de aniversario. Una década en la que el proyecto gvSIG ha ido construyendo su camino.  Esta efemérides está siendo celebrada de muchas maneras por la Comunidad. A todos esos eventos y actividades queremos unir stronguna recopilación de escritos que durante estos 10 años han aparecido aquí y allá/strong. Escritos que son un reflejo de cómo hemos ido avanzando en el pensamiento de gvSIG, en la interpretación de la realidad desde un proyecto de geomática libre./p pTextos que en ocasiones, como decía Bertolt Brecht, en estos tiempos han de defender lo evidente: que el conocimiento debe ser patrimonio de la humanidad y no de corporaciones, que la colaboración y la solidaridad son valores fundamentales sobre los que construir los modelos de negocio./p pEn gran parte somos recuerdos y recordar lo que hemos defendido y argumentado en cada momento nos permite también definir lo que somos a hoy día. Esta recopilación nos permite afirmar que detrás nuestro no solo queda un camino recorrido. strongLas bases de lo que seremos también están ahí./strong/p pOs dejo con la introducción del recopilatorio que espero que os anime a todos a a href=http://downloads.gvsig.org/download/documents/books/Recopilatorio_10.pdf title=Descarga recopilatoriodescargarlo/a e ir buceando en su lectura:/p pemgvSIG es algo más que ciencia. Economía Ciencia y Política son disciplinas que consideramos relacionadas entre sí y no logramos entenderlas plenamente si no atendemos a la existencia de estas relaciones. Esta idea es recurrente en gvSIG; siempre que podemos la proclamamos./embr / emQuizás, de todas las componentes de gvSIG la que menos se conozca sea la que explique como se ha construido la organización gvSIG, su pensamiento. Este recopilatorio pretende ayudar a explicar este proceso./embr / emEl presente documento es un recopilatorio de algunos escritos que han ido ayudando a crear gvSIG. Escritos de blogs, jornadas o escritos internos. Muchos de ellos van acompañados de un párrafo que ayude a explicar el porqué y los objetivos de cada uno de los escritos. No se trata de un trabajo exhaustivo, pero sí que pensamos que le puede resultar interesante a quien desee conocer los aspectos no técnicos de gvSIG./embr / emSe presentan ordenados por años, añadiendo al final un anexo con otros documentos./embr / emEsperando que os resulte de interés y que puedan servir como una herramienta para la transformación de un futuro que está por escribir./em/p pemAtreveros a soñar y carpe diem/em/p pstrongDescarga:/strong a href=http://downloads.gvsig.org/download/documents/books/Recopilatorio_10.pdfhttp://downloads.gvsig.org/download/documents/books/Recopilatorio_10.pdf/a/pbr /Filed under: a href=http://blog.gvsig.org/category/gvsig-association/gvSIG Association/a, a href=http://blog.gvsig.org/category/opinion/opinion/a, a href=http://blog.gvsig.org/category/languages/spanish/spanish/a img alt= border=0 height=1 src=http://pixel.wp.com/b.gif?host=blog.gvsig.orgamp;blog=8230583amp;post=2549amp;subd=gvsigamp;ref=amp;feed=1 width=1 /
Categories: OSGeo Planet

GeoSpatial Camptocamp: Journée ASIT VD : rencontrez les acteurs de la géoinformation !

OSGeo Planet - Wed, 2014-10-22 09:26
pLe 28 octobre, Camptocamp vous donne rendez-vous à la journée de l’a href=http://20ans.asitvd.ch/ target=_blank title=20ans ASIT-VDASIT VD/a, l’Association pour le Système d’Information du Territoire Vaudois, qui aura lieu au a href=http://20ans.asitvd.ch/#infosPratiques target=_blank title=Swiss Tech directionsSwiss Tech Convention Center/a à Lausanne./p pDepuis 20 ans, l’a href=http://www.asitvd.ch target=_blank title=ASIT VDASIT VD/a facilite l’accès aux géodonnées sur le territoire vaudois et regroupe près de 300 membres autour d’un partenariat public-privé original. A cette occasion, sociétés de services, administrations publiques, écoles et associations, vous présentent leurs produits, activités et nouveautés. Le programme est disponible a href=http://20ans.asitvd.ch/#programmeici/a./p pL’équipe a href=http://www.camptocamp.com/geospatial/ target=_blank title=Geospatial Solutions CamptocampGeospatial Solutions/a de Camptocamp vous accueillera sur son stand et vous présentera démos, formations, et nouveautés. Que vous soyez architecte, municipal, ingénieur ou technicien, venez discuter avec nous de vos projets SIG !/p pCet article a href=http://www.camptocamp.com/actualite/journee-asit-vd-rencontrez-les-acteurs-geoinformation/ rel=nofollowJournée ASIT VD : rencontrez les acteurs de la géoinformation !/a est apparu en premier sur a href=http://www.camptocamp.com rel=nofollowCamptocamp/a./p
Categories: OSGeo Planet

Boundless Blog: QGIS Compared: Visualization

OSGeo Planet - Tue, 2014-10-21 15:22
p dir=ltrimg alt=Gretchen Peterson class=alignright size-full wp-image-9187 height=138 src=http://boundlessgeo.com/wp-content/uploads/2014/03/Gretchen1.png style=margin-left: 10px; width=138 /Any GIS professional who’s been paying attention to the professional chatter in recent years will be wondering about QGIS and whether or not it might meet some or all of their needs. QGIS is open source, similar to proprietary GIS software, runs on a variety of operating systems, and has been steadily improving since its debut in 2002. With a href=http://boundlessgeo.com/solutions/solutions-software/qgis/easy-to-install packages/a, a href=http://boundlessgeo.com/2013/11/opengeo-suite-and-qgis/OpenGeo/aa href=http://boundlessgeo.com/2014/05/citibike-analysis-automated-workflows-qgis/ Suite/aa href=http://boundlessgeo.com/2014/07/ice-cubed-1-data-preparation/ integration/a, and reliable a href=http://boundlessgeo.com/2014/09/announcing-qgis-support/support offerings/a, we obviously see QGIS as a viable alternative to proprietary desktop GIS software such as Esri’s a href=http://www.esri.com/software/arcgis/arcgis-for-desktopArcGIS for Desktop/a./p p dir=ltrBut will it work for you? The short answer is: most likely yes for visualization of most formats of spatial data, probably for analysis of raster and vector data, probably for geographic data editing, and probably for cartographic publishing.  Those are all very subjective assertions based on my personal experience using QGIS for the past seven months but I have been using proprietary GIS for over fourteen years as an analyst and cartographer and have written a href=http://gretchenpeterson.com/cartographers-toolkit.phpa couple/a a href=http://gretchenpeterson.com/gis-cartography.phpof books/a on the subject./p p dir=ltrBy all means give QGIS a try: a href=http://boundlessgeo.com/solutions/solutions-software/qgis/qgis-download/download and install/a it, drag-and-drop a href=http://www.naturalearthdata.com/some data/a into it, and give it a spin. This is definitely a good time to evaluate it and consider adopting it across your organization./p h2 dir=ltrVisualizing spatial data in QGIS/h2 p dir=ltrIn this first post, I’m going to focus on visualizing spatial data in QGIS. These basic functions are straightforward and easy to do in QGIS:/p ol li dir=ltr p dir=ltradding datasets/p /li li dir=ltr p dir=ltrmoving datasets up and down in the layer hierarchy/p /li li dir=ltr p dir=ltrzooming around the map/p /li li dir=ltr p dir=ltrselecting features based on simple point-and-click/p /li li dir=ltr p dir=ltrselecting features based on complex selection criteria/p /li li dir=ltr p dir=ltrviewing attributes/p /li li dir=ltr p dir=ltrcreating graduated color schemes/p /li /ol p dir=ltrimg alt=PostPic1.png height=325px; src=https://lh3.googleusercontent.com/w3an7veRMZ4RRKREcwCVIL__cQsdZWZJbLUjnNp0qtx9_IxhQjwSnutwSUbpbzFOk7JAJtbnwelSKtTcD9Mob0z56CkZ3Gyt8FW3Uap26g8992gzKzF6sWR_NLW7A5rpeQ width=624px; //p h3 dir=ltrStrength: Versatile and efficient format support/h3 p dir=ltrIn fact, QGIS is an effective means of viewing and exploring spatial data of almost any type. If you have complex data, you might be interested to hear that the newest release of QGIS boasts very fast, multi-threaded, rendering of spatial data that may even make it faster than leading competitors. When I began creating the map shown above, I accidentally added all of the a href=http://www.naturalearthdata.com/downloads/10m-cultural-vectors/Natural Earth 1:10m Cultural Vectors/a in triplicate to the project, causing some minor heart-palpitations as I realized it was going to try to render close to 100 vector layers all at once. However, my fears were unfounded as it took only a few seconds for them to render once they were all added. In the realm of visualization, it does most of the other tasks that a GIS professional would expect as well, including support for custom symbol sets (in SVG format). Adding GeoJSON data is simple, just drag a geojson file onto the emLayers/em list. Here, we show a portion of James Fee’s a href=https://github.com/cageyjames/GeoJSON-BallparksGeoJSON repository of baseball stadiums/a:/p p dir=ltrimg alt=BaseballGeoJson.jpg height=189px; src=https://lh5.googleusercontent.com/qZZfU8j70DCZUjFfz3B5GmAPbRbKKwetT1kxx5gFDaCV27MrpSc9jt5oguiwpOtyY9ksBHhE38Fa13ubL0ojMsP1q1pQelQWSgxCwk3WBp673-oZY9FURPC96KGyBWIKkw width=624px; //p h3 dir=ltrMixed results: Raster visualization/h3 p dir=ltrThat said, raster visualization can yield unexpected results depending on what is desired. Some raster datasets have tables that associate bands with RGB values such that specific cell-types are rendered certain colors. Often, landcover datasets will have this kind of structure so that, for example, the raster is rendered with blue for water, green for grass, white for ice, and so on. Unfortunately, QGIS doesn’t yet support rendering based on associated table files for rasters. Another slight irritation is the continuing use of binary ARC/INFO GRID formats by some agencies who distribute raster data to the public. If you have one of these datasets, QGIS can open it but you must point to the w001001.adf file using the raster data import button./p h3 dir=ltrMixed results: On-the-fly reprojection/h3 p dir=ltrOne of the most important ways to make GIS user-friendly is to support on-the-fly projection. I still remember when projecting on-the-fly became a part of the software that I used to use. It was the end of 1999, and life was so much easier when multiple datasets from multiple agencies in multiple projections could all be jammed together into a single project, producing a map where all the data layers were in the correct projected space. This was because reprojecting not only added extra steps requiring you to reproject everything into a common coordinate system even if all you wanted to do was visualize the data, it also meant maintaining multiple copies of the same dataset, which contributed to folder clutter and using up of valuable disk space. QGIS supports reprojection on-the-fly but it is an option that must be set in the project properties dialog. Some glitches with projections still seem to occur from time to time. Zooming in, for example, sometimes causes the map to zoom to a different place than expected. However, this unexpected behavior is inconsistent, not a showstopper, and may be fixed soon./p p dir=ltrimg alt=Projection.png height=488px; src=https://lh3.googleusercontent.com/KA3bsnKz40Yz4sEmV9dHNSiUvwr80-iVRIi1QI_N6Ptq9gAU1pnIJ9XE0NxFHYdZPFZTifkVdL4sKBffMCV-k4enG7ptkdO15ZM32FB_rCgYEjEQIalBRGAg9mvxL6dDWg width=624px; //p h3 dir=ltrHidden gem: Context/h3 p dir=ltrThe other important aspect of visualizing data is having enough underlying context for the data. Country boundaries, city labels, roads, oceans, and other standard map data are crucial. Proprietary GIS software generally contains basemap layers that can easily be turned on and off to support visualization in this manner. QGIS also has this capability, in the form of the OpenLayers plugin, which serves up Google, OpenStreetMap, Bing, and Yahoo basemaps at the click of a button. The OpenLayers plugin is free and installs just like any other QGIS plugin—you search for it in the emPlugins/em menu, press “install,” and make your basemap choice in the Web menu./p p dir=ltrimg alt=OpenLayersPlugin.png height=161px; src=https://lh6.googleusercontent.com/itALtmP3Xcc6yLJbHdqAa5sQT9U5yKLO8-ggXmuoFgbKYoqg5KEvYRxYynAcNQuwUmZULkRnPj8YkY62UP3fsU8mIWe439ppE2LM0aaVe7vXW3N6UolL3t2lHB3zhGWOtw width=624px; //p h2 dir=ltrConclusion/h2 pWhile QGIS may need a small amount of improvement when it comes to raster visualization and on-the-fly projection, these aren’t hindrances to a typical visualization workflow and are only mentioned here out of respect for a fair and balanced assessment. By and large, my testing has convinced me that the robust visualization capabilities that QGIS offers provide more than enough impetus for many organizations to make the switch to QGIS. In later posts, I’ll discuss how QGIS performs with respect to analysis, editing, and cartography./p pThe post a href=http://boundlessgeo.com/2014/10/qgis-compared-p1-visualization/QGIS Compared: Visualization/a appeared first on a href=http://boundlessgeo.comBoundless/a./p
Categories: OSGeo Planet

Peter Batty: Reaction to Apple Maps announcement

OSGeo Planet - Mon, 2014-10-20 17:16
What they announced As predicted by the entire world, Apple announced their new maps application today as part of iOS 6. You can see the keynote presentation of the video here, and Apple's summary information about the Maps app here. Overall my predictions from last week were pretty spot on :) ... they announced that it would have turn by turn directions with voice guidance, real time img height=1 src=http://feeds.feedburner.com/~r/Geothought/~4/bGJqSE8RqPA width=1 /
Categories: OSGeo Planet

GeoTools Team: GeoTools 12.0 Released

OSGeo Planet - Mon, 2014-10-20 13:46
div dir=ltr style=text-align: left;div style=text-align: left;The GeoTools team is happy to announce the release of version 12.0./divdivullia href=http://sourceforge.net/projects/geotools/files/GeoTools%2012%20Releases/12.0/geotools-12.0-bin.zip/download style=color: #ca7900;geotools-12.0-bin.zip/a/lilia href=http://sourceforge.net/projects/geotools/files/GeoTools%2012%20Releases/12.0/geotools-12.0-doc.zip/download style=color: #ca7900;geotools-12.0-doc.zip/a/lilia href=http://sourceforge.net/projects/geotools/files/GeoTools%2012%20Releases/12.0/geotools-12.0-userguide.zip/download style=color: #ca7900;geotools-12.0-userguide.zip/a/lilia href=http://sourceforge.net/projects/geotools/files/GeoTools%2012%20Releases/12-RC1/geotools-12-RC1-project.zip/download style=color: #ca7900;geotools-12.0-project.zip/a/li/ul/divdivGeoTools now ba href=http://docs.geotools.org/latest/userguide/build/install/jdk.htmlrequires Java 7/a /band this is the first release tested with OpenJDK! Please ensure you are using JDK 1.7 or newer for GeoTools 12. Both Oracle Java 7 and OpenJDK 7 are supported, tested, release targets./divdivbr //divdivThere are a number of new features in this release:/divdivul style=text-align: left;li style=margin-left: 15px;span style=font-family: inherit;a href=http://docs.geotools.org/latest/userguide/library/jts/geometry.html#creating-circularstring style=color: #1155cc; target=_blankcircular strings/a are now supported in Oracle data stores, thanks to GeoSolutions.it for the work./span/lili style=margin-left: 15px;span style=font-family: inherit;The a href=http://docs.geotools.org/latest/userguide/tutorial/datastore/index.html style=color: #1155cc; target=_blankcontent datastore tutorial/a was updated by Jody and tested out by the FOSS4G workshop participants./span/lili style=margin-left: 15px;span style=font-family: inherit;GeoTools a href=http://docs.codehaus.org/display/GEOTOOLS/Remove+Assumption+of+org.geotools.filter.FilterFilter interfaces have been simplified/a (cleaning up technical debt from GeoTools 2.3)/span/lili style=margin-left: 15px;span style=font-family: inherit;The new bwfs-ng datastore/b is now available as a drop in replacement for the old WFS datastore, The new store provides much better support for axis orders with servers that don't know what they are doing. In order to make wfs-ng a drop-in replacement (and respond to the same connection parameters) you are blimited to only using one implementation/b of gt-wfs-ng or gt-wfs plugins in your application at a time./span/lili style=margin-left: 15px;span style=font-family: inherit;spanNewb advanced/bb raster reprojection, /b/spanspana lot of work has been put into improving the raster reprojection story for glitches around the date line and polar regions. To enable these options use the following rendering hints:/span/spanbr /span style=font-size: x-small;spanspan style=font-family: 'Courier New', Courier, monospace;rendererParams.put(StreamingRenderer.ADVANCED_PROJECTION_HANDLING_KEY, true);/span/spanbr /spanspan style=font-family: 'Courier New', Courier, monospace;rendererParams.put(StreamingRenderer.CONTINUOUS_MAP_WRAPPING, true);/span/span/span/li/ul/divdivThis release is made in conjunction with a href=http://blog.geoserver.org/2014/10/03/geoserver-2-6-0-released/ target=_blankGeoServer 2.6.0/a and is available from the OSGeo maven repository.br /h3About GeoTools 12/h3/divdivullia href=http://docs.geotools.org/stable/userguide/build/install/jdk.htmlJava 7 required/a (a href=http://docs.codehaus.org/display/GEOTOOLS/Upgrade+master+to+Java+7details/a)/lilia href=http://docs.geotools.org/latest/userguide/tutorial/datastore/index.htmlContentDataStore Tutorial/a/lilia href=http://geotoolsnews.blogspot.ca/2014/05/filter-cleanup-and-ecql-fixes.htmlFilter Cleanup and ECQL Fixes/a (a href=http://docs.codehaus.org/display/GEOTOOLS/Remove+Assumption+of+org.geotools.filter.Filterdetails/a)/lilia href=http://geotoolsnews.blogspot.com/2014/09/maven-snapshot-repository.htmlNew SNAPSHOT repository/a/lilia href=http://www.geo-solutions.it/blog/developers-corner-advanced-raster-projection-geoserver/Advanced Raster Projection/a (GeoSolutions)/li/ul/div/div
Categories: OSGeo Planet

Margherita Di Leo: Call For papers Geospatial devroom @FOSDEM

OSGeo Planet - Mon, 2014-10-20 12:21
div class=separator style=clear: both; text-align: center;a href=http://2.bp.blogspot.com/-QObO980NB70/VET7swJVS0I/AAAAAAAAAjM/pS0mCI9Emc4/s1600/1623644_10203203199988824_1910925809_n.jpg style=margin-left: 1em; margin-right: 1em;img border=0 height=240 src=http://2.bp.blogspot.com/-QObO980NB70/VET7swJVS0I/AAAAAAAAAjM/pS0mCI9Emc4/s1600/1623644_10203203199988824_1910925809_n.jpg width=320 //a/divdiv class= id=magicdomid2 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;br //divdiv class= id=magicdomid3 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;br //divdiv class= id=magicdomid4 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;span class=i style=cursor: auto; padding-bottom: 1px; padding-top: 1px;iPlease forward!/i/span/divdiv class= id=magicdomid5 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;br //divdiv class= id=magicdomid6 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;span class=b style=cursor: auto; padding-bottom: 1px; padding-top: 1px;ba href=https://fosdem.org/2015/FOSDEM/a/b/spanspan class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px; is a free open source event bringing together about 5000 developers in Brussels, Belgium. The goal is to provide open source software developers and communities a place to meet at. The next edition will take place the weekend 31/1 -gt; 1/2/2015. This year for the first time there will be a /spanspan class=b style=cursor: auto; padding-bottom: 1px; padding-top: 1px;bgeospatial devroom/b/spanspan class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px; on Sunday 1/2/2015!/span/divdiv class= id=magicdomid7 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;br //divdiv class= id=magicdomid8 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;span class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px;Geospatial technology becomes more and more part of mainstream IT. The idea is to bring together people with different backgrounds to better explain and understand the opportunities Geospatial can offer. This devroom will host topics explaining the state of the art of geospatial technology, and how it can be used amongst other projects./span/divdiv class= id=magicdomid9 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;br //divdiv class= id=magicdomid10 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;span class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px;The /spanspan class=b style=cursor: auto; padding-bottom: 1px; padding-top: 1px;bgeospatial devroom/b/spanspan class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px; is the place to talk about open, geo-related data and software and their ecosystem. This includes standards and tools, e.g. for spatial databases, and online mapping, geospatial services, used for collecting, storing, delivering, analysing, and visualizing puposes. Typical topics that will be covered are:/span/divdiv class= id=magicdomid11 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;br //divdiv class= id=magicdomid12 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;ul class=list-bullet1 style=margin: 0px 0px 0px 1.5em; padding: 0px;li style=margin: 0px; padding: 0px;span class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px;Web and desktop GIS applications/span/li/ul/divdiv class= id=magicdomid13 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;ul class=list-bullet1 style=margin: 0px 0px 0px 1.5em; padding: 0px;li style=margin: 0px; padding: 0px;span class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px;Interoperable geospatial web services and specifications/span/li/ul/divdiv class= id=magicdomid14 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;ul class=list-bullet1 style=margin: 0px 0px 0px 1.5em; padding: 0px;li style=margin: 0px; padding: 0px;span class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px;Collection of data using sensors/drones/satellites/span/li/ul/divdiv class= id=magicdomid15 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;ul class=list-bullet1 style=margin: 0px 0px 0px 1.5em; padding: 0px;li style=margin: 0px; padding: 0px;span class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px;Open hardware for geospatial applications/span/li/ul/divdiv class= id=magicdomid16 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;ul class=list-bullet1 style=margin: 0px 0px 0px 1.5em; padding: 0px;li style=margin: 0px; padding: 0px;span class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px;Geo-analytic algorithms/libraries/span/li/ul/divdiv class= id=magicdomid17 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;ul class=list-bullet1 style=margin: 0px 0px 0px 1.5em; padding: 0px;li style=margin: 0px; padding: 0px;span class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px;Geospatial extensions for classical databases (indexes, operations)/span/li/ul/divdiv class= id=magicdomid18 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;ul class=list-bullet1 style=margin: 0px 0px 0px 1.5em; padding: 0px;li style=margin: 0px; padding: 0px;span class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px;Dedicated databases/span/li/ul/divdiv class= id=magicdomid19 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;br //divdiv class= id=magicdomid20 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;span class=b style=cursor: auto; padding-bottom: 1px; padding-top: 1px;bHOW TO SUBMIT YOUR TALK PROPOSAL/b/span/divdiv class= id=magicdomid21 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;br //divdiv class= id=magicdomid22 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;span class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px;Are you thrilled to present your work to other open source developers? Would you like to run a discussion? Any other ideas? Please submit your proposal at the Pentabarf event planning tool at:/span/divdiv class= id=magicdomid23 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;br //divdiv class= id=magicdomid24 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;span class= url style=cursor: auto; padding-bottom: 1px; padding-top: 1px;a href=https://penta.fosdem.org/submission/FOSDEM15 style=cursor: pointer !important;https://penta.fosdem.org/submission/FOSDEM15/a/span/divdiv class= id=magicdomid25 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;br //divdiv class= id=magicdomid26 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;span class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px;When submitting your talk in Pentabarf, make sure to select the /spanspan class=b style=cursor: auto; padding-bottom: 1px; padding-top: 1px;b'Geospatial devroom' /b/spanspan class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px;as  'Track'. Please /spanspan class=b i u style=cursor: auto; padding-bottom: 1px; padding-top: 1px;biuspecify/u/i/b/spanspan class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px; in the notes if you prefer for your presentation a /spanspan class=b style=cursor: auto; padding-bottom: 1px; padding-top: 1px;bshort timeslot/b/spanspan class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px; (lightning talks ~10 minutes) or a /spanspan class=b style=cursor: auto; padding-bottom: 1px; padding-top: 1px;blong timeslot/b/spanspan class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px; (20 minutes presentation + discussion)./span/divdiv class= id=magicdomid27 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;br //divdiv class= id=magicdomid28 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;span class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px;The /spanspan class=b style=cursor: auto; padding-bottom: 1px; padding-top: 1px;bDEADLINE/b/spanspan class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px; for submissions is **/spanspan class=b style=cursor: auto; padding-bottom: 1px; padding-top: 1px;b1st December 2014/b/spanspan class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px;**/span/divdiv class= id=magicdomid29 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;br //divdiv class= id=magicdomid30 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;span class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px;Should you have any questions, please do not hesitate to get in touch with the organisers of the devroom at /spanspan class=i style=cursor: auto; padding-bottom: 1px; padding-top: 1px;ifosdem-geospatial@gisky.be/i/spanspan class= style=cursor: auto; padding-bottom: 1px; padding-top: 1px;!/span/divdiv class= id=magicdomid31 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;br //divdiv class= id=magicdomid32 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;span class=i style=cursor: auto; padding-bottom: 1px; padding-top: 1px;iJohan Van de Wauw/i/span/divdiv class= id=magicdomid33 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;span class=i style=cursor: auto; padding-bottom: 1px; padding-top: 1px;iMargherita Di Leo/i/span/divdiv class= id=magicdomid34 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;span class=i style=cursor: auto; padding-bottom: 1px; padding-top: 1px;iAstrid Emde/i/span/divdiv class= id=magicdomid35 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;span class=i style=cursor: auto; padding-bottom: 1px; padding-top: 1px;iAnne Ghisla/i/span/divdiv class= id=magicdomid36 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;span class=i style=cursor: auto; padding-bottom: 1px; padding-top: 1px;iJulien Fastré/i/span/divdiv class= id=magicdomid37 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;span class=i style=cursor: auto; padding-bottom: 1px; padding-top: 1px;iMartin Hammitzsch/i/span/divdiv class= id=magicdomid38 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;span class=i style=cursor: auto; padding-bottom: 1px; padding-top: 1px;iAndy Petrella /i/span/divdiv class= id=magicdomid39 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;span class=i style=cursor: auto; padding-bottom: 1px; padding-top: 1px;iDirk Frigne/i/span/divdiv class= id=magicdomid40 style=font-family: Arial, sans-serif; font-size: 13px; line-height: 17px; padding-right: 1px;span class=i style=cursor: auto; padding-bottom: 1px; padding-top: 1px;iGael Musquet/i/span/divdivspan class=i style=cursor: auto; padding-bottom: 1px; padding-top: 1px;ibr //i/span/div
Categories: OSGeo Planet

Jackie Ng: GovHack 2014 post-mortem

OSGeo Planet - Mon, 2014-10-20 10:51
bUPDATE 20 October 2014: a href=http://themapguyde.blogspot.com.au/2014/09/docker-izing-mapguide.htmlAfter a bungle on my Amazon EC2 instance/a, the demo URL on a href=http://hackerspace.govhack.org/content/crash-testour hackerspace project page/a is no longer active. I've resurrected this site on my demo server on Rackspace a href=http://bit.ly/1zhHtDmhere/a. Ignore the link on the hackerspace page until that page gets updated (if it will get updated, because I can't do it)/bbr /br /Earlier this month, I attended the a href=http://www.govhack.org/GovHack 2014/a hackathon, along with thousands of other fellow hackers all across the country. This was my first GovHack, but not my first hackathon. My previous hackathon was a href=http://www.rhok.org/RHoK/a and having no idea how GovHack would turn out, I entered the GovHack event with a RHoK-based mindset of how I would expect this hackathon to turn out.br /br /Bad idea.br /br /I learned very quickly there was a major difference between RHoK and GovHack. Going into RHoK, you have an idea about what solutions you will get to hack on over the weekend as problem owners are present to pitch their ideas to the audience of prospective hackers. With GovHack, you bneed an idea/b about what solution you want to hack on over the weekend, all they were going to provide was the various open data and APIs. What on earth are we going to build?br /br /div class=separator style=clear: both; text-align: center;a href=http://2.bp.blogspot.com/-kOB0X88Rpmg/U9dT52xNlYI/AAAAAAAAFzM/dFLLfuAzjvU/s1600/14449375768_d214622152_b.jpg style=margin-left: 1em; margin-right: 1em;img border=0 height=263 src=http://2.bp.blogspot.com/-kOB0X88Rpmg/U9dT52xNlYI/AAAAAAAAFzM/dFLLfuAzjvU/s1600/14449375768_d214622152_b.jpg width=400 //a/divbr /br /So after losing nearly half the weekend to a href=http://en.wikipedia.org/wiki/Analysis_paralysisanalysis paralysis/a, our team (named CreativeDrought, wonder why?) agreed with my suggestion of just building a a href=http://mapguide.osgeo.org/MapGuide/a-based mashup of various open datasets, most notably, the a href=http://www.data.vic.gov.au/raw_data/crash-stats-data-extract/7752VicRoads Crash Stats dataset/a and related transportation data. I obviously knew MapGuide inside-and-out and its capabilities to have a level of confidence that with the remaining weekend we should still be able to crank out some sort of workable solution. At the very least, we'd have a functional interactive map with some open data on it.br /br /And that's the story of our CrashTest solution in a nutshell. It's a a href=http://trac.osgeo.org/fusion/Fusion/a application, packed to the gills with out-of-the-box functionality from its rich array of widgets (including a href=http://themapguyde.blogspot.com.au/2013/01/mapguide-open-source-25-whats-new.htmlGoogle StreetView/a integration). The main objective of this solution was to allow users to view and analyse crash data, sliced and diced along various age, gender, vehicle type and various socio-economic parameters.br /br /div class=separator style=clear: both; text-align: center;a href=http://3.bp.blogspot.com/-LuUyEpSpDmY/U9Z5PAHTz2I/AAAAAAAAFys/Z_x6OOsJ2A8/s1600/Capture.PNG style=margin-left: 1em; margin-right: 1em;img border=0 height=481 src=http://3.bp.blogspot.com/-LuUyEpSpDmY/U9Z5PAHTz2I/AAAAAAAAFys/Z_x6OOsJ2A8/s1600/Capture.PNG width=640 //a/divbr /br /MapGuide's rich out-of-the-box capabilities, a href=http://trac.osgeo.org/mapguide/wiki/maestroMaestro's/a rapid authoring functionality and a href=http://www.gdal.org/GDAL/OGR's/a ubiquitous data support greatly helped us. I knew with this trio of tools, that we could assemble an application together in the remaining day and a bit left that we had to actually hack on something.br /br /Sadly, we only got as far as putting the data on the map for the most part. Our team spent more time frantically trying to massage various datasets via a href=http://www.gdal.org/ogr2ogr.htmlogr2ogr/a/Excel/GoogleDocs into something more usable than actually writing lines of code! Seriously VicRoads? Pseudo-AMG? Thank goodness a href=http://nyalldawson.net/2013/05/vicroads-and-pseudo-amg/I found the necessary proj4 string/a for this cryptic coordinate system so that we could re-project a fair chunk of the VicRoads spatial data into a coordinate system that better reflects the world we want to mash this data up with!br /br /Still, our solution should hopefully still open up a lot of what if scenarios. Imagine looking at a cluster of accident events, not being able to ascertain any real patterns or correlation and so you then fire up the StreetView widget and lo-and-behold, Google StreetView providing additional insights that a birds-eye view could not. Also imagine the various reporting and number crunching possibilities that are available by tapping into the MapGuide API. Imagine what other useful information you could derive if we had more time to put up additional useful datasets. We didn't get very far on any of the above ideas, so just a href=https://www.youtube.com/watch?v=XLgYAHHkPFsimagine/a such possibilities if you will :)br /br /a href=http://hackerspace.govhack.org/content/crash-testSo here's our entry page/a if you want to have a look. It includes a working demo URL to a a href=http://aws.amazon.com/ec2/Amazon EC2/a hosted instance of MapGuide. Getting acquainted with a href=http://aws.amazon.com/Amazon Web Services/a and putting MapGuide up there was an interesting exercise and much easier than I thought it would be, though I didn't have enough time to use the AWS credits I redeemed over the weekend to momentarily lift this demo site out of the free usage tier range performance-wise. Still, the site seems to perform respectably well on the free usage tier.br /br /Also on that page is a link to a short video where we talk about the hack. Please excuse the sloppy editing, it was obviously recorded in haste in a race against time. Like the solution and/or the possibilities it can offer? Be sure to vote on our entry page.br /br /Despite the initial setbacks, I was happy with what we produced given the severely depleted time constraints imposed on us. I think we got some nice feedback demo-ing CrashTest in person at the post-mortem event several days later, which is always good to hear. Good job team!br /br /div class=separator style=clear: both; text-align: center;a href=http://2.bp.blogspot.com/-UPlDtoEK3HM/U9dbCZeu0zI/AAAAAAAAFzo/lhYlMLGEHaU/s1600/14449221799_58ce613669_z.jpg style=margin-left: 1em; margin-right: 1em;img border=0 height=265 src=http://2.bp.blogspot.com/-UPlDtoEK3HM/U9dbCZeu0zI/AAAAAAAAFzo/lhYlMLGEHaU/s1600/14449221799_58ce613669_z.jpg width=400 //a/divdiv class=separator style=clear: both; text-align: center;br //divSo what do I think could be improved with GovHack?br /ulliHave a list of hack ideas (by participants who actually have some ideas) up bsome time before the hackathon starts/b. This would facilitate team building, letting participants with the skills, but without ideas easily gravitate towards people/teams with the ideas./liliThe mandatory video requirement for each hack entry just doesn't work in its current form. Asking teams to produce their own videos puts lots of unnecessary stress on teams, who not only have to come up with the content for their video, but have to also deal with the logistics of producing said video. I would strongly prefer that teams who can/want to make their own video do so, while other teams can just do a lt;= 3 minute presentation and have that be recorded by the GovHack organisers. Presentations also lets teams find out how other teams fared over the weekend. While everyone else in the a href=http://www.thoughtworks.com/ThoughtWorks/a Melbourne office was counting down to the end of the hackathon, I was still frantically trying to record my lines and trying not to flub them! I raided the office fridge for whatever free booze that remained just to calm myself down afterwards. I don't want to be in that situation ever again!/liliFinally, the data itself. So many spatial datasets as CSV files! So many datasets with no coordinates, but have addresses, horribly formatted addresses, adding even more hoops to geocode them. KML/KMZ may be a decent consumer format, but it is a terrible bdata source/b format. If ogr2ogr can't convert your dataset, and requires a manual intervention of a href=http://qgis.org/en/site/QGIS/a to fix it, then perhaps it's better to use a different spatial data format. Despite my loathing of its limitations, SHP files would've been heavily preferred for all of the above cases. a href=https://www.formstack.com/forms/?1784394-5uYfNFlmeBI've made my thoughts known on the GovHack DataRater/a about the quality of some of these datasets we had to deal with and got plenty of imaginary ponies in the process./li/ulDespite the above points, the event as a whole was a lot of fun. Thanks to the team (Jackie and Felicity) for your data wrangling and video production efforts.br /br /div class=separator style=clear: both; text-align: center;a href=http://1.bp.blogspot.com/-Az2bP7Wi7Ns/U9dVsg8eZDI/AAAAAAAAFzY/rJnd0TyjECw/s1600/14466411978_9a6eab0c3c_z.jpg style=margin-left: 1em; margin-right: 1em;img border=0 height=265 src=http://1.bp.blogspot.com/-Az2bP7Wi7Ns/U9dVsg8eZDI/AAAAAAAAFzY/rJnd0TyjECw/s1600/14466411978_9a6eab0c3c_z.jpg width=400 //a/divbr /Also thanks to Jordan Wilson-Otto and a href=https://www.flickr.com/photos/125335438@N04/sets/72157645234649750/his flickr photostream/a where I was able to get some of these photos for this particular post.br /br /Would I be interested in attending the 2015 edition of GovHack? Given I am now armed with 20/20 hindsight, yes I would!
Categories: OSGeo Planet

Petr Pridal: IIIF for images in culture heritage

OSGeo Planet - Mon, 2014-10-20 08:59
div dir=ltr style=text-align: left;div class=separator style=clear: both; text-align: center;a href=http://4.bp.blogspot.com/-ljvxHRaQ8ow/VEQTpcEVhvI/AAAAAAAAZAE/TATGcJNZT5U/s1600/Screen%2BShot%2B2014-10-19%2Bat%2B21.39.45.png style=clear: right; float: right; margin-bottom: 1em; margin-left: 1em;img border=0 src=http://4.bp.blogspot.com/-ljvxHRaQ8ow/VEQTpcEVhvI/AAAAAAAAZAE/TATGcJNZT5U/s1600/Screen%2BShot%2B2014-10-19%2Bat%2B21.39.45.png //a/divbr /Online scans of culture heritage documents, such as old maps, books, photographs, etc. are being published by the galleries, libraries, archives and museums.  Until now there was no official standardisation activity in this area. This is now changing with the International Image Interoperability Framework IIIF (a href=http://iiif.io/http://iiif.io//a), which enables easy access to large raster images across institutions.br /divbr //divdivbWe are happy to announce a new Open Source IIIF viewer, with several useful features: /bbr /br //divdivdiv- Rotation on client side  - pinch with fingers, Alt-Shift drag with the mouse/divdiv- Drawing tools - polygons, lines, markers - used to annotate parts of the pictures/divdiv- Color adjustments - saturation, lightness, etcbr /br /div style=text-align: center;br class=Apple-interchange-newline //divdiv class=separator style=clear: both; text-align: center;Demo available at: a href=http://klokantech.github.io/iiifviewer/ style=text-align: left;http://klokantech.github.io/iiifviewer//a/divbr /The viewer is pure Java Script, mobile optimised with almost native feeling for zoom and powered by OpenLayers V3 open-source project, where we are co-developers (see a href=http://blog.klokantech.com/2012/06/openlayers-v3-sprint-event.html target=_blankblog post/a).br /br /Feel free to try at: a href=http://klokantech.github.io/iiifviewer/http://klokantech.github.io/iiifviewer//abr /div style=text-align: center;br //div/div/divdivdiv/divSource codes are available on GitHub: a href=https://github.com/klokantech/iiifviewer/https://github.com/klokantech/iiifviewer//abr /br //divdivThis viewer is another important part of the mosaic of open source tools for publishing of large images and maps. Together with high-performance open-source JPEG2000 image server can be used to serve thousands of users in a very fast and efficient way.br /br /The mentioned server providing IIIF endpoint for the JPEG2000 images was developed and released by Klokan Technologies in cooperation with the National Library of Austria and their Google Books scanning project, the a href=http://blog.klokantech.com/2013/11/the-austrian-national-library-first.html target=_blankAustrian Books in 2013/a. The documentation is available at: a href=https://github.com/klokantech/iiifserver/https://github.com/klokantech/iiifserver//a/divdivbr //divdivServer software runs under Linux, Mac OS X as well as Windows. There is even an easy to use a href=https://github.com/klokantech/iiifserver/releases target=_blankinstaller/a.  It is powered by IIPImage server and our code has been recently refactored and merged back to the main IIPImage repository.br /br /Support and maintenance for installation of this open-source software can be provided by Klokan as well as the access to JPEG2000 Kakadu license./div/divimg height=1 src=http://feeds.feedburner.com/~r/klokan-blog-osgeo/~4/c52S9JO0r2w width=1 /
Categories: OSGeo Planet

Sean Gillies: Unix style spatial ETL with fio cat, collect, and load

OSGeo Planet - Sun, 2014-10-19 14:46
div class=section id=unix-style-spatial-etl-with-fio-cat-collect-and-load h1Unix style spatial ETL with fio cat, collect, and load/h1 pIn Fiona 1.4.0 I added a fio-cat command to the CLI which works much UNIX cat. It opens one or more vector datastets, concatenating their features and printing them to stdout as a sequence of GeoJSON features./p div class=highlight-consolediv class=highlightprespan class=gp$/span fio cat docs/data/test_uk.shp | head -n 2 span class=go{geometry: {coordinates: [...], type: Polygon}, id: 0, properties: {AREA: 244820.0, CAT: 232.0, CNTRY_NAME: United Kingdom, FIPS_CNTRY: UK, POP_CNTRY: 60270708.0}, type: Feature}/span span class=go{geometry: {coordinates: [...], type: Polygon}, id: 1, properties: {AREA: 244820.0, CAT: 232.0, CNTRY_NAME: United Kingdom, FIPS_CNTRY: UK, POP_CNTRY: 60270708.0}, type: Feature}/span /pre/div /div pI’ve replaced most of the coordinates with ellipses to save space in the code block above, something I’ll continue to do in examples below./p pI said that fio-cat concatenates features of multiple files and you can see this by using span class=docutils literalspan class=prewc/span span class=pre-l/span/span./p div class=highlight-consolediv class=highlightprespan class=gp$/span fio cat docs/data/test_uk.shp | wc -l span class=go 48/span span class=gp$/span fio cat docs/data/test_uk.shp docs/data/test_uk.shp | wc -l span class=go 96/span /pre/div /div pIf you look closely at the output, you’ll see that every GeoJSON feature is a standalone text and each is preceded by an ASCII RS (0x1E) control character. These allow you to cat pretty-printed GeoJSON (using the span class=docutils literalspan class=pre--indent/span/span option) containing newlines that can still be understood as a sequence of texts by other programs. Software like Python’s json module and Node’s underscore-cli will trip over unstripped RS, so you can disable the RS control characters and emit LF delimited sequences of GeoJSON (with no option to pretty print, of course) using span class=docutils literalspan class=pre--x-json-seq-no-rs/span/span./p pTo complement fio-cat I’ve written fio-load and fio-collect. They read features from a sequence (RS or LF delimited) and respectively write them to a formatted vector file (such as a Shapefile) or print them as a GeoJSON feature collection./p pHere’s an example of using fio-cat and load together. You should tell fio-load what coordinate reference system to use when writing the output file because that information isn’t carried in the GeoJSON features written by fio-cat./p div class=highlight-consolediv class=highlightprespan class=gp$/span fio cat docs/data/test_uk.shp span class=se\/span span class=go| fio load --driver Shapefile --dst_crs EPSG:4326 /tmp/test_uk.shp/span span class=gp$/span ls -l /tmp/test_uk.* span class=go-rw-r--r-- 1 seang wheel 10 Oct 5 10:09 /tmp/test_uk.cpg/span span class=go-rw-r--r-- 1 seang wheel 11377 Oct 5 10:09 /tmp/test_uk.dbf/span span class=go-rw-r--r-- 1 seang wheel 143 Oct 5 10:09 /tmp/test_uk.prj/span span class=go-rw-r--r-- 1 seang wheel 65156 Oct 5 10:09 /tmp/test_uk.shp/span span class=go-rw-r--r-- 1 seang wheel 484 Oct 5 10:09 /tmp/test_uk.shx/span /pre/div /div pAnd here’s one of fio-cat and collect./p div class=highlight-consolediv class=highlightprespan class=gp$/span fio cat docs/data/test_uk.shp | fio collect --indent 4 | head span class=go{/span span class=go features: [/span span class=go {/span span class=go geometry: {/span span class=go coordinates: [/span span class=go [/span span class=go [/span span class=go 0.899167,/span span class=go 51.357216/span span class=go ],/span span class=gp$/span fio cat docs/data/test_uk.shp | fio collect --indent 4 | tail span class=go CAT: 232.0,/span span class=go CNTRY_NAME: United Kingdom,/span span class=go FIPS_CNTRY: UK,/span span class=go POP_CNTRY: 60270708.0/span span class=go },/span span class=go type: Feature/span span class=go }/span span class=go ],/span span class=go type: FeatureCollection/span span class=go}/span /pre/div /div pDoes it look like I’ve simply reinvented ogr2ogr? The difference is that with fio-cat and fio-load there’s space in between for programs that process features. The programs could be written in any language. They might use Shapely, they might use Turf. The only requirement is that they read and write sequences of GeoJSON features using stdin and stdout. A nice property of programs like these is that you can sometimes parallelize them cheaply using a class=reference external href=http://www.gnu.org/software/parallel/parallel_tutorial.html#pipeGNU parallel/a./p pThe fio-buffer program (a class=reference external href=https://github.com/Toblerity/Fiona/blob/sequence-processing/fiona/fio/ops.pyunreleased/a) in the example below uses Shapely to calculate a 100 km buffer around features (in Web Mercator, I know!). Parallel doesn’t help in this example because the sequence of features from fio-cat is fairly small, but I want to show you how to tell parallel to watch for RS as a record separator./p div class=highlight-consolediv class=highlightprespan class=gp$/span fio cat docs/data/test_uk.shp --dst_crs EPSG:3857 span class=se\/span span class=gpgt;/span | parallel --pipe --recstart span class=s1'\x1E'/span fio buffer 1E+5 span class=se\/span span class=gpgt;/span | fio collect --src_crs EPSG:3857 span class=se\/span span class=gpgt;/span | geojsonio /pre/div /div pHere’s the result. Unix pipelines, still awesome at the age of a class=reference external href=http://en.wikipedia.org/wiki/Pipeline_(Unix)#History41/a!/p pThe other point of this post is that, with the a class=reference external href=https://datatracker.ietf.org/doc/draft-ietf-json-text-sequence/JSON Text Sequence/a draft apparently going to publication, sequences of GeoJSON features not collected into a GeoJSON feature collection are very close to being a real thing that developers should be supporting./p /div
Categories: OSGeo Planet

Jackie Ng: MapGuide tidbits: MapGuide Server daemon doesn't start after reboot

OSGeo Planet - Sun, 2014-10-19 13:33
This one will be short and sweet.br /br /If you have rebooted your Linux server, and for some reason you can no longer start the MapGuide Server as a daemon. You should check that the b/var/lock/mgserve/br directory exists and create it if it doesn't.br /br /The mgserver process will try to create and lock a file in this directory and will bail out if it can't. This directory is cleared when the Linux server is restarted (at least in my observations). None of the wrapper scripts (mgserver.sh or mgserverd.sh) actually check if the directory exists, so they blindly proceed as though this directory existed.br /br /a href=http://trac.osgeo.org/mapguide/ticket/309We'll patch the mgserverd.sh script/a to create this directory if it doesn't exist before running the mgserver daemon. In the meantime, you can edit the mgserverd.sh file in the MapGuide Linux installation yourself to create the b/var/lock/mgserver/b directory before running the mgserver process.
Categories: OSGeo Planet

Bjorn Sandvik: Creating 3D terrains with Cesium

OSGeo Planet - Sun, 2014-10-19 10:01
div dir=ltr style=text-align: left;div dir=ltr style=text-align: left;Previously, I’ve used three.js to create 3D terrain maps in the browser (a href=http://blog.thematicmapping.org/2013/10/terrain-building-with-threejs-part-1.html1/a, a href=http://blog.thematicmapping.org/2013/10/terrain-building-with-threejs.html2/a, a href=http://blog.thematicmapping.org/2013/10/textural-terrains-with-threejs.html3/a, a href=http://blog.thematicmapping.org/2013/10/terrain-visualization-with-threejs-and.html4/a, a href=http://blog.thematicmapping.org/2013/11/showing-gps-tracks-in-3d-with-threejs.html5/a, a href=http://blog.thematicmapping.org/2014/03/using-web-map-services-with-threejs.html6/a). It worked great for smaller areas, but a href=http://threejs.org/three.js/a doesn’t have built-in support for tiling and advanced a href=http://en.wikipedia.org/wiki/Level_of_detailLOD algorithms/a needed to render large terrains. So I decided to take a href=http://cesiumjs.org/Cesium/a for a spin.br /br /div class=separator style=clear: both; text-align: center;a href=http://4.bp.blogspot.com/-h2IzmAYKHU8/VDrSJWc9izI/AAAAAAAAOYc/ltcOaTjnaO8/s1600/terrain.png style=margin-left: 1em; margin-right: 1em;img border=0 height=400 src=http://4.bp.blogspot.com/-h2IzmAYKHU8/VDrSJWc9izI/AAAAAAAAOYc/ltcOaTjnaO8/s1600/terrain.png width=640 //a/divbr /a href=http://cesiumjs.org/Cesium/a is a JavaScript library for creating 3D globes and 2D maps in the browser without a plugin. Like three.js, it uses WebGL for hardware-accelerated graphics. Cesium allows you to add your own terrain data, and this blog post will show you how.br /br /blockquote class=twitter-tweet lang=enImpressed by the terrain rendering in a href=https://twitter.com/CesiumJS@CesiumJS/a - with a 10m elevation model for Norway! Farewell Google Earth. a href=http://t.co/RQKvfu2hBbpic.twitter.com/RQKvfu2hBb/abr /— Bjørn Sandvik (@thematicmapping) a href=https://twitter.com/thematicmapping/status/518405048658059264October 4, 2014/a/blockquote br /Compared to a href=http://www.gearthblog.com/blog/archives/2014/09/64-bit-chrome-drops-support-google-earth-plugin.htmlthe dying Google Earth plugin/a, it's quite complicated to get started with Cesium. The source code is a href=http://cesiumjs.org/refdoc.htmlwell documented/a and the a href=http://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=Hello%20World.htmlamp;label=Showcaseslive coding Sandcastle/a is great, but there is a a href=http://cesiumjs.org/tutorials.htmllack of tutorials/a and my development slows down when I have to a href=https://cesiumjs.org/Cesium/Build/Documentation/Camera.htmldeal with a lot of math/a. br /br /That said, I was able to create an app streaming my own terrain and imagery with a few lines of code. There is also a href=http://www.webglearth.org/WebGL Earth/a, a wrapper around Cesium giving you an API similar to well-known a href=http://leafletjs.com/Leaflet/a. I expect to see more functions or wrappers to make stuff like camera positioning easier in the future.br /br /bHow can you add your own terrain data to Cesium? /bbr /br /First, you need to check if you really need it. You have the option to stream a href=http://cesiumjs.org/data-and-assets/terrain/stk-world-terrain.htmlhigh-resolution terrain data/a directly from the servers at a href=http://www.agi.com/AGI/a. It's free to use on public sites under the a href=http://cesiumjs.org/data-and-assets/terrain/stk-world-terrain.html#TermsOfUseterms of use/a. If you want to host the terrain data on your own servers, AGI provides a commercial product - the a href=http://www.agi.com/products/stk/terrain-server/STK Terrain Server/a. Give it a try, if you have a budget!br /br /I was looking for an open source solution, and found out that Cesium supports two terrain formats:br /ol style=text-align: left;lia href=http://cesiumjs.org/data-and-assets/terrain/formats/heightmap-1.0.htmlheightmap/a/lilia href=http://cesiumjs.org/data-and-assets/terrain/formats/quantized-mesh-1.0.htmlquantized-mesh/a/li/olThe a href=http://cesiumjs.org/data-and-assets/terrain/formats/heightmap-1.0.htmltiled heightmap format/a is similar to a href=http://blog.thematicmapping.org/2013/10/terrain-building-with-threejs-part-1.htmlthe one I used for three.js/a. Each tile contains 65 x 65 height values, which overlap their neighbors at their edges to create a seamless terrain. Cesium translates the heightmap tiles into a uniform triangle mesh, a href=http://blog.thematicmapping.org/2013/10/terrain-building-with-threejs.htmlas I did in three.js/a. The downside of this format is the uniform grid, you use the same amount of data to represent both flat and hilly terrain.br /br /table align=center cellpadding=0 cellspacing=0 class=tr-caption-container style=margin-left: auto; margin-right: auto; text-align: center;tbodytrtd style=text-align: center;a href=http://3.bp.blogspot.com/-R_BgZsuAQog/VDrQT-JAYOI/AAAAAAAAOYI/XU9D_pooIkY/s1600/Screen%2BShot%2B2014-10-12%2Bat%2B21.01.39.png style=margin-left: auto; margin-right: auto;img border=0 height=400 src=http://3.bp.blogspot.com/-R_BgZsuAQog/VDrQT-JAYOI/AAAAAAAAOYI/XU9D_pooIkY/s1600/Screen%2BShot%2B2014-10-12%2Bat%2B21.01.39.png width=640 //a/td/trtrtd class=tr-caption style=text-align: center;The regular terrain mesh made from heightmap tiles. /td/tr/tbody/tablebr /The a href=http://cesiumjs.org/data-and-assets/terrain/formats/quantized-mesh-1.0.htmlquantized-mesh format/a follows the same tile structure as heightmap tiles, but each tile is better optimised for large-scale terrain rendering. Instead of creating a dense, uniform triangle mesh in the browser, an a href=http://en.wikipedia.org/wiki/Triangulated_irregular_networkirregular triangle mesh/a is pre-rendered for each tile. It's a better representation of the landscape, having less detail in flat areas while increasing the density in steep terrain. The mesh terrain is also more memory efficient and renders faster.br /br /table align=center cellpadding=0 cellspacing=0 class=tr-caption-container style=margin-left: auto; margin-right: auto; text-align: center;tbodytrtd style=text-align: center;a href=http://4.bp.blogspot.com/-6Z8JFcpKXKg/VDrQaid5PII/AAAAAAAAOYQ/m6-EaOQhfPY/s1600/Screen%2BShot%2B2014-10-12%2Bat%2B21.02.10.png style=margin-left: auto; margin-right: auto;img border=0 height=400 src=http://4.bp.blogspot.com/-6Z8JFcpKXKg/VDrQaid5PII/AAAAAAAAOYQ/m6-EaOQhfPY/s1600/Screen%2BShot%2B2014-10-12%2Bat%2B21.02.10.png width=640 //a/td/trtrtd class=tr-caption style=text-align: center;The irregular terrain mesh from quantized-mesh tiles. Larger triangles have less height variation. /td/tr/tbody/tablebr /Unfortunately, a href=http://stackoverflow.com/a/25965415I haven't found/a any open source tools to create tiles in the quantized-mesh format - please notify me if you know how to do it!br /br /You can generate heightmap tiles with a href=https://github.com/geo-data/cesium-terrain-builderCesium Terrain Builder/a, a great command-line utility by a href=https://twitter.com/HommeZwaagstraHomme Zwaagstra/a at the a href=http://www.geodata.soton.ac.uk/geodata/GeoData Institute/a, University of Southampton.br /br /I'm using a href=http://blog.thematicmapping.org/2013/10/terrain-building-with-threejs-part-1.htmlthe same elevation data/a as I did for my three.js maps, but this time in full 10 meter resolution. I'm just clipping the data to my focus area (a href=http://en.wikipedia.org/wiki/JotunheimenJotunheimen/a) using a href=http://spatialreference.org/ref/epsg/wgs-84/EPSG:4326/a, the World Geodetic System (WGS 84).br /br /span style=font-family: Courier New, Courier, monospace; font-size: x-small;gdalwarp -t_srs EPSG:4326 -te 7.2 60.9 9.0 61.7 -co compress=lzw -r bilinear jotunheimen.vrt jotunheimen.tif/spanbr /br /I went for the easy option, and a href=https://github.com/geo-data/cesium-terrain-builder#installationinstalled Cesium Terrain Builder/a using the a href=https://registry.hub.docker.com/u/homme/cesium-terrain-builder/Docker image/a. First I installed a href=http://penandpants.com/2014/03/09/docker-via-homebrew/Docker via Homebrew/a.  I was not able to mount my hard drive with this method, so I downloaded the elevation data from my public Dropbox folder:br /br /span style=font-family: Courier New, Courier, monospace; font-size: x-small;wget https://dl.dropboxusercontent.com/u/1234567/jotunheimen.tif/spanbr /br /I used the a href=https://github.com/geo-data/cesium-terrain-builder#ctb-tilectb-tile command/a to generate the tileset:br /br /span style=font-family: Courier New, Courier, monospace; font-size: x-small;ctb-tile --output-dir ./tiles jotunheimen.tif/spanbr /br /The command returned 65 000 tiles down to zoom level 15. I compressed the tiles into one file:br /br /span style=font-family: Courier New, Courier, monospace; font-size: x-small;tar cvzf tiles.tar.gz tiles/spanbr /br /and used the a href=http://xmodulo.com/access-dropbox-command-line-linux.htmlDropbox uploader/a to get the tiles back to my hard drive:br /br /span style=font-family: Courier New, Courier, monospace; font-size: x-small;./dropbox_uploader.sh upload tiles.tar.gz tiles.tar.gz/spanbr /br /So I got 65 000 terrain tiles on my server, how can I see the beauty in Cesium? It required some extra work:br /ol style=text-align: left;liFirst I had to add a a href=https://github.com/geo-data/cesium-terrain-builder/issues/1missing top level tile/a that Cesium was expecting. /liliCesium was also looking for a layer.json file which I had to create:br /br /span style=font-family: Courier New, Courier, monospace; font-size: x-small;{br /  tilejson: 2.1.0,br /  format: heightmap-1.0,br /  version: 1.0.0,br /  scheme: tms,br /  tiles: [{z}/{x}/{y}.terrain?v={version}]br /}br /br //span/liliLastly, I added a a href=http://en.wikipedia.org/wiki/.htaccess.htaccess/a file to support a href=http://en.wikipedia.org/wiki/Cross-origin_resource_sharingCORS/a and gzipped terrain tiles: /li/oldiv class=separator style=clear: both; text-align: center;a href=http://2.bp.blogspot.com/-ZM3MfZPwJUk/VDrZDO_T8BI/AAAAAAAAOY8/HL65mdc5GE0/s1600/Screen%2BShot%2B2014-10-12%2Bat%2B21.39.17.png style=margin-left: 1em; margin-right: 1em;img border=0 src=http://2.bp.blogspot.com/-ZM3MfZPwJUk/VDrZDO_T8BI/AAAAAAAAOY8/HL65mdc5GE0/s1600/Screen%2BShot%2B2014-10-12%2Bat%2B21.39.17.png //a/divdivbr //div/divThen I was ready to go!br /divbr //divdivtable align=center cellpadding=0 cellspacing=0 class=tr-caption-container style=margin-left: auto; margin-right: auto; text-align: center;tbodytrtd style=text-align: center;a href=http://1.bp.blogspot.com/-yHG-7s1qdLc/VDrVD0zXxfI/AAAAAAAAOYo/wxKMTX5sYZs/s1600/Screen%2BShot%2B2014-10-12%2Bat%2B21.22.20.png style=margin-left: auto; margin-right: auto;img border=0 height=400 src=http://1.bp.blogspot.com/-yHG-7s1qdLc/VDrVD0zXxfI/AAAAAAAAOYo/wxKMTX5sYZs/s1600/Screen%2BShot%2B2014-10-12%2Bat%2B21.22.20.png width=640 //a/td/trtrtd class=tr-caption style=text-align: center;Beautiful terrain rendered with a href=http://data.kartverket.no/download/content/geodataprodukter?korttype=3595amp;aktualitet=Allamp;datastruktur=Allamp;dataskema=All10 m elevation data/a from the a href=http://statkart.no/en/Norwegian Mapping Authority/a. Those who know Jotunheimen, will notice Skogadalsbøen by the river and Stølsnostind and Falketind surrounded by glaciers in the background./td/tr/tbody/tablebr //divtable align=center cellpadding=0 cellspacing=0 class=tr-caption-container style=margin-left: auto; margin-right: auto; text-align: center;tbodytrtd style=text-align: center;a href=http://1.bp.blogspot.com/-FnYeeKKS9WQ/VDrVnjOX1UI/AAAAAAAAOYw/ufIkMS_c7BY/s1600/Screen%2BShot%2B2014-10-12%2Bat%2B21.24.54.png style=margin-left: auto; margin-right: auto;img border=0 height=400 src=http://1.bp.blogspot.com/-FnYeeKKS9WQ/VDrVnjOX1UI/AAAAAAAAOYw/ufIkMS_c7BY/s1600/Screen%2BShot%2B2014-10-12%2Bat%2B21.24.54.png width=640 //a/td/trtrtd class=tr-caption style=text-align: center;The terrain is a bit blocky (see the mount Falketind to the left), but a href=https://github.com/geo-data/cesium-terrain-builder/issues/4I'm not sure if this is happening in Cesium Terrain Builder or Cesium itself/a. The quantized-mesh tiles from AGI gives a better result. /td/tr/tbody/tablebr /I'm not able so show an interactive version, as I'm using detailed aerial imagery from a href=http://www.norgeibilder.no/Norge i bilder/a, which are not publicly available./divimg height=1 src=http://feeds.feedburner.com/~r/thematicmapping/~4/FSAtSyBl28w width=1 /
Categories: OSGeo Planet

Gary Sherman: PyQGIS Resources

OSGeo Planet - Sat, 2014-10-18 18:18
pHere is a short list of resources available when writing Python code in QGIS. If you know of others, please leave a comment./p h2Blogs/Websites/h2 pemIn alphabetical order:/em/p ul lia href=http://gis.stackexchange.com/questions/tagged/pyqgisGIS StackExchange/a/li lia href=http://kartoza.com/category/qgisKartoza/a/li lia href=http://linfiniti.comLinfiniti/a/li lia href=http://www.lutraconsulting.co.uk/blog/categories/pyqgis/Lutra Consulting/a/li lia href=http://nathanw.netNathan Woodrow/a/li lia href=http://nyalldawson.netNyall Dawson/a/li lia href=https://twitter.com/hashtag/pyqgisTwitter #pyqgis/a/li /ul h2Documentation/h2 ul liemChoose the version to match your QGIS install/em ul lia href=http://qgis.org/en/docs/index.htmlPyQGIS Cookbook/a/li lia href=http://qgis.org/en/docs/index.htmlQGIS API/a/li /ul /li /ul h2Example Code/h2 ul liExisting plugins can be a great learning tool/li liCode Snippets in the PyQGIS Cookbook/li /ul h2Plugins/Tools/h2 ul lia href=http://plugins.qgis.org/plugins/scriptrunner/Script Runner/a: Run scripts to automate QGIS tasks/li lia href=http://plugins.qgis.org/plugins/pluginbuilder/Plugin Builder/a: Create a starter plugin that you can customize to complete your own plugin/li lia href=http://g-sherman.github.io/plugin_build_toolpb_tool/a: Tool to compile and deploy your plugins/li /ul h2Books/h2 ul lia href=http://locatepress.com/ppgPyQGIS Programmers Guide/a/li lia href=http://locatepress.com/static/excerpts/geospatial_desktop_gis_scripting.pdfGeospatial Desktop: GIS Scripting (PDF)/a/li /ul
Categories: OSGeo Planet

Antonio Santiago: 7 reasons to use Yeoman’s angular-fullstack generator

OSGeo Planet - Sat, 2014-10-18 10:17
pFor my next project and, after looking for candidates and reading some hundreds of lines of documentation, I finally choose to work with the so called MEAN stack: mongodb, express, angular and node./p pAs with any other technology ecosystem, the great number of frameworks, libraries and tools can make our choice a challenge, and JavaScript is not an exception. But for JavaScript projects we have lot of help and I decide to use the awesome a href=http://yeoman.io/Yeoman/a tool. Yeoman combines the power of a href=http://gruntjs.com/grunt/a, a href=http://bower.io/bower/a, a href=https://www.npmjs.org/npm/a and adds its own salt: the generators./p blockquotepYeoman generators are tasks responsible to build the initial project scaffolding./p/blockquote pYeoman offers an extensive set of official generators oriented to create: webapps, backbone app, chrome extension, etc but we can also found a myriad of non oficial generators (yes, because anyone can create a new generator to satisfy his/her needs)./p pWithin all the generators I chose a href=https://github.com/DaftMonk/generator-angular-fullstackangular-fullstack/a to create my MEAN project structure and next are my reasons:/p h31. Easy to install/h3 pYou require to have a href=http://nodejs.org/node/a and a href=https://www.npmjs.org/npm/a installed on your system. Once you have them installa href=http://yeoman.io/Yeoman/a and the a href=https://github.com/DaftMonk/generator-angular-fullstackangular-fullstack/a is as easy as:/ppre class=crayon-plain-tag$ npm install -g yo $ npm install -g generator-angular-fullstack/prepOnce installed the generator you simply need to create a new folder and initialise your project:/ppre class=crayon-plain-tag$ mkdir my-new-project amp;amp; cd $_ $ yo angular-fullstack [app-name]/prep/p h32. Creates both client and server scaffoldings/h3 pThe generator generates the emfull stack/em of your project, both the client and server code. Your project will start well organised and prepared to create an awesome RIA application./p h33. Introduces good practices in the generated code/h3 pBecause the generated is made by experienced developers, they applies good practices in code organisation and style programming (like the environment configuration on the server side using node)./p pFor me, this is one of the most important reasons to use this generator. Anybody knows starting with a new technology is always hard, but it is nothing when you start with four new technologies img alt=:) class=wp-smiley src=http://acuriousanimal.com/blog/wp-includes/images/smilies/icon_smile.gif //p h34. Server side API prepared to use authentication/h3 pFollowing best practices the code is prepared so you can easily add security to you API via a node middleware so each request requires authentication of the client side./p h35. Support HTML or jade templating on client side/h3 pYou can use any template engine for client side but by default the generator works with HTML and Jade. I don’t really like Jade too much so I always try to use EJS or similar (emWarning this last sentence is the author’s opinion/em)./p h36. Support for different CSS preprocessors/h3 pFor different opinions there are different alternatives. This way a href=https://github.com/DaftMonk/generator-angular-fullstackangular-fullstack/a has support for plain CSS, a href=http://learnboost.github.io/stylus/Stylus/a, a href=http://sass-lang.com/Sass/a or a href=http://lesscss.org/LESS/a pre-processors. Choose your preferred./p h37. Commands to scaffold anything/h3 pWith thea href=https://github.com/DaftMonk/generator-angular-fullstackangular-fullstack/a you can create new end points for the server side or client side components (like routes, controllers, services, filters, directives, …) with a sentences. So, next command:/ppre class=crayon-plain-tagyo angular-fullstack:endpoint message [?] What will the url of your endpoint to be? /api/messages/prepwill produce:/ppre class=crayon-plain-tagserver/api/message/index.js server/api/message/message.spec.js server/api/message/message.controller.js server/api/message/message.model.js (optional) server/api/message/message.socket.js (optional)/prep/p h2 Conclusion/h2 pIn my opnion, a href=https://github.com/DaftMonk/generator-angular-fullstackangular-fullstack/a is a really powerful tool that simplifies our day to day work./p pAs always it is not the panacea, it is simply a generic tool to automatize many common tasks. Because of this we can found situations it lacks some feature./p
Categories: OSGeo Planet

gisky: Call For papers Geospatial devroom @FOSDEM

OSGeo Planet - Fri, 2014-10-17 07:36
iPlease forward!/ibr /br /a href=http://www.fosdem.org/bFOSDEM/b/a is a free open source event bringing together about 5000 developers in Brussels, Belgium. The goal is to provide open source software developers and communities a place to meet at. The next edition will take place the weekend 31/1 -gt; 1/2/2015. This year for the first time there will be a bgeospatial devroom/b on Sunday 1/2/2015!br /br /Geospatial technology becomes more and more part of mainstream IT. The idea is to bring together people with different backgrounds to better explain and understand the opportunities Geospatial can offer. This devroom will host topics explaining the state of the art of geospatial technology, and how it can be used amongst other projects.br /br /The bgeospatial devroom/b is the place to talk about open, geo-related data and software and their ecosystem. This includes standards and tools, e.g. for spatial databases, and online mapping, geospatial services, used for collecting, storing, delivering, analysing, and visualizing puposes. Typical topics that will be covered are:br /br /ulliWeb and desktop GIS applications/liliInteroperable geospatial web services and specifications/liliCollection of data using sensors/drones/satellites/liliOpen hardware for geospatial applications/liliGeo-analytic algorithms/libraries/liliGeospatial extensions for classical databases (indexes, operations)/liliDedicated databases/li/ulbHOW TO SUBMIT YOUR TALK PROPOSAL/bbr /br /Are you thrilled to present your work to other open source developers? Would you like to run a discussion? Any other ideas? Please submit your proposal at the Pentabarf event planning tool at:br /br /a href=https://penta.fosdem.org/submission/FOSDEM15https://penta.fosdem.org/submission/FOSDEM15/abr /br /When submitting your talk in Pentabarf, make sure to select the b'Geospatial devroom' /bas  'Track'. Please biuspecify/u/i/b in the notes if you prefer for your presentation a bshort timeslot/b (lightning talks ~10 minutes) or a blong timeslot/b (20 minutes presentation + discussion).br /br /The bDEADLINE/b for submissions is **b1st December 2014/b**br /br /Should you have any questions, please do not hesitate to get in touch with the organisers of the devroom at ifosdem-geospatial@gisky.be/i!br /br /iJohan Van de Wauw/ibr /iMargherita Di Leo/ibr /iAstrid Emde/ibr /iAnne Ghisla/ibr /iJulien Fastré/ibr /iMartin Hammitzsch/ibr /iAndy Petrella /ibr /iDirk Frigne/ibr /iGael Musquet/ibr /br /br /A final note for everyone still hesitating to come: have a look at the accepted a href=https://fosdem.org/2015/news/2014-09-30-accepted-devrooms/devrooms/a and other tracks for this year, I'm sure you will find other interesting topics that will make your trip to FOSDEM worthwile!br /br /br /
Categories: OSGeo Planet

Just van den Broecke: Into the Weather – Part 1 – Exploring weewx

OSGeo Planet - Fri, 2014-10-17 01:21
div class=wp-caption alignright id=attachment_420 style=width: 310px;a href=http://lib.heron-mc.org/heron/latest/examples/simpletimeslider/img alt=wms-time-heron-knmi class=wp-image-420 size-medium height=181 src=http://justobjects.nl/wp-content/uploads/2014/10/wms-time-heron-knmi-300x181.png width=300 //ap class=wp-caption-textWMS Time Example with GeoServer in Heron/p/div pTagging this post as “Part 1″  is ambitious. Beware: there is hardly any “geo” for now. In the coming time I hope to share some technical experiences with weather stations, weather software and ultimately exposing weather data via some open geospatial standards like a href=http://mapserver.org/ogc/wms_time.html target=_blankOGC WMS(-Time)/a as in a href=http://lib.heron-mc.org/heron/latest/examples/simpletimeslider/example image right/a, WFS and in particular a href=http://en.wikipedia.org/wiki/Sensor_Observation_Service target=_blankSOS (Sensor Observation Service)/a. The context is an exciting project with a href=http://www.geonovum.nl/ target=_blankGeonovum/a in the Netherlands: to transform and expose (via web services and reporting) open/raw Air Quality data from a href=http://www.rivm.nl/ target=_blankRIVM /a, the  Dutch span style=color: #000000;National Institute for Public Health and the Environment. The main link to this project is a href=http://sensors.geonovum.nl target=_blanksensors.geonovum.nl/a. All software is developed as FOSS a href=https://github.com/Geonovum/sospilot target=_blankvia a GitHub project/a. There are already some results there. I may post on these later./span/p pa href=http://justobjects.nl/wp-content/uploads/2014/10/sospilot-screenshot.pngimg alt=sospilot-screenshot class=alignleft wp-image-418 size-medium height=206 src=http://justobjects.nl/wp-content/uploads/2014/10/sospilot-screenshot-300x206.png width=300 //a/p pWithin a sub-project the aim is to expose measurements from a physical weather station via standardized OGC web services like WMS, WFS and SOS.  As a first step I dived into the world of weather hardware and software, in particular their vivid open source/open data communities. A whole new world expanded to me. To no surprise: Location and The Weather are part of everyday life since the beginnings of humanity. a href=http://openweathermap.org/ target=_blankOpenWeatherMap/a and a href=http://www.wunderground.com/ target=_blankWeather Underground/a are just two of the many communities around open weather data. In addition there’s an abundance of FOSS weather software. Personal weather stations are measuring not just temperature but also pressure, humidity, rainfall, wind, up to UV radiation and are built a href=http://www.zipfelmaus.com/blog/arduino-weather-shield-schematics-layout-code-everything-you-need/homebrew/a or a href=http://www.weathershop.co.uk/bought for as cheap as $50,-. /a/p div class=wp-caption alignnone id=attachment_417 style=width: 463px;a href=http://justobjects.nl/wp-content/uploads/2014/10/weather-hacking.pngimg alt=Weather Hacking class=wp-image-417 height=154 src=http://justobjects.nl/wp-content/uploads/2014/10/weather-hacking-300x102.png width=453 //ap class=wp-caption-textWeather Hacking/p/div pBeing a noob in weather soft/hardware technology I had to start somewhere and then go step-by-step. The overall “architecture” can be even depicted in text:/p preweather station --gt; soft/middleware --gt; web services + reporting/pre div class=wp-caption alignright id=attachment_416 style=width: 310px;a href=http://www.davisnet.com/weather/products/vantage-pro-professional-weather-stations.aspimg alt=Davis Vantage Pro2 Weather Station class=wp-image-416 size-medium height=188 src=http://justobjects.nl/wp-content/uploads/2014/10/davis-vantage-pro2-300x188.jpg width=300 //ap class=wp-caption-textDavis Vantage Pro2 Weather Station/p/div pBeing more of a software person, I decided to start with the weather soft/middleware. Also, since Geonovum already owns a a href=http://www.davisnet.com/weather/products/vantage-pro-professional-weather-stations.asp target=_blankDavis Vantage Pro2 Weather Station/a and the a href=http://www.raspberrypi.org/products/model-b-plus/ target=_blankRaspberry Pi B+ /aI plan to use is still underway…/p pFrom what I gathered, a href=http://www.weewx.com target=_blankweewx/a is the most widely used engine/framework within the weather FOSS community. Also the fact that it is written in Python with a very extensible architecture immediately settled my choice. Explaining weewx is a subject by itself but a href=http://www.weewx.com/docs.html target=_blankvery well documented/a. I’ll try in a few sentences what weewx does:/p ul licollect current and archive weather station measurement data (drivers)/li listoring weather data (archive and statistics) in a database (a href=http://www.sqlite.org/ target=_blankSQLite/a or MySQL)/li lisubmitting data to weather community services like a href=http://www.wunderground.com/ target=_blankWeather Underground/a/li licreating formatted/templated reports for your local or remote website/li /ul pAny of these functionalities is highly extensible through a configurable plugin architecture. The drivers support most common weather stations. Installing is a breeze, either in a local directory or via Linux package managers. Also note that weather data  have quite some different local units (Fahrenheit/Celsius, knots/meters etc). weewx will all take care of this./p pSo, not yet having access to a weather station, what could I do? One of the weather station drivers is the a href=http://www.weewx.com/docs/usersguide.htm#[Simulator] target=_blankSimulator/a which intelligently generates weather data for testing./p pa href=http://openweathermap.org/mapsimg alt=openweathermap class=alignright wp-image-419 size-medium height=196 src=http://justobjects.nl/wp-content/uploads/2014/10/openweathermap-300x196.png width=300 //aTrying to have some real-world data I set out on what appeared to be a two-hour hack: create a weather station driver that obtains its data from an open weather API. There are many off course. I choose the a href=http://openweathermap.org/api target=_blankOpenWeatherMap API/a to get data in the area of our cabin in the woods near the place of a href=http://en.wikipedia.org/wiki/Otterlo target=_blankOtterlo in the Netherlands./a Writing this hard-coded driver took just a few line of Python. The a href=https://github.com/Geonovum/sospilot/blob/master/src/weewx/test/weatherapidriver.py target=_blanksource code can be found here/a.  To not overask the API, I’ve set the time interval to 2 minutes within the a href=https://github.com/Geonovum/sospilot/blob/master/src/weewx/test/weewx.conf target=_blankweewx configuration file/a. Also it would not be fair to report these values to any of the weather communities. If the weewx community is interested I can donate this software, with some generalization (e.g. URLvia config)./p pBut all in all my first driver is still running fine in weewx. The main challenge was converting all the values between different metric systems. weewx allows and even encourages you to store all data in US metrics. All the reporting and conversion utilities will always allow you to show your local metric units./p pa href=http://justobjects.nl/wp-content/uploads/2014/10/otterlo-weewx-report.pngimg alt=otterlo-weewx-report class=alignleft wp-image-414 size-medium height=275 src=http://justobjects.nl/wp-content/uploads/2014/10/otterlo-weewx-report-300x275.png width=300 //aAs a Linux daemon now runs fine in our test system. It is time to show some results. weewx reporting is basically a website generated via a href=http://www.cheetahtemplate.org/ target=_blankCheetah templates/a. The default template is basic white on black. I found a nice template called a href=http://davies-barnard.co.uk/2014/01/weewx-byteweather-template target=_blankByteweather/a. You can find my continuous weather report  here at a href=http://sensors.geonovum.nl/weather/ target=_blanksensors.geonovum.nl/weather/a. Measurements are now building up thanks to the weewx archive database. Values are mostly matching Dutch weather station data. Expect for the rainfall…Surely we have lots of rain but not that much…/p pNext posting I hope to tell more about deploying the Raspberry Pi and connecting to the Geonovum Davis Weather station. Then there will be also more “geo” in the post, I promise!/p p /p
Categories: OSGeo Planet

Boundless Blog: Partner Profiles: Agrisoft

OSGeo Planet - Thu, 2014-10-16 14:29
p dir=ltrema href=http://boundlessgeo.com/about/partners/Boundless partners/a are an important part of spreading the depth and breadth of our software around the world. In this ongoing series, we will be featuring some of our partners and the ways they are expanding the reach of our Spatial IT solutions./em/p p dir=ltra href=http://boundlessgeo.com/blog/feed/www.agrisoft.co.idimg alt=Agrisoft class=alignright size-full wp-image-7232 height=100 src=http://boundlessgeo.com/wp-content/uploads/2013/09/agrisoft_225.png width=200 //aEstablished in 2002, a href=http://www.agrisoft.co.id/Agrisoft/a is an Indonesian consulting firm specializing in integrated spatial solutions using open source software. Agrisoft offers consultancy, integration and training services, product development, and knowledge of clients’ business processes./p p dir=ltrWith a population of 250 million people and a booming business community, Indonesia has proved itself to be a growing market for Agrisoft and Boundless. While the market for spatial solutions is still young, Agrisoft encourages the use of spatial software for business by promoting its value and establishing it as a viable solution. OpenGeo Suite provides a complete set of tools for Agrisoft’s clients to build spatially-enabled applications and GeoServer, OpenLayers, and PostGIS have become the preferred solutions among Agrisoft’s clients./p p dir=ltr style=text-align: center;a href=http://sih3.bmkg.go.id/geospasialimg alt=SIH3: Sistem Informasi Hidrologi Hidrometeorologi amp; Hidrogeologi class=aligncenter wp-image-10822 height=537 src=http://boundlessgeo.com/wp-content/uploads/2014/10/SIH3___Sistem_Informasi_Hidrologi_Hidrometeorologi___Hidrogeologi.png width=525 //a/p p dir=ltrTools and expertise from Boundless have enabled Agrisoft to expand and improve on some of their largest projects and they count among their customers the a href=http://www.big.go.id/Indonesian Geospatial Information Agency/a and the a href=http://www.deptan.go.id/Republic of Indonesia Ministry of Agriculture/a. In a current project for the a href=http://www.bmkg.go.id/Republic of Indonesia Agency for Meteorology, Climatology and Geophysics/a, Agrisoft is working on the a href=http://sih3.bmkg.go.id/geospasialSIH3 Portal/a, an information system for hydrology, hydrometeorology and hydrogeology. This project makes use of applications built on OpenGeo Suite to browse and explore maps showing different information and Agrisoft is redesigning the graphical user interface using OpenLayers 3./p pAgrisoft continually encourages the use of open source spatial software and looks to Boundless for industry best practices and guidance for their current and prospective customers./p pemIf you’d like your company to be considered for our international network of partners, please a href=http://boundlessgeo.com/about/contact-us/partners/contact us/a!/em/p pThe post a href=http://boundlessgeo.com/2014/10/partner-agrisoft/Partner Profiles: Agrisoft/a appeared first on a href=http://boundlessgeo.comBoundless/a./p
Categories: OSGeo Planet

gvSIG Team: “Introduction to gvSIG 2.1″ workshop in English

OSGeo Planet - Thu, 2014-10-16 13:49
pA workshop about the new gvSIG 2.1 version was given in April at the 1st Mexican gvSIG Conference, and now it has been translated to English thanks to Elena Sánchez andbr / Francisco Solís./p pThis workshop shows the main gvSIG functionalities, and it includes the newbr / features that have been included in gvSIG 2.1./p pYou can download the workshop in pdf format, and the cartography, from [1]./p pWe hope it’s useful for you!/p p[1] a href=http://www.gvsig.org/plone/docusr/learning/gvsig-courses/gvsig_des_2.1_u_en/pub/documentation/ target=_blankhttp://www.gvsig.org/plone/docusr/learning/gvsig-courses/gvsig_des_2.1_u_en/pub/documentation//a/pbr /Filed under: a href=http://blog.gvsig.org/category/gvsig-development/community/community/a, a href=http://blog.gvsig.org/category/languages/english/english/a, a href=http://blog.gvsig.org/category/gvsig-development/events-gvsig-development/events/a, a href=http://blog.gvsig.org/category/products/gvsig-desktop/gvSIG Desktop/a, a href=http://blog.gvsig.org/category/gvsig-development/training/training/a img alt= border=0 height=1 src=http://pixel.wp.com/b.gif?host=blog.gvsig.orgamp;blog=8230583amp;post=2546amp;subd=gvsigamp;ref=amp;feed=1 width=1 /
Categories: OSGeo Planet

Even Rouault: Warping, overviews and... warped overviews

OSGeo Planet - Thu, 2014-10-16 13:19
div style=text-align: justify;The development version of GDAL has lately received a few long awaited improvements in the area of warping and overview computation./divbr /div style=text-align: justify;For those non familiar with GDAL, warping is mainly used for reprojecting datasets from one source coordinate system to a target one, or to create a north-up image from a rotated image or an image that has ground control points. Overviews in GDAL are also called pyramids in other GIS software and are sub-sampled (i.e. with coarser resolution) versions of full-resolution datasets, that are mainly used for fast display in zooming out operations. Depending on the utility (warper or overview computation), different resampling methods are available : bilinear, cubic, cubicspline, lanczos, average, etc../divbr /h4Cubic resampling/h4br /div style=text-align: justify;Up to now, the a href=http://en.wikipedia.org/wiki/Bicubic_interpolation#Bicubic_convolution_algorithmbi-cubic resampling/a algorithm used when computing warped images and overviews was a 4x4 a href=http://en.wikipedia.org/wiki/Kernel_%28image_processing%29convolution kernel/a. This was appropriate for warping, when the dimensions of the target dataset are of the same order as the source dataset. However if the target dataset was downsized (which is the nominal case of overview computation), the result was sub-optimal, not to say plainly bad, because not enough source pixels were captured, leading to a result close to what nearest neighbour would give. Now, the convolution kernel dynamically uses the subsampling ratio to take into account all source pixels that have an influence on each target pixel, so e.g 8x8 pixels if subsampling by a factor of 2./divOf course, this involves more computation and could be slower. Fortunately, for 64 bit builds, Intel a href=http://en.wikipedia.org/wiki/SSE2SSE2/a intrinsics are at the rescue to compute convolutions in a very efficient way.br /br /div style=text-align: justify;For example in GDAL 2.0dev, computing 5 overview levels on a 10474x4951 RGB raster with cubic resampling takes 2.4 seconds on a Core i5-750, to be compared with 3.8s with GDAL 1.11/divbr /span$ a href=http://gdal.org/gdaladdo.htmlgdaladdo/a -ro -r cubic world_4326.tif 2 4 8 16 32 /spanbr /br /div style=text-align: justify;To compare both results, we can select the 5th overview level with the fresh new open option OVERVIEW_LEVEL=4 (index are 0 based)/divbr /span$ a href=http://gdal.org/gdal_translate.htmlgdal_translate/a /spanspanspanworld_4326.tif/span out.tif -oo OVERVIEW_LEVEL=4/spanbr /br /table align=center cellpadding=0 cellspacing=0 class=tr-caption-container style=margin-left: auto; margin-right: auto; text-align: center;tbodytrtd style=text-align: center;a href=http://4.bp.blogspot.com/-ek8lnSADyP0/VD-4zzdTNmI/AAAAAAAAADk/sZJl8Q0Rnto/s1600/out_gdal20.png style=margin-left: auto; margin-right: auto;img alt= border=0 src=http://4.bp.blogspot.com/-ek8lnSADyP0/VD-4zzdTNmI/AAAAAAAAADk/sZJl8Q0Rnto/s1600/out_gdal20.png title=5th overview produced by GDAL 2.0dev //a/td/trtrtd class=tr-caption style=text-align: center;5th overview generated by GDAL 2.0dev/td/tr/tbody/tablebr /table align=center cellpadding=0 cellspacing=0 class=tr-caption-container style=margin-left: auto; margin-right: auto; text-align: center;tbodytrtd style=text-align: center;a href=http://2.bp.blogspot.com/-LsMc8uolVJs/VD-41XVrZkI/AAAAAAAAADs/-7oOzgTvkO4/s1600/out_gdal11.png style=margin-left: auto; margin-right: auto;img alt= border=0 src=http://2.bp.blogspot.com/-LsMc8uolVJs/VD-41XVrZkI/AAAAAAAAADs/-7oOzgTvkO4/s1600/out_gdal11.png title=5th overview produced by GDAL 1.11.1 //a/td/trtrtd class=tr-caption style=text-align: center;5th overview generated by GDAL 1.11.1/td/tr/tbody/tablediv class=separator style=clear: both; text-align: center;/divdiv class=separator style=clear: both; text-align: center;/divbr /br /So yes, faster (a bit) and better (a lot) !br /br /Similar result can also be obtained with :br /br /span$ a href=http://gdal.org/gdalwarp.htmlgdalwarp/a -r cubic world_4326.tif out.tif -ts 328 155/spanbr /br /div style=text-align: justify;The -oo OVERVIEW_LEVEL=xxx option can be used with gdalinfo, gdal_translate and gdalwarp, or with the new a href=http://www.gdal.org/classGDALDataset.html#a9cb8585d0b3c16726b08e25bcc94274aGDALOpenEx()/a API./divbr /div style=text-align: justify;Related work could involve adding resampling method selection in the a href=http://www.gdal.org/classGDALRasterBand.html#a5497e8d29e743ee9177202cb3f61c3c7RasterIO()/a API that currently only does nearest neighbour sampling. If that might interest you, please a href=mailto:contact@spatialys.comcontact me/a./divbr /h4Overviews in warping/h4br /div style=text-align: justify;Related to the OVERVIEW_LEVEL open option, another long due improvement was the selection of the appropriate overview level when warping. A typical use case is to start with a WMS or tiled dataset, e.g the OpenStreetMap tiles, and wanting to reproject full or partial extent to an image with reasonably small dimensions. Up to now, GDAL would alway use the most precision dataset (typically zoom level 18 for OpenStreetMap), which would make the operation terribly slow and unpractical./divbr /Now, the following will run in just a few seconds :br /br /span$ gdalwarp a href=http://gdal.org/frmt_wms_openstreetmap_tms.xmlfrmt_wms_openstreetmap_tms.xml/a out.tif -t_srs EPSG:4326 \/spanbr /span  -r cubic -te -10 35 10 55 -overwrite -ts 1000 1000/spanbr /br /div style=text-align: justify;With the -ovr flag, you can modify the overview selection strategy, and for example specify you want to use the overview if the level immediately before the one that would have been automatically selected (i.e. with bigger dimensions, more precise)/divbr /span$ gdalwarp frmt_wms_openstreetmap_tms.xml out.tif -t_srs EPSG:4326 \/spanbr /span  -r cubic -te -10 35 10 55 -overwrite -ts 1000 1000 b-ovr AUTO-1/b/spanbr /br /You can also specify a precise overview level to control the level of details, which is particuarly relevant in the case of OSM since the rendering depends on the scale :br /spanbr //spanspan$ gdalwarp frmt_wms_openstreetmap_tms.xml out.tif -t_srs EPSG:4326 \/spanbr /span  -r cubic -te -10 35 10 55 -overwrite -ts 1000 1000 b-ovr 9/b/spanbr /br /div style=text-align: justify;(Note: -ovr 9 is equivalent to OSM zoom level 8, since GDAL_overview_level = OSM_max_zoom_level - 1 - OSM_level, 9 = 18 - 1 - 8. )/divbr /table align=center cellpadding=0 cellspacing=0 class=tr-caption-container style=margin-left: auto; margin-right: auto; text-align: center;tbodytrtd style=text-align: center;a href=http://4.bp.blogspot.com/-hdIF1HqI0fw/VD_DWT-SGxI/AAAAAAAAAD8/-lq1MDD9fcg/s1600/out_9.png style=margin-left: auto; margin-right: auto;img border=0 height=640 src=http://4.bp.blogspot.com/-hdIF1HqI0fw/VD_DWT-SGxI/AAAAAAAAAD8/-lq1MDD9fcg/s1600/out_9.png width=640 //a/td/trtrtd class=tr-caption style=text-align: center;With -ovr 9 (zoom level 8)/td/tr/tbody/tablebr /table align=center cellpadding=0 cellspacing=0 class=tr-caption-container style=margin-left: auto; margin-right: auto; text-align: center;tbodytrtd style=text-align: center;a href=http://4.bp.blogspot.com/-GS_2nu7YVAE/VD_DZZl6zgI/AAAAAAAAAEE/GchPPQrEl8Y/s1600/out_10.png style=margin-left: auto; margin-right: auto;img border=0 height=640 src=http://4.bp.blogspot.com/-GS_2nu7YVAE/VD_DZZl6zgI/AAAAAAAAAEE/GchPPQrEl8Y/s1600/out_10.png width=640 //a/td/trtrtd class=tr-caption style=text-align: center;With -ovr 10 (zoom level 7)/td/tr/tbody/tablebr /table align=center cellpadding=0 cellspacing=0 class=tr-caption-container style=margin-left: auto; margin-right: auto; text-align: center;tbodytrtd style=text-align: center;a href=http://1.bp.blogspot.com/-duWvr7CqO6g/VD_Dcq7akcI/AAAAAAAAAEU/BfhHLJnXOXE/s1600/out_11.png style=margin-left: auto; margin-right: auto;img border=0 height=640 src=http://1.bp.blogspot.com/-duWvr7CqO6g/VD_Dcq7akcI/AAAAAAAAAEU/BfhHLJnXOXE/s1600/out_11.png width=640 //a/td/trtrtd class=tr-caption style=text-align: center;With -ovr 11 (zoom level 6) or without any -ovr parameter/td/tr/tbody/tablebr /table align=center cellpadding=0 cellspacing=0 class=tr-caption-container style=margin-left: auto; margin-right: auto; text-align: center;tbodytrtd style=text-align: center;a href=http://1.bp.blogspot.com/-2i1u01gCIPA/VD_DbkfxEvI/AAAAAAAAAEM/PFNwXl4acsk/s1600/out_12.png style=margin-left: auto; margin-right: auto;img border=0 height=640 src=http://1.bp.blogspot.com/-2i1u01gCIPA/VD_DbkfxEvI/AAAAAAAAAEM/PFNwXl4acsk/s1600/out_12.png width=640 //a/td/trtrtd class=tr-caption style=text-align: center;With -ovr 12 (zoom level 5)/td/tr/tbody/table(All above images are © a href=http://www.openstreetmap.org/copyrightOpenStreetMap contributors/a)br /br /h4Overviews in warped VRT/h4br /div style=text-align: justify;GDAL advanced users will perhaps know the a href=http://gdal.org/gdal_vrttut.htmlVirtual Raster (.vrt) format/a. There are several flavors of VRT files, one of them is the so-called warped VRT, which can be produced by gdalwarp -of VRT. This is an XML file that captures the name of the source dataset being warped and the parameters of the warping: output resolution, extent, dimensions, transformer used, etc... This can be convenient to do on-the-fly reprojection without needing to store the result of the reprojection. Similarly to regular warping, warped VRT can now make use of overviews of the source dataset to expose implicit overviews in the warped VRT dataset. Which make it possible to use warped VRT in a GIS viewer ith decent performance when zooming out. Among others, this will be  beneficial to QGIS that use the a href=http://www.gdal.org/gdalwarper_8h.html#ab5a8723d68786e7554f1ad4c0a6fa8d3auto-warped-VRT/a mechanism when opening a raster that is not a north-up dataset./divbr /Still playing with our OpenStreetMap dataset, let's create a warped VRT around western Europe :br /br /span$ gdalwarp frmt_wms_openstreetmap_tms.xml out.vrt -t_srs EPSG:4326 \/spanbr /span  -r cubic -te -10 35 10 55 -overwrite -of VRT/spanbr /br /We can see that the VRT now advertizes overviews :br /br /span$ gdalinfo out.vrt /spanbr /span[...]/spanbr /spanSize is 4767192, 4767192/spanbr /span[...]/spanbr /spanBand 1 Block=512x128 Type=Byte, ColorInterp=Red/spanbr /span  Overviews: 2383596x2383596, 1191798x1191798, 595899x595899,/spanbr /span             297950x297950, 148975x148975, 74487x74487,/spanbr /span             37244x37244, 18622x18622, 9311x9311, 4655x4655,/spanbr /span             2328x2328, 1164x1164, 582x582, 291x291, 145x145,/spanbr /span             73x73, 36x36, 18x18/spanbr /br /br /div style=text-align: justify;I'd like to thank a href=https://koordinates.com/Koordinates/a and a href=https://data.linz.govt.nz/Land Information New Zealand/a for funding those improvements./div
Categories: OSGeo Planet
Syndicate content