This question have already been answered (partially) here. Individual tree segmentation in broad coverages is not currently (v2.2.2) an easy task in lidR. There are several reasons for that:
lidR brings 3 algorithms for making a CHM which each have various tweaks and various parameters + 4 algorithms for ITS including a point-cloud based methods which is thus internally very different to the CHM-based ones. This give us dozens of different processing options. They cannot all work in a single straightforward functions
- The
LAScatalog processing engine processes broad coverage by independent chunks. This generate troubles in lastrees() to make a continuous output with valid tree IDs. See also this question and this question.
To achieve this task you must create your own routine and use the LAScatalog processing engine. The example provided in this question is a workable solution to get a shapefile of crowns with a set of metrics for each tree.
However if you want to get a continuous raster with a single ID per trees it is harder. The current development version of the package (v2.3.0) will provide different strategies to guarantee uniqueness of tree IDs. But in all cases you will need to write your own routine.
My second question is, if there is an upper limit on the data size, is there then a way to handle bigger areas by combining the resulting segments? Is that included in lidR or should the user implement this?
This is what the LAScatalog processing engine does. See help("catalog_apply"), help("LAScatalog-class") and this vignette.