I have .las file, which has no CRS information. So I add it using lastolas, as I know UTM zone data belongs to(UTM 43N):
las2las.exe -i input.las -o output.las -epsg 32643
I can see the change with lasinfo tool, with corresponding output as:
GeoKeyDirectoryTag version 1.1.0 number of keys 4
key 1024 tiff_tag_location 0 count 1 value_offset 1 - GTModelTypeGeoKey: ModelTypeProjected
key 3072 tiff_tag_location 0 count 1 value_offset 32643 - ProjectedCSTypeGeoKey: WGS 84 / UTM 43N
key 3076 tiff_tag_location 0 count 1 value_offset 9001 - ProjLinearUnitsGeoKey: Linear_Meter
key 4099 tiff_tag_location 0 count 1 value_offset 9001 - VerticalUnitsGeoKey: Linear_Meter
Now I generate 3d tiles using py3dtiles from output las:
py3dtiles convert ..\output.las.csv --srs_in EPSG:32643 --srs_out EPSG:4978 --out ..\cesiumtiles --overwrite
I am using output srid as 4978 because cesium uses this. This generates point cloud data and I load data on cesium ion, and can see point cloud rendered at correct geo location. But height alignment is not correct, and point cloud renders way above earth surface. I expect that after all CRS information and conversions, point cloud must align correctly in terms of height. I suspect that height from original las is still retained in final point cloud data.
What am I missing in my flow?