Vanuatu GIS Feed's Avatar

Vanuatu GIS Feed

@vanuatugis.bsky.social

The Vanuatu GIS Feed will be used to aggregate site posts. It is monitored, but will probably not be very 'personal'. - @raetlomi.bsky.social Technology Feed @vanuatutech.bsky.social. 231124

31 Followers  |  3 Following  |  27,274 Posts  |  Joined: 23.11.2024  |  1.7741

Latest posts by vanuatugis.bsky.social on Bluesky

Preview
Extracting ERA5-Land variables for a point in GEE I have a point for which I want to extract several meteorological variables from the daily aggregated ERA5-Land dataset in GEE. I know there are many similar questions asked before, but they all have some complications that are not applicable to my case which is more simple. I try to adapt this code https://gis.stackexchange.com/a/391001/24160. I collected the needed variables values and the dates in a list of dictionaries. The problem is that I cannot get the data from that list and put it into a feature collection. Here is the code: Map.addLayer(point); Map.centerObject(point, 17); var point = ee.FeatureCollection(point); var bands = ['temperature_2m', 'snow_cover']; var startDate = ee.Date('2025-01-01'); var endDate = ee.Date('2025-01-10'); var dataset = ee.ImageCollection('ECMWF/ERA5_LAND/DAILY_AGGR') .select(bands) .filterDate(startDate, endDate); //print(dataset); var list_dataset = dataset.toList(dataset.size()); print(list_dataset); var getValues = function(image) { var values = ee.Image(image) .reduceRegion(ee.Reducer.first(), point); var date = ee.Image(image).get('system:index'); values = values.set("date", date); return values; }; var values_list = list_dataset.map(getValues); print(values_list); // Generate feature collection - Attempt 1 // var myFeatures = ee.FeatureCollection(values_list.map(function(el){ // var geom = point; // return ee.Feature(geom, el); // })).flatten(); // Generate feature collection - Attempt 2 var myFeatures = ee.FeatureCollection(values_list.map(function(el){ el = ee.Dictionary(el); var geom = point; return ee.Feature(geom, { 'date': ee.String(el.get('date')), 'snow_cover':ee.Number(el.get('snow_cover')), 'temperature_2m': ee.Number(el.get('temperature_2m')) }); })).flatten(); print(myFeatures); //Export to Google Drive as csv file Export.table.toDrive({ collection:myFeatures, description: 'era5landtest', folder: 'ERA5', fileFormat: 'csv', });
24.11.2025 10:19 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
R sf package: Error in subsetting geometries - "invalid subscript type 'list'" I'm working with the sf package in R to process a set of point geometries. My objective is to find neighbors for each point within a certain distance. However, I'm encountering an error when attempting to subset geometries. Here's a simplified version of my code: library(sf) # Load the shapefile points_sf
24.11.2025 10:06 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Easily delete the layer source from the content panel Hello, I would like to suggest a feature that would make it easy to delete the source of the selected layer directly from the content panel. Layers can quickly accumulate on your computer, and this would help avoid keeping all of them, especially when doing tests or experiments. Of course, this acti...
24.11.2025 09:57 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Automate hiding layer names interfering with hiding the bande 1 of the raster in the legend of the print-composer I'm working with QGIS 3.40 (Bratislava) and I’m trying to automatically hide all layer names in a print-composer legend. Right now, I’m doing it manually: right-clicking each layer in the legend and selecting Hide, one by one. After that, I reorganize the layers inside a group to get the adaptive legend I want. Since I’m generating an atlas and need to repeat this process very often, I’d like to automate it with PyQGIS. I found a related topic here and I used a slightly different code: Setting layer name in composer legend as "Hidden" using PyQGIS? from qgis.core import ( QgsProject, QgsLayoutItemLegend, QgsLegendRenderer, QgsLegendStyle, QgsLayerTreeNode ) # ------------------------------------------------------------------ # Fonction rΓ©cursive : masque un nΕ“ud et tous ses nΕ“uds descendants # ------------------------------------------------------------------ def hide_node_recursively(node): # Masquer le nΕ“ud lui-mΓͺme QgsLegendRenderer.setNodeLegendStyle(node, QgsLegendStyle.Hidden) # Parcourir les enfants s'il y en a if hasattr(node, "children"): for child in node.children(): hide_node_recursively(child) # ------------------------------------------------------------------ # 1. RΓ©cupΓ©ration du layout # ------------------------------------------------------------------ project = QgsProject.instance() manager = project.layoutManager() layout = manager.layoutByName('atlas') # Adapter si nΓ©cessaire if layout is None: raise Exception("Layout 'atlas' not found.") # ------------------------------------------------------------------ # 2. RΓ©cupΓ©ration de la lΓ©gende # ------------------------------------------------------------------ legends = [i for i in layout.items() if isinstance(i, QgsLayoutItemLegend)] if not legends: raise Exception("No legend found in layout.") legend = legends[0] # ------------------------------------------------------------------ # 3. DΓ©sactivation des mises Γ  jour automatiques # ------------------------------------------------------------------ legend.setAutoUpdateModel(False) legend.updateLegend() # ------------------------------------------------------------------ # 4. Masquage rΓ©cursif de TOUTE la lΓ©gende # ------------------------------------------------------------------ model = legend.model() root = model.rootGroup() hide_node_recursively(root) #
24.11.2025 09:57 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Is there a QGIS plugin that creates evenly spaced points within a polygon layer? I’m looking for a way to automate a task in QGIS. Given a polygon layer, I need to generate a specified number of points inside it, with a fixed spacing (e.g., points every 2 meters). Doing this manually would be imprecise and extremely time-consuming. Is there a QGIS plugin or built-in tool that can automatically create evenly spaced points within a polygon? P.S.: I'm using QGIS 3.28.10 and I'm not very expert or tech-savvy, so something simple would be awesome.
24.11.2025 09:21 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Google Earth Engine - slope I am trying to use the pre-built function of GEE for calculating the slope of the terrain, but I cannot really understand how the function works, since the documentation is also not really helpful. Can anyone provide an explanation about its mechanism? For example, which kind of formula it uses to extract the slope from a DEM.
24.11.2025 09:08 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Issues with ArcGIS Online Subscription Status, Credits, and GIS Day Promotional Code Hello, I am currently experiencing an issue with my ArcGIS Online account. Although the interface displays β€œYour subscription has expired,” when I check my organization settings, I see the following information: Renewal date: November 20, 2026 Total remaining credits: -1.27 No unusual activity: no ...
24.11.2025 08:59 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Spatial Data Science with R What is the local Geary's C value for the raster generated by r
24.11.2025 08:50 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Export map from QGIS and import in Locus map (Android) I'm looking for a way to save a map from QGIS and import it into Locus Map, an Android app. Specifically, I want to use the map provided at https://basemap.de/viewer/ in exactly the same way it's shown there. The map material is offered as a vector tile service described at https://basemap.de/web-vektor/, more specifically the vector tiles are at https: //sgx.geodatenzentrum.de/gdz_basemapde_vektor/tiles/v1/bm_web_de_3857/{z}/{x}/{y}.pbf with these style definitions https://sgx.geodatenzentrum.de/gdz_basemapde_vektor/styles/bm_web_top.json I'm a complete newbie in QGIS but found this tutorial (German, but I'm sure you can easily spot the relevant info) https://geoobserver.wordpress.com/2022/08/10/qgis-tipp-basemap-de-als-vectortiles/ to do the above and also export using the qtiles Plugin. However, when using qtiles to export into the mbfiles format, it seems there is no progress at all. The bar doesn't move. Note that I selected entire Germany in all zoom levels, so I'm suspecting this to be quite some amount of data. But I'm wondering whether this is expected of qtiles or whether I did something wrong in the process?
24.11.2025 08:03 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Applying 3D-Helmert Transformation Parameters in QGIS? I have received a set of local transformation parameters from my surveyor to go from WGS84/UTM36S to ARC1950/UTM36S (See picture below) The way QGIS does the transformation is not the best. I am working in Malawi and the default transformation parameters give misplacements of 20 to 40 m. This is why I ask a very reliable local surveyor to provide the local parameters for the area of interest. What is the proper way to write a proj line to introduce these parameters into QGIS? I was trying: +proj=utm +zone=36 +south +datum=WGS84 +units=m +no_defs +x=249.7578 +y=2.8706 +z=203.0842 +rx=-14.90782 +ry=-6.25396 +rz=0.20011 +s=-7.3003 But it does not seem to work.
24.11.2025 07:10 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Scheduled notebook vs Manual run has drastically different run times I used this article to develop a script to backup all my organizations feature layers as zipped FGDBs in AGOL notebooks. It works well, however the runtime difference between manually running the script and scheduling it as a task is drastic. When running it manually it will finish in under 5 mins. ...
24.11.2025 06:29 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Converting .obj (3D files) to .tiff raster I have a 3D .OBJ file that i need to convert to raster (geotiff) so that i can use it in QGIS/python gdal. I have found several answers online about how to convert a DEM or TIFF to .obj, but not the other way around. Does someone know how to convert .obj to .tiff?
24.11.2025 06:06 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Dealing with NA-Values when plotting rasters with folium in python I have some tiffs that I'd like to plot interactively in python using folium (or any other package, but I don't know of any). My problem is, that I have many na-values in the raster. At the moment I read in the raster with rasterio, read the data into a 2d-numpy-array, and then I write it back out as .png. Finally I use folium with: rasterlayer = folium.FeatureGroup(name = "raster") rasterlayer.add_child(folium.raster_layers.ImageOverlay( image=ndvi, bounds=[[bottom, left], [top, right]], interactive=True, cross_origin=False, zindex=1, colormap=matplotlib.pyplt.cm.Greens )) m.add_child(rasterlayer) m.add_child(folium.LayerControl()) m But I get all the NA-Values printed in some colour. And I didn't find any solution to that problem. I had a look here: https://stackoverflow.com/questions/50689068/display-raster-data-in-folium-handling-no-data-values but also did not really help. I also did set all NA-values in the "numpy"-array to 0, but this also was not the solution. The NA-Values always got plotted. Is there some, relatively easy way, to omit the plotting of na values. And more general: What is a good way of plotting raster with folium? It seems that in R it's so easy with packages like mapview or tmap and in python it feels way more complicated...
24.11.2025 05:13 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
GeoJSON layer shows/enables only one row in attribute table in QGIS I have a GeoJSON polygon layer which I converted from a shapefile layer. The layer opens up in geojson.io, for example, with no problem, displays the table correctly, etc: However, in QGIS the Attribute Table only shows one polygon, with "Features Total:146, Filtered:1, Selected:0", see the image below I've tried to remove this "filter", using SQL to select all the polygons or just a couple of the polygons, then export selected, and still, I only get this one unit, 146. How can I get QGIS to display the whole attribute table in GeoJSON and other formats? One caveat: the original shapefile had a "lock" file on it. I don't have this problem when I export to .shp, though if I try to select polygons and export a subset of the original shapefile in any format, I run into the same problem.
24.11.2025 04:10 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
WMS not showing in QGIS 3.34.3 I am using QGIS 3.34.3 Prizren. I am able to connect to WMS server ( https://www.geoportal.sa/ogc/services/NDM_WMS/Transport_NDM/MapServer/WMSServer?service=WMS&request=GetCapabilities&version=1.3.0 ) However, after connection, list of layers can be existed. When trying to add any layer from this list, it is just listed in the left panel and no display for the layer in the main screen. Any suggestions?
24.11.2025 03:11 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
OIC footprint didn't load in Arcgis Online, but it works in Arcgis Pro I followed the OIC tutorial videoΒ https://mediaspace.esri.com/media/t/1_r75vr1r7/244548102Β , and successfully built a campus OIC using Insta360 X3's 360 images. And it works pretty well in ArcGIS Pro. Then I upload OIC to ArcGIS Online. In the ArcGIS Online map viewer, neither the red cross that re...
24.11.2025 02:58 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Why is my SSF file opening in Pathfinder Office in read only mode? I have a new SSF file that I just copied from my Trimble GeoExplorer 2008 series GPS unit to my desktop. I also copied the shapefiles from the unit. When I double-click on the SSF file, I receive the following error. Changes cannot be made to this file as it was created with GPSCorrect. The file has been opened in read only mode. It never actually opens a file though. I need to be able to run a correction on it and then apply the correction to the shapefile that the data was collected for.
24.11.2025 02:13 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Specify field of raster in Raster Calculator expression of ArcMap In Raster Calculator I need to apply the next expression: Con("raster1%","field3")==Integer, Lookup("%raster2%","field3"),Lookup("raster1%","field3")) or more specifically: Con("%alteracionMapeada_raster%"==8,Lookup("%swir%","CLASS_NAME"),Lookup("%alteracionMapeada_raster%","OCURREN16")) The "%raster2%","field3" and "raster1%","field3" are categorical values so I need to get those values (form "%raster2%","field3" and "raster1%","field3") in the output raster cells. The problem is that the results is just one numerical field (no other fields with categorical). I have already checked Specify a field in attribute table with raster calculator and the answer about the lookup tool has very promising but didn't work.
24.11.2025 01:09 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
DA2 Trimble Receiver and Field Maps Integration I have a few questions. I’m using a DA2 Trimble receiver with their correction service for accurate mapping (Trimble Catalyst, centimeter level). I want to send this data to Field Maps instead of Teraflex because using separate maps takes too much time to get the asset names. The main reason I prefer Field Maps is that Teraflex does not allow me to add labels to a background layer. Another field team captures points with their phones while they do the maintenance of the assets, so I need to map them accurately and keep the same names used in our asset management app. So in Field Maps I just use a background layer with enabled Labels and it is very easy to type the same one during the data collection. Here’s what I’ve done so far: Tablet: * Mock Locations: Enabled on my device. * Bluetooth: Paired the receiver. Trimble Manager: Share Location: ON * Degree Notation: Decimal degrees * GNSS Correction Services: Auto * Output: GDA2020 (Australia) * Geoid: AUSGeoid2020 (Australia) * Antenna Height: Fixed at 2 meters In Field Maps/ArcGIS Online, I have set up the following: * Feature Layer: Published in GDA2020 -I added the GPS Metadata Fields by using the Add GPS Metadata Fields tool in ArcGIS Pro. https://pro.arcgis.com/en/pro-app/latest/tool-reference/data-management/add-gps-metadata-fields.htm * Units: Metric * Coordinates: Automatic * Distance: Automatic * Area: Automatic * Provider: Integrated (if i change this it it showing only the phone coordinates) * Antenna Height: 0 meters (since it’s already set in Trimble Manager) * Profile: GDA2020 7844 * Map Coordinate System: 3857 (WGS 1984 Web Mercator) * Transformation: GDA2020_To_WGS_1984_2 (using that profile) So far so good, Field Maps shows pretty much the same accuracy with Trimble Manager, for example 3cm horizontal in field manager, around 3cm in Field Maps. I used split screen and everything looks fine. However, the problem is that the coordinates that are captured, come in decimal degrees instead of GDA2020 Cartesian. Also, the height in Field Maps seems to be in ellipsoidal values, not from the Australian Height Datum. The data I need must be imported into the system in GDA2020 (zone 56), and the height should be in AHD (Australian Height Datum). Can anyone tell me where I might be going wrong? Is this a configuration issue, or is it just a limitation of what Esri can do?
24.11.2025 00:06 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Dictionary.get: Dictionary does not contain key: bucketMeans Error when trying to apply Otsu threshold I am trying to apply Otsu's threshold to remove water from my NDVI image. But when running the code I get the error: ImageCollection (Error) Error in map(ID=1_2_LE07_020039_20220510): Dictionary.get: Dictionary does not contain key: bucketMeans. The image shows nothing when I try to display the image with Map.addLayer, so they probably have null. I am wondering if there's anyway to filter them out so that I don't get the error. Or any other idea would be helpful. var PEI = ee.Geometry.Polygon( [[[-88.64042172041307, 30.446701603950796], [-88.64042172041307, 30.32290398952697], [-88.49004635420214, 30.32290398952697], [-88.49004635420214, 30.446701603950796]]], null, false); Map.centerObject(PEI, 15) var otsu = function(histogram) { var counts = ee.Array(ee.Dictionary(histogram).get('histogram')); var means = ee.Array(ee.Dictionary(histogram).get('bucketMeans')); var size = means.length().get([0]); var total = counts.reduce(ee.Reducer.sum(), [0]).get([0]); var sum = means.multiply(counts).reduce(ee.Reducer.sum(), [0]).get([0]); var mean = sum.divide(total); var indices = ee.List.sequence(1, size); // Compute between sum of squares, where each mean partitions the data. var bss = indices.map(function(i) { var aCounts = counts.slice(0, 0, i); var aCount = aCounts.reduce(ee.Reducer.sum(), [0]).get([0]); var aMeans = means.slice(0, 0, i); var aMean = aMeans.multiply(aCounts) .reduce(ee.Reducer.sum(), [0]).get([0]) .divide(aCount); var bCount = total.subtract(aCount); var bMean = sum.subtract(aCount.multiply(aMean)).divide(bCount); return aCount.multiply(aMean.subtract(mean).pow(2)).add( bCount.multiply(bMean.subtract(mean).pow(2))); }); //print(ui.Chart.array.values(ee.Array(bss), 0, means)); // Return the mean value corresponding to the maximum BSS. return means.sort(bss).get([-1]); }; var threshold_func = function(image) { image = ee.Image(image).select('NDVI') var histogram = image.reduceRegion({ reducer: ee.Reducer.histogram() .combine('mean', null, true) .combine('variance', null, true), geometry: PEI, scale: 10, bestEffort: true }); var threshold = otsu(histogram.get('NDVI_histogram')); var water_removed = image.gt(threshold).selfMask(); return water_removed; }; var addNDVI = function(img) { var ndvi = img.normalizedDifference(['B5','B4']).rename('NDVI') return img.addBands(ndvi) } var addNDVIpre8 = function(img) { var ndvi = img.normalizedDifference(['B4','B3']).rename('NDVI') return img.addBands(ndvi) } var landsat5 = ee.ImageCollection("LANDSAT/LT05/C02/T1_TOA").filterBounds(PEI) .filterMetadata('CLOUD_COVER', 'less_than', 20) .select(['B5', 'B4', 'B3', 'QA_PIXEL']) .map(addNDVIpre8) print('l5', landsat5) var landsat7 = ee.ImageCollection("LANDSAT/LE07/C02/T1_TOA").filterBounds(PEI) .filterMetadata('CLOUD_COVER', 'less_than', 20) .select(['B5', 'B4', 'B3', 'QA_PIXEL']) .map(addNDVIpre8) print('l7', landsat7) var landsat8 = ee.ImageCollection("LANDSAT/LC08/C02/T1_TOA").filterBounds(PEI) .filterMetadata('CLOUD_COVER', 'less_than',20) .select(['B5', 'B4', 'B3', 'QA_PIXEL']) .map(addNDVI) print('l8', landsat8) var landsat = landsat5.merge(landsat7).merge(landsat8) print('total', landsat) //var landsatlist = landsat.toList(landsat.size()); var landsat_otsu = landsat.map(threshold_func) print(landsat_otsu) Link: https://code.earthengine.google.com/46a1c8ed3b8ae773fea005a65ac87576
23.11.2025 23:12 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
How to create a Survey123 form for sequential evaluation of unique points in a hosted feature layer? Hi, I’m trying to build a Survey123 form for a set of unique points stored in a hosted feature layer. Each point represents one location, and each location needs to be evaluated using three questions. The geometry of the points must remain fixed, and users should only provide the attribute responses...
23.11.2025 22:26 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Saved layout not showing in new Map of ArcGIS Pro I am new to ArcGIS Pro and I am trying to use the same layout I used in Map 1 as in the figure below. Now, I created another map (Map2), and I want to use the layout I saved ( I followed this link instructions to save layout3). The next steps I took are the following * Insert Layout > Import Layout (The one I saved) * Upon right clicking on the map frame in the table of contents, I selected my new map (Map 2). * Then, this happens. The map does not appear. Is it because it is not linked with any of the other objects? Also, the spatial reference system is the same as the first map.. For reference the new map I made is this: Is there a way to do this such that I do not repeat everything and just use the layout I saved so that both figures are consistent?
23.11.2025 22:14 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Plotting LiDAR data with matplotlib I am trying to plot a las file with one million points in Matplotlib. When I try to plot the file it always gives me a blank result. This is the code I am using: import numpy as np import laspy from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt # reading las file and copy points input_las = laspy.read("C:\\split.las") point_records = input_las.points.copy() x_mask_g = np.array(point_records.X) y_mask_g = np.array(point_records.Y) z_mask_g = np.array(point_records.Z) fig_surf_g = plt.figure() ax = fig_surf_g.add_subplot(111, projection = '3d') ax.plot_trisurf(x_mask_g, y_mask_g, z_mask_g) plt.title("Ground Surface")
23.11.2025 21:15 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Mosaic raster does not match original tiles visually or spatially (Hansen GFC Annual Loss dataset, QGIS / GDAL) I am working on mosaicking the Hansen Global Forest Change raster tiles (lossyear annual forest loss) for years 2001–2024 in QGIS 3.22.2. Each year contains 10 raster tiles (10Β° x 10Β°), and they all load correctly when added individually. However, after mosaicking them using either Raster β†’ Miscellaneous β†’ Build Virtual Raster (VRT) or Raster Merge, the resulting mosaic looks visually different from the original rasters (they look similar to original, but with different pattern of data), and when I load both the mosaic and the original tiles together, they do not perfectly overlap or align. When the mosaic raster is displayed on top of the original tiles, edges do not match exactly, and some records are located in different places and other records are missing. For mosaics I tried following: Raster - Miscellaneous - Build Virtual Raster... Resampling algorithm - Nearest Neighbour nodata = 0 All rasters have: * CRS: EPSG:4326 * pixel size: 0.00025 grades * Bands:1 * Data type: bytes * Values: 0 or 1 Possible causes I suspect: * GDAL resampling might be changing the pixel grid alignment * The VRT might not be preserving exact georeferencing * Slight differences in raster origin coordinates between tiles * nodata mismatches * auto-stretch in QGIS symbology What I need help with: * Why does the mosaic not align perfectly with the original raster tiles? * How can I produce a mosaic that exactly matches pixel boundaries and does not shift or change values? * What GDAL parameters guarantee pixel-perfect mosaicking for categorical rasters like Hansen forest loss (0/1 values)? Any guidance, especially regarding correct gdalbuildvrt or gdalwarp parameters for categorical rasters, would be greatly appreciated.
23.11.2025 20:57 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Why does QGIS not recognize FlatGeobuf CRS? I've been having issues viewing FlatGeobuf (FGB) files in QGIS. When I drag and drop any FGB into the Layers panel, I get this warning: That file I used (UScounties.fgb) is official test data from the FlatGeobuf project, so I would expect it to work (can be downloaded here). I've tried other FGBs and they do the same thing. I've tried multiple version of QGIS, from 3.40.3-Bratislava a pre-release of 4.0, and getting the same results on all of them. Does this happen for anyone else? I haven't been able to track down any bug reports so far.
23.11.2025 19:27 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Building my own vector map for offline use Is there a totorial or something like that for begginers that can guide how to build a custom vector map? The idea is to use free tools and data from OSM + SRTM to build my own offline map of a specific region and use it in OruxMaps
23.11.2025 19:14 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Google Maps API extract elevation value along route I am using the Directions and Elevation Service of Google Maps, in order to extract the coordinates and the elevation along a route between a start and end point. I could set my directions service successfully, I could also extract the elevation values. Everything works fine at the first request, but if I send a second request I got the error message: "InvalidValueError: in property path: fewer than 2 LatLngs". I also noticed, that if I reload my page in Firefox, the error disappears. But if I don't reload my webpage, the error remains. Below you can see my code: $(window).on('load', function() { var directionsDisplay; directionsService = new google.maps.DirectionsService(); var map; }); $(window).on('load', function () { initMap(); }); function initMap() { directionsDisplay = new google.maps.DirectionsRenderer(); var mapOptions = { zoom: 7, mapTypeId: google.maps.MapTypeId.ROADMAP, center: new google.maps.LatLng(48.7758459, 9.1829321), mapTypeControl: false } map = new google.maps.Map(document.getElementById("map"), mapOptions); directionsDisplay.setMap(map); } //take start and end from input field function calcRoute() { var start = document.getElementById("start").value; var end = document.getElementById("end").value; //send request to server var request = { origin: start, destination: end, travelMode: google.maps.TravelMode.DRIVING }; path = []; //get result from google maps server as response directionsService.route(request, function(response, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(response); pointsArray = response.routes[0].overview_path; var i = 0; var j = 0; //get long lat of vertices along route for (j = 0; j < pointsArray.length; j++) { lat = pointsArray[j].lat(); lng = pointsArray[j].lng(); //save lat long in path array path.push(new google.maps.LatLng(lat, lng)); //create marker var marker = new google.maps.Marker({ position: new google.maps.LatLng(lat, lng), map: map }); } } }); //Create an ElevationService var elevator = new google.maps.ElevationService; displayPathElevation(path, elevator, map); function displayPathElevation(path, elevator, map) { new google.maps.Polyline({ path: path, strokeColor: '#0000CC', strokeOpacity: 0.4, map: map }); elevator.getElevationAlongPath({ 'path': path, 'samples': 256 }, plotElevation); } function plotElevation(elevations, status) { if (status === 'OK') { for (var i=0; i < elevations.length; i++) { console.log(elevations[i].location.lat() ); console.log(elevations[i].location.lng() ); console.log(elevations[i].elevation); } } }; Here are my libs and buttons: Start End
23.11.2025 19:14 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Activating the GPS on QField for Windows Desktop (beta) Has anyone figured out how to activate the GPS on the computer to use in QField-Windows? I have a Getac field tablet/computer. I've created a QGIS Project with 3 vector layers and packaged for QField. I've successfully tested my computer GPS with QGIS-GPS Tools, and other software. And I've tested the QField project on my Android phone with no issues. I'm using QField for Windows (beta --> https://qfield.org/docs/install/)
23.11.2025 18:11 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
GIS Dashboard -- Table -- Null values Please help. I would like to edit the code below so that cells in my table that have null values will show the word "Missing" rather than be blank.Β  I assume it is this line that needs to change. "numsurcharge" is the column that occasionally has blank information that I would like to clearly identi...
23.11.2025 16:22 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Generate random points around a feature in QGIS I have a point file that details the number of items and their size at each feature. I would like to illustrate these features by generating the right number of points at the right size around the feature point. This needs to be done using symbology, so probably a geometry generator based approach. I can think of two possible approaches: 1-Generate a random offset for each of the n points, but I have no idea how to loop though a number of items generating a randomised location for each. 2-use a geometry generator to create a polygon then fill it with a point marker fill, this would be easier but not great and wouldn't give the right number of points and some might be cut in half
23.11.2025 16:14 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

@vanuatugis is following 3 prominent accounts