Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 16:31
    marygriffus opened #3186
  • Feb 16 03:52
    zxhcodes closed #3185
  • Feb 16 03:52
    zxhcodes commented #3185
  • Feb 16 02:49
    pomadchin commented #3185
  • Feb 16 02:48
    pomadchin commented #3185
  • Feb 16 02:48
    pomadchin commented #3185
  • Feb 16 02:37
    zxhcodes edited #3185
  • Feb 16 02:29
    zxhcodes edited #3185
  • Feb 16 02:29
    zxhcodes opened #3185
  • Feb 14 17:29
    pomadchin commented #3184
  • Feb 14 17:25
    metasim commented #3184
  • Feb 14 17:24
    pomadchin commented #3184
  • Feb 14 17:22
    metasim commented #3184
  • Feb 14 17:22
    metasim commented #3184
  • Feb 14 17:21
    metasim commented #3184
  • Feb 14 17:17
    pomadchin commented #3184
  • Feb 14 17:17
    pomadchin commented #3184
  • Feb 14 17:16
    pomadchin commented #3184
  • Feb 14 16:51
    pomadchin commented #3184
  • Feb 14 15:21
    metasim commented #3184
Frank Dekervel
@kervel
the workaround for me is to first project to wgs84 and then re-reproject to webmercator ... so this definately looks like a bug
(its geotrellis 2.3.1)
Frederic Guiet
@fguiet
@pomadchin thank!
Grigory
@pomadchin
hey @kervel can you file an issue under https://github.com/locationtech/proj4j?
it is definitely a bug and thanks for finding that stackoverflow issue as well
ah you know that problem with that issue is that locationtech/proj4 is in fact @dwins fork (well, he was doing changes in his fork and after that we moved changes to locationtech repo - he did a huge work)
Frank Dekervel
@kervel
hmm @pomadchin seems such an issue already exists but then for british one locationtech/proj4j#32
i have added a comment there
Grigory
@pomadchin
:+1:
@kervel mb it is inaccurate projection port from the osgeo proj lib
Frank Dekervel
@kervel
i should check if the osgeo proj lib is accurate here (but i suspect it is , since qgis seems to handle these conversions just fine)
Grigory
@pomadchin
@kervel can you check @dwins fork, mb it would work for you?
Frank Dekervel
@kervel
ok, i was assuming that dwins' fork was actually the version used by geotrellis, but i'll try then
Frank Dekervel
@kervel
@pomadchin i tested that fork, doesn't seem better actually
image.png
not as bad as in the stackoverflow post, but not accurate
Grigory
@pomadchin
@kervel can you post some comparison on your data of locationtech proj and @dwins fork?
we can use it as the test case in the future
Frank Dekervel
@kervel
will do tomorrow!
Grigory
@pomadchin
thank you so much @kervel :+1:
Ricardo Yrupailla Meza
@stg101
image.png

Hi , I'm having problems trying to perform a viewshed operation over a field of view of 90 degrees, I'm using the following code

        val point27 = Viewpoint (
          x = point.x, 
          y = point.y, 
          viewHeight = 1.6, 
          angle = 0, 
          fieldOfView = Math.PI / 2, 
          altitude = -1.0/0
        )
        // Perform viewshed

        val layerVs = tiled.viewshed(Seq(point27), maxDistance=maxDistance, curvature=true)

but i'm getting thw following result which correspond to a 2 * PI field of view

I'm doing something wrong ?
Ricardo Yrupailla Meza
@stg101
tiled is of type TileLayerRDD
15952026052
@15952026052
image.png
/* val (zoom, reprojected): (Int, RDD[(SpatialKey, MultibandTile)] with Metadata[TileLayerMetadata[SpatialKey]]) =
      MultibandTileLayerRDD(tiled, rasterMetaData)
        .reproject( layoutScheme, Bilinear)
          Pyramid.upLevels(reprojected, layoutScheme, zoom , Bilinear){...}  */

     Pyramid.upLevels(MultibandTileLayerRDD(tiled, rasterMetaData), layoutScheme, 13, Bilinear) { (rdd, z) =>
      val layerId = LayerId("test", z)
      // If the layer exists already, delete it out before writing
      if(attributeStore.layerExists(layerId)) {
        new FileLayerManager(attributeStore).delete(layerId)
      }
      writer.write(layerId, rdd, ZCurveKeyIndexMethod)
    }
Hello @pomadchin I don't want to reproject, so in (Pyramid.upLevels()), replace reprojected with MultibandTileLayerRDD(tiled, rasterMetaData).
But the result is that only the top layer has normal image output.
image.png
15952026052
@15952026052
image.png
Grigory
@pomadchin
@15952026052 how is that possible that level 12 has the higher resolution?
Frank Dekervel
@kervel
hello, i have N tilesets in webmercator (see, i am getting further and further :D) every tileset is sparse and the overlap between the tilesets is small. I need to merge them to a big tileset. this shouldn't be an expensive operation since it will just involve copying 90% of the tiles and merging 10% of them, but when doing this with spark a tileset is a RDD[SpatialKey,Tile] so merging N tilesets will require me to load all tiles in memory (even the ones that just need to be copied?)... or am i not understanding how a PairRDD works ?
N ~ 200 with every tileset having a couple of hunderds of 1024x1024 tiles.
Frank Dekervel
@kervel
a column based datastructure (eg Dataset[(SpatialKey,Tile)]) would be much more efficient here i guess
Frank Dekervel
@kervel
hmm, that's rasterframes, right ?
Grigory
@pomadchin
hey @kervel can you tell a little bie more about what you’re trying to do? it is a bit hard to follow
Not sure that rasterframes would solve your issue btw
Frank Dekervel
@kervel
well, i have now geotrellis jobs that generate tilesets based on mobile lidar data.
every run of the mobile lidar is now converted into one set of tiles.
but i want to make a big tileset of all the runs together ... normally every time the mobile lidar runs it will go somewhere else. but sometimes it will have an overlapping section with a previous run
so i go raw lidar returns --> pointcloud --> raster --> retile --> reproject --> save to hadoop for one tileset
Eugene Cheipesh
@echeipesh
@kervel You should be able to use the LayerWriter.update function to merge in the new data. The writer will check if the target tile exists and try to update it using the provided function. (Be warned the default implementation doesn't actually do any merging, so make sure to specify real value for mergeFunc there).
Frank Dekervel
@kervel
Ok, that sounds good! Tx
Frank Dekervel
@kervel
i'm reading about rasterframes.. and i think it would also help me because raster data is lazily loaded. what i can't easily do in geotrellis is getting a list of the raster tile keys without loading them all (or can i). but going to use the layerWriter.update method.
Glider
@esmeetu
hey, @pomadchin i have committed a PR. #3147 for optimization.
Besides, i have a question about tile mapalgebra calculation. How to deal with edge when using 3x3 window to calculate the tile's slope. The edge pixel only has three adjacent pixels, so there is a big difference in the result of tile slope. Is there a better way to solve this?
Grigory
@pomadchin
hey @esmeetu thanks! I anwsered under the issue; thank you so much for the contribution
Eugene Cheipesh
@echeipesh
@kervel You can do that with GT as well. If you load make `RasterSource' instances for your rasters thats a lazy view that will at some point read metadata. You can do metadata-only reproject or resample on them and then trade it for LayoutTileSource if you give tell it how you want the tiles layed out (LayoutDefinition) -- the LayoutTileSource will both give you a set of keys you can read and allow you to actually read them lazilly.
@kervel There is more than normal ammount of scaladocs on those interfaces but you'll still need to read a few tea-leaves as these things are new and are not described in the documntation yet.
RasterFrames will give you a DataFrame interface, which is quite nice to work against and these kinds of workflows are built into the TileUDT. So it depends on how much flexibility and which direction you need.
Jason T Brown
@vpipkt
Hi! Long time user, first time caller. I am using (an older version of) GDALDataset in RasterFrames. The evaluation of various dataset's metadata is happening in parallel and I am un-scientifically seeing a lot of calls here to get the band min and max. I think this is forcing a lot of data reads that are ultimately unnecessary. Happy to elaborate. Would you be open to a PR trying to avoid this call if possible, as in most cases it is