Laspy ਨਾਲ LAS ਡੇਟਾ ਨੂੰ ਡਾਊਨਸੈਪਲਿੰਗ ਦੀ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਸਮਝਣਾ
ਪਾਈਥਨ ਵਿੱਚ ਵੱਡੀਆਂ LAS ਜਾਂ LAZ ਫਾਈਲਾਂ ਨਾਲ ਕੰਮ ਕਰਦੇ ਸਮੇਂ, ਕੁਸ਼ਲ ਪ੍ਰੋਸੈਸਿੰਗ ਅਤੇ ਵਿਸ਼ਲੇਸ਼ਣ ਲਈ ਡਾਊਨਸੈਪਲਿੰਗ ਜ਼ਰੂਰੀ ਹੈ। ਲਾਸਪੀ, LAS ਡੇਟਾ ਨੂੰ ਪੜ੍ਹਨ, ਲਿਖਣ ਅਤੇ ਬਦਲਣ ਲਈ ਇੱਕ ਪਾਈਥਨ ਪੈਕੇਜ, ਪੁਆਇੰਟ ਕਲਾਉਡ ਡੇਟਾ ਨੂੰ ਹੇਰਾਫੇਰੀ ਕਰਨ ਦੇ ਕਈ ਤਰੀਕੇ ਪੇਸ਼ ਕਰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ LAS ਸਿਰਲੇਖ ਬਣਾਉਣਾ ਅਤੇ ਸੰਪਾਦਿਤ ਕਰਨਾ।
ਇਹ ਉਦਾਹਰਨ ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ a ਤੋਂ ਹਰ ਦਸਵੇਂ ਬਿੰਦੂ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਕੇ ਇੱਕ ਡੈਟਾਸੈੱਟ ਨੂੰ ਕਿਵੇਂ ਘੱਟ ਕਰਨਾ ਹੈ ਆਲਸ ਫਾਈਲ ਕਰੋ ਅਤੇ ਮੌਜੂਦਾ ਦੀ ਮੁੜ ਵਰਤੋਂ ਕਰੋ LasHeader. ਇਸ ਲਈ ਇਹ ਸਮਝਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਕਿ ਸਿਰਲੇਖ ਡੇਟਾ ਨਾਲ ਕਿਵੇਂ ਅੰਤਰਕਿਰਿਆ ਕਰਦੇ ਹਨ, ਖਾਸ ਤੌਰ 'ਤੇ ਜਦੋਂ ਵੱਖ-ਵੱਖ ਬਿੰਦੂ ਗਿਣਤੀਆਂ ਨਾਲ ਕੰਮ ਕਰਦੇ ਹਨ।
ਇੱਕ ਨਵ ਦੀ ਸਥਾਪਨਾ ਕਰਦੇ ਸਮੇਂ ਲਾਸਡਾਟਾ ਇੱਕ ਮੌਜੂਦਾ ਸਿਰਲੇਖ ਤੋਂ ਆਬਜੈਕਟ, ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਅਕਸਰ ਬੇਮੇਲ ਐਰੇ ਆਕਾਰ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਪੈਂਦਾ ਹੈ। ਇਹ ਅਸਮਾਨਤਾ ਇਸ ਲਈ ਵਾਪਰਦੀ ਹੈ ਕਿਉਂਕਿ ਸਿਰਲੇਖ ਦੇ ਬਿੰਦੂ_ਗਿਣਤੀ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਨਵੇਂ ਡੇਟਾ ਨਾਲ ਆਪਣੇ ਆਪ ਇਕਸਾਰ ਨਾ ਹੋਵੇ।
ਚੁਣੌਤੀ ਇਹ ਮੁਲਾਂਕਣ ਕਰਨਾ ਹੈ ਕਿ ਕੀ ਔਫਸੈੱਟ, ਸਕੇਲ, ਅਤੇ ਪੁਆਇੰਟ_ਕਾਉਂਟ ਵਰਗੀਆਂ ਸਿਰਲੇਖ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਹੱਥੀਂ ਸੰਸ਼ੋਧਿਤ ਕਰਨ ਦੀ ਲੋੜ ਹੈ, ਜਾਂ ਕੀ ਕੋਈ ਹੋਰ ਆਟੋਮੈਟਿਕ ਹੱਲ ਹੈ। ਇਹ ਪੋਸਟ ਦੱਸਦੀ ਹੈ ਕਿ ਇਹਨਾਂ ਮੁੱਲਾਂ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਕਿਵੇਂ ਅੱਪਡੇਟ ਕਰਨਾ ਹੈ ਜਦੋਂ ਵਰਤੋਂ ਨੂੰ ਘਟਾਉਣਾ ਹੈ ਲਾਸਪੀ, ਇੱਕ ਪ੍ਰਭਾਵੀ ਪ੍ਰਕਿਰਿਆ ਦੇ ਨਤੀਜੇ ਵਜੋਂ.
ਹੁਕਮ | ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ |
---|---|
laspy.read() | ਇਹ ਕਮਾਂਡ ਇੱਕ LAS ਜਾਂ LAZ ਫਾਈਲ ਨੂੰ LasData ਵਸਤੂ ਵਿੱਚ ਬਦਲਦੀ ਹੈ। ਇਹ ਫਾਈਲ ਤੋਂ ਪੁਆਇੰਟ ਕਲਾਉਡ ਡੇਟਾ ਅਤੇ ਸਿਰਲੇਖ ਦੀ ਜਾਣਕਾਰੀ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਦਾ ਹੈ, ਪਾਈਥਨ ਵਿੱਚ ਸੋਧ ਅਤੇ ਪ੍ਰੋਸੈਸਿੰਗ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। |
np.arange() | ਨਿਯਮਤ ਅੰਤਰਾਲਾਂ 'ਤੇ ਦੂਰੀ ਵਾਲੇ ਸੂਚਕਾਂਕ ਦੀ ਇੱਕ ਐਰੇ ਬਣਾਉਂਦਾ ਹੈ। ਇਸ ਦ੍ਰਿਸ਼ ਵਿੱਚ, np.arange(0, len(las.points), 10) ਲੋਡ ਕੀਤੇ ਪੁਆਇੰਟ ਕਲਾਉਡ ਡੇਟਾ ਤੋਂ ਹਰ 10ਵੇਂ ਪੁਆਇੰਟ ਦੀ ਚੋਣ ਕਰਦਾ ਹੈ, ਜੋ ਕਿ ਡਾਊਨਸੈਪਲਿੰਗ ਲਈ ਜ਼ਰੂਰੀ ਹੈ। |
laspy.LasHeader() | ਇਹ ਕਮਾਂਡ LAS ਅਤੇ LAZ ਡੇਟਾ ਲਈ ਇੱਕ ਨਵਾਂ ਸਿਰਲੇਖ ਤਿਆਰ ਕਰਦੀ ਹੈ। ਸਿਰਲੇਖ ਮੁੱਖ ਮੈਟਾਡੇਟਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਪੁਆਇੰਟ ਫਾਰਮੈਟ, ਸੰਸਕਰਣ, ਆਫਸੈੱਟ ਅਤੇ ਸਕੇਲ ਸ਼ਾਮਲ ਹਨ, ਜੋ ਕਿ ਇੱਕ ਬਣਾਉਣ ਜਾਂ ਸੰਪਾਦਿਤ ਕਰਨ ਵੇਲੇ ਮਹੱਤਵਪੂਰਨ ਹੁੰਦੇ ਹਨ ਲਾਸਡਾਟਾ. |
header.offsets | ਪੁਆਇੰਟ ਕਲਾਊਡ ਡੇਟਾ ਲਈ ਨਿਊਨਤਮ x, y, ਅਤੇ z ਕੋਆਰਡੀਨੇਟਸ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ। ਇਹ ਪੁਆਇੰਟ ਕਲਾਉਡ ਲਈ ਸੰਦਰਭ ਬਿੰਦੂ ਨੂੰ ਬਦਲਣ ਵਿੱਚ ਸਹਾਇਤਾ ਕਰਦਾ ਹੈ, ਨਤੀਜੇ ਵਜੋਂ ਡਾਊਨਸੈਪਲਿੰਗ ਤੋਂ ਬਾਅਦ ਸਹੀ ਡੇਟਾ ਪ੍ਰਸਤੁਤੀਕਰਨ ਹੁੰਦਾ ਹੈ। |
header.scales | ਸਕੇਲ ਕਾਰਕਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਕੇ x, y, ਅਤੇ z ਮੁੱਲਾਂ ਦੀ ਸ਼ੁੱਧਤਾ ਨੂੰ ਨਿਸ਼ਚਿਤ ਕਰਦਾ ਹੈ। ਡਾਊਨਸੈਪਲਿੰਗ ਤੋਂ ਬਾਅਦ, ਡੇਟਾ ਦੀ ਇਕਸਾਰਤਾ ਨੂੰ ਬਣਾਈ ਰੱਖਣ ਲਈ ਸਕੇਲ ਕਾਰਕਾਂ ਦੀ ਮੁੜ ਗਣਨਾ ਅਤੇ ਸੋਧ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੋ ਸਕਦਾ ਹੈ। |
copy() | ਕਿਸੇ ਵਸਤੂ ਦੀ ਖੋਖਲੀ ਕਾਪੀ ਬਣਾਉਂਦਾ ਹੈ। ਇਸ ਕੇਸ ਵਿੱਚ, ਇਹ ਮੌਜੂਦਾ ਸਿਰਲੇਖ ਨੂੰ ਮੂਲ ਪੁਆਇੰਟ ਕਲਾਉਡ ਤੋਂ ਟ੍ਰਾਂਸਫਰ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਇਹ ਗਾਰੰਟੀ ਦਿੰਦਾ ਹੈ ਕਿ ਨਵੇਂ ਡੇਟਾਸੈਟ ਵਿੱਚ ਕੋਈ ਵੀ ਤਬਦੀਲੀ ਅਸਲ ਡੇਟਾ ਨੂੰ ਨੁਕਸਾਨ ਨਹੀਂ ਪਹੁੰਚਾਉਂਦੀ। |
downsampled_las.write() | ਇਹ ਕਮਾਂਡ ਅੱਪਡੇਟ ਜਾਂ ਨਵੇਂ ਬਣੇ ਨੂੰ ਲਿਖ ਕੇ ਡਾਊਨਸੈਪਲਡ ਪੁਆਇੰਟ ਕਲਾਊਡ ਨੂੰ ਨਵੀਂ LAS ਜਾਂ LAZ ਫਾਈਲ ਦੇ ਰੂਪ ਵਿੱਚ ਸੁਰੱਖਿਅਤ ਕਰਦੀ ਹੈ। LasData ਇੱਕ ਫਾਈਲ 'ਤੇ ਇਤਰਾਜ਼. |
unittest.TestCase | ਇਹ ਪਾਈਥਨ ਦੇ ਯੂਨਿਟਸਟ ਫਰੇਮਵਰਕ ਲਈ ਫਾਊਂਡੇਸ਼ਨ ਕਲਾਸ ਹੈ, ਜੋ ਕਿ ਟੈਸਟ ਕੇਸ ਬਣਾਉਣ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ ਲੇਖ ਗਾਰੰਟੀ ਦੇ ਕੇ ਕਿ ਪੁਆਇੰਟਾਂ ਦੀ ਸਹੀ ਮਾਤਰਾ ਨੂੰ ਬਣਾਈ ਰੱਖਿਆ ਗਿਆ ਹੈ, ਡਾਊਨਸੈਪਲਿੰਗ ਪ੍ਰਕਿਰਿਆ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਇਸਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। |
self.assertEqual() | ਇੱਕ ਯੂਨਿਟ ਟੈਸਟ ਦੋ ਮੁੱਲਾਂ ਦੀ ਤੁਲਨਾ ਕਰਦਾ ਹੈ ਅਤੇ ਇੱਕ ਗਲਤੀ ਵਾਪਸ ਕਰਦਾ ਹੈ ਜੇਕਰ ਉਹ ਬਰਾਬਰ ਨਹੀਂ ਹਨ। ਉਦਾਹਰਨ ਵਿੱਚ, ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਦਾ ਹੈ ਕਿ ਨਮੂਨੇ ਦੇ ਹੇਠਲੇ ਪੁਆਇੰਟਾਂ ਦੀ ਸੰਖਿਆ ਪੂਰਵ-ਅਨੁਮਾਨਿਤ ਸੰਖਿਆ ਨਾਲ ਮੇਲ ਖਾਂਦੀ ਹੈ। |
Laspy ਨਾਲ ਪੁਆਇੰਟ ਕਲਾਉਡ ਡਾਊਨਸੈਪਲਿੰਗ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਉਣਾ
ਇਸ ਪੋਸਟ ਵਿੱਚ ਪਹਿਲੀ ਸਕ੍ਰਿਪਟ ਡਾਊਨਸੈਪਲਿੰਗ ਏ LAZ ਫਾਈਲ, ਜੋ ਕਿ ਵੱਡੇ ਪੁਆਇੰਟ ਕਲਾਉਡ ਡੇਟਾਸੈਟਾਂ ਦੇ ਪ੍ਰਬੰਧਨ ਲਈ ਜ਼ਰੂਰੀ ਹੈ. ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਸਲ ਫਾਈਲ ਨੂੰ ਆਯਾਤ ਕਰਕੇ laspy.read() ਫੰਕਸ਼ਨ, ਅਸੀਂ ਪੁਆਇੰਟ ਡੇਟਾ ਅਤੇ ਸਿਰਲੇਖ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੇ ਹਾਂ ਜਿਸ ਵਿੱਚ ਪੁਆਇੰਟ ਕਲਾਉਡ ਬਾਰੇ ਮੈਟਾਡੇਟਾ ਹੁੰਦਾ ਹੈ। ਡਾਊਨਸੈਪਲਿੰਗ ਤਕਨੀਕ ਵਿੱਚ ਹਰ ਦਸਵੇਂ ਬਿੰਦੂ ਨੂੰ ਚੁਣਨਾ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ, ਜੋ ਮਹੱਤਵਪੂਰਨ ਭੂਗੋਲਿਕ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖਦੇ ਹੋਏ ਡੇਟਾਸੈਟ ਦੇ ਆਕਾਰ ਨੂੰ ਘੱਟ ਕਰਦਾ ਹੈ। ਇਹ ਵਰਤ ਕੇ ਕੀਤਾ ਜਾਂਦਾ ਹੈ np.arange() ਸੂਚਕਾਂਕ ਦੀ ਇੱਕ ਲੜੀ ਬਣਾਉਣ ਲਈ. ਪੁਆਇੰਟਾਂ ਨੂੰ ਚੁਣਨ ਤੋਂ ਬਾਅਦ, ਮੈਟਾਡੇਟਾ ਵਿੱਚ ਅਨੁਕੂਲਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਮੂਲ ਫਾਈਲ ਤੋਂ ਸਿਰਲੇਖ ਦੀ ਨਕਲ ਕਰੋ, ਜਿਵੇਂ ਕਿ ਪੁਆਇੰਟ_ਫਾਰਮੈਟ ਅਤੇ ਸੰਸਕਰਣ।
ਹਾਲਾਂਕਿ, ਇੱਕ ਆਮ ਸਮੱਸਿਆ ਉਦੋਂ ਵਾਪਰਦੀ ਹੈ ਜਦੋਂ ਅਸਲ ਸਿਰਲੇਖ ਵਿੱਚ ਪੁਆਇੰਟਾਂ ਦੀ ਸੰਖਿਆ ਡਾਊਨਸੈਪਲਡ ਡੇਟਾ ਨਾਲ ਮੇਲ ਨਹੀਂ ਖਾਂਦੀ ਹੈ। ਇਸ ਨੂੰ ਠੀਕ ਕਰਨ ਲਈ, ਅਸੀਂ ਵਰਤਦੇ ਹਾਂ ਕਾਪੀ() ਅਸਲ ਸਿਰਲੇਖ ਦੀ ਇੱਕ ਖੋਖਲੀ ਕਾਪੀ ਬਣਾਉਣ ਅਤੇ ਹੱਥੀਂ ਸੋਧਣ ਲਈ ਫੰਕਸ਼ਨ ਬਿੰਦੂ_ਗਿਣਤੀ ਹੇਠਾਂ ਨਮੂਨੇ ਕੀਤੇ ਬਿੰਦੂਆਂ ਦੀ ਸੰਖਿਆ ਨੂੰ ਦਰਸਾਉਣ ਲਈ ਖੇਤਰ। ਨਵਾਂ ਸਿਰਲੇਖ ਬਣਾਉਣ ਤੋਂ ਬਾਅਦ, ਨਮੂਨੇ ਦੇ ਨਮੂਨੇ ਵਾਲੇ ਬਿੰਦੂ ਇੱਕ ਨਵੇਂ ਨੂੰ ਨਿਰਧਾਰਤ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਲਾਸਡਾਟਾ ਆਬਜੈਕਟ ਜਿਸ ਵਿੱਚ ਅਸਲੀ x, y, ਅਤੇ z ਕੋਆਰਡੀਨੇਟ ਹੁੰਦੇ ਹਨ। ਅੰਤ ਵਿੱਚ, ਦ ਲਾਸਡਾਟਾ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਨਵੀਂ LAZ ਫਾਈਲ ਦੇ ਰੂਪ ਵਿੱਚ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ ਹੈ ਲਿਖੋ() ਢੰਗ. ਇਹ ਸਕ੍ਰਿਪਟ ਉਹਨਾਂ ਉਪਭੋਗਤਾਵਾਂ ਲਈ ਕੁਸ਼ਲ ਹੈ ਜਿਹਨਾਂ ਨੂੰ ਵੱਡੇ ਪੁਆਇੰਟ ਕਲਾਉਡਸ ਤੋਂ ਛੋਟੇ ਡੇਟਾਸੇਟਾਂ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
ਦੂਜੀ ਸਕ੍ਰਿਪਟ ਡਾਊਨਸੈਪਲਡ ਡੇਟਾ ਲਈ ਔਫਸੈੱਟਾਂ ਅਤੇ ਸਕੇਲਾਂ ਦੀ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਮੁੜ ਗਣਨਾ ਕਰਕੇ ਪਹਿਲੀ ਨੂੰ ਵਧਾਉਂਦੀ ਹੈ। ਪੁਆਇੰਟ ਕਲਾਉਡਸ ਦੇ ਨਾਲ ਕੰਮ ਕਰਦੇ ਸਮੇਂ, ਸਹੀ ਔਫਸੈੱਟ ਹੋਣਾ ਮਹੱਤਵਪੂਰਨ ਹੁੰਦਾ ਹੈ ਕਿਉਂਕਿ ਉਹ 3D ਸਪੇਸ ਵਿੱਚ ਡੇਟਾ ਦੇ ਮੂਲ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ। ਦ header.offsets ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਡਾਊਨਸੈਪਲਡ ਪੁਆਇੰਟਾਂ ਤੋਂ ਨਿਊਨਤਮ x, y, ਅਤੇ z ਕੋਆਰਡੀਨੇਟਸ ਨਾਲ ਅੱਪਡੇਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇਸੇ ਤਰ੍ਹਾਂ, ਪੈਮਾਨੇ ਦੇ ਕਾਰਕ ਜੋ ਪੁਆਇੰਟ ਡੇਟਾ ਦੀ ਸ਼ੁੱਧਤਾ ਨੂੰ ਪ੍ਰਭਾਵਤ ਕਰਦੇ ਹਨ, ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸੈੱਟ ਕੀਤੇ ਜਾਂਦੇ ਹਨ header.scales ਵਿਸ਼ੇਸ਼ਤਾ. ਇਹ ਸਕ੍ਰਿਪਟ ਨਾ ਸਿਰਫ ਪੁਆਇੰਟ ਕਲਾਉਡ ਦੇ ਆਕਾਰ ਨੂੰ ਘੱਟ ਕਰਦੀ ਹੈ, ਪਰ ਇਹ ਇਹ ਵੀ ਭਰੋਸਾ ਦਿਵਾਉਂਦੀ ਹੈ ਕਿ ਡੇਟਾ ਸਟੀਕ ਅਤੇ ਇਕਸਾਰ ਹੈ, ਇਸ ਨੂੰ ਵਿਹਾਰਕ ਵਰਤੋਂ ਲਈ ਵਧੇਰੇ ਅਨੁਕੂਲ ਬਣਾਉਂਦਾ ਹੈ।
ਅੰਤ ਵਿੱਚ, ਅੰਤਿਮ ਸਕ੍ਰਿਪਟ ਪਾਈਥਨ ਦੇ ਨਾਲ ਯੂਨਿਟ ਟੈਸਟਿੰਗ ਦਾ ਪ੍ਰਦਰਸ਼ਨ ਕਰਦੀ ਹੈ ਯੂਨਿਟ ਟੈਸਟ ਫਰੇਮਵਰਕ ਇਸ ਸਕ੍ਰਿਪਟ ਵਿੱਚ, ਇੱਕ ਟੈਸਟ ਕੇਸ ਇਹ ਨਿਰਧਾਰਿਤ ਕਰਦਾ ਹੈ ਕਿ ਕੀ ਡਾਊਨਸੈਪਲਡ ਪੁਆਇੰਟ ਦੀ ਗਿਣਤੀ ਅਨੁਮਾਨਿਤ ਮੁੱਲ ਨਾਲ ਮੇਲ ਖਾਂਦੀ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿ ਡਾਊਨਸੈਪਲਿੰਗ ਪ੍ਰਕਿਰਿਆ ਸੰਦਰਭਾਂ ਅਤੇ ਡੇਟਾਸੈਟਾਂ ਵਿੱਚ ਲਗਾਤਾਰ ਕੰਮ ਕਰਦੀ ਹੈ। ਟੈਸਟ ਕੇਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ ਟੈਸਟਕੇਸ ਕਲਾਸ, ਅਤੇ ਤੁਲਨਾ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੀਤੀ ਜਾਂਦੀ ਹੈ self.asssertEqual() ਢੰਗ. ਵਰਕਫਲੋ ਵਿੱਚ ਟੈਸਟਿੰਗ ਨੂੰ ਸ਼ਾਮਲ ਕਰਕੇ, ਅਸੀਂ ਇਹ ਯਕੀਨੀ ਬਣਾ ਸਕਦੇ ਹਾਂ ਕਿ ਵੱਡੇ ਪ੍ਰੋਜੈਕਟਾਂ ਜਾਂ ਪਾਈਪਲਾਈਨਾਂ 'ਤੇ ਤੈਨਾਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਡਾਊਨਸੈਪਲਿੰਗ ਪ੍ਰਕਿਰਿਆ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰਦੀ ਹੈ। ਇਹ ਸਕ੍ਰਿਪਟ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਕਈ ਪੁਆਇੰਟ ਕਲਾਉਡ ਫਾਈਲਾਂ ਨਾਲ ਕੰਮ ਕਰਦੇ ਸਮੇਂ ਸਮੱਸਿਆਵਾਂ ਅਤੇ ਅਸੰਗਤਤਾਵਾਂ ਤੋਂ ਬਚਣ ਵਿੱਚ ਮਦਦ ਕਰਦੀ ਹੈ।
ਲੈਸਪੀ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ LAZ ਫਾਈਲਾਂ ਨੂੰ ਡਾਊਨਸੈਪਲਿੰਗ: ਹੈਂਡਲਿੰਗ ਪੁਆਇੰਟ ਕਲਾਉਡ ਡੇਟਾ
ਇਹ ਵਿਧੀ ਪੁਰਾਣੀ LAZ ਫਾਈਲ ਤੋਂ ਹਰ ਦਸਵੇਂ ਬਿੰਦੂ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਨ ਅਤੇ ਨਵੇਂ ਡੇਟਾਸੈਟ ਲਈ ਸਿਰਲੇਖ ਤਬਦੀਲੀਆਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ ਪਾਈਥਨ ਅਤੇ ਲੈਸਪੀ ਪੈਕੇਜ ਨੂੰ ਨਿਯੁਕਤ ਕਰਦੀ ਹੈ।
import laspy
import numpy as np
from copy import copy
# Load the existing LAZ file
las = laspy.read("input_file.laz")
# Downsample by taking every 10th point
indices = np.arange(0, len(las.points), 10)
downsampled_points = las.points[indices]
# Copy the header and adjust the point count
header = copy(las.header)
header.point_count = len(downsampled_points)
# Create new LasData with downsampled points
d_las = laspy.LasData(header)
d_las.points = downsampled_points
# Write to a new LAZ file
d_las.write("downsampled_output.laz")
LAZ ਫਾਈਲਾਂ ਨੂੰ ਡਾਊਨਸੈਪਲਿੰਗ ਕਰਦੇ ਸਮੇਂ ਆਟੋਮੇਟਿੰਗ ਆਫਸੈੱਟ ਅਤੇ ਸਕੇਲ ਐਡਜਸਟਮੈਂਟ
ਪਾਈਥਨ ਦਾ ਇਹ ਸੰਸਕਰਣ ਡਾਊਨਸੈਪਲਡ ਡੇਟਾ ਦੇ ਆਧਾਰ 'ਤੇ ਔਫਸੈੱਟਾਂ ਅਤੇ ਸਕੇਲਾਂ ਦੀ ਆਪਣੇ ਆਪ ਮੁੜ ਗਣਨਾ ਕਰਦਾ ਹੈ।
import laspy
import numpy as np
# Load the original LAZ file
las = laspy.read("input_file.laz")
# Downsample by taking every 10th point
indices = np.arange(0, len(las.points), 10)
downsampled_points = las.points[indices]
# Create new header and adjust offsets/scales
header = laspy.LasHeader(point_format=las.header.point_format, version=las.header.version)
header.offsets = np.min([las.x[indices], las.y[indices], las.z[indices]], axis=1)
header.scales = np.array([0.01, 0.01, 0.01]) # Set new scales
# Create new LasData and write to file
downsampled_las = laspy.LasData(header)
downsampled_las.points = downsampled_points
downsampled_las.write("downsampled_with_scales.laz")
LAS/LAZ ਫਾਈਲਾਂ ਨੂੰ ਡਾਊਨਸੈਪਲਿੰਗ ਲਈ ਯੂਨਿਟ ਟੈਸਟਿੰਗ
ਇਸ ਪਾਈਥਨ ਸਕ੍ਰਿਪਟ ਵਿੱਚ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਇੱਕ ਯੂਨਿਟ ਟੈਸਟ ਸ਼ਾਮਲ ਹੈ ਕਿ ਡਾਊਨਸੈਪਲਿੰਗ ਪ੍ਰਕਿਰਿਆ ਕਈ ਸੰਦਰਭਾਂ ਵਿੱਚ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰਦੀ ਹੈ।
import unittest
import laspy
import numpy as np
class TestDownsampling(unittest.TestCase):
def test_downsample_point_count(self):
las = laspy.read("input_file.laz")
indices = np.arange(0, len(las.points), 10)
downsampled_points = las.points[indices]
self.assertEqual(len(downsampled_points), len(indices))
if __name__ == "__main__":
unittest.main()
LAS ਫਾਈਲ ਮੈਟਾਡੇਟਾ ਅਤੇ ਐਡਵਾਂਸਡ ਡਾਊਨਸੈਪਲਿੰਗ ਤਕਨੀਕਾਂ ਨੂੰ ਸੰਭਾਲਣਾ
ਦੇ ਨਾਲ ਵਿਸ਼ਾਲ ਡੇਟਾਸੇਟਸ ਨਾਲ ਕੰਮ ਕਰਦੇ ਸਮੇਂ laspy, ਮੈਟਾਡੇਟਾ ਦਾ ਪ੍ਰਬੰਧਨ ਅਸਲ ਬਿੰਦੂ ਕਲਾਉਡ ਡੇਟਾ ਦੇ ਪ੍ਰਬੰਧਨ ਦੇ ਬਰਾਬਰ ਹੀ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਦੀ ਸ਼ੁੱਧਤਾ ਨੂੰ ਕਾਇਮ ਰੱਖਣਾ LasHeader ਨਮੂਨੇ ਲੈਣ ਤੋਂ ਬਾਅਦ ਮੁੱਲ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਮੁਸ਼ਕਲ ਹੈ। ਕਿਉਂਕਿ ਪੁਆਇੰਟ ਕਲਾਉਡ ਡੇਟਾ ਦੇ ਧੁਰੇ (x, y, ਅਤੇ z) ਬਦਲਦੇ ਹਨ, ਸਿਰਲੇਖ ਨੂੰ ਇਹਨਾਂ ਤਬਦੀਲੀਆਂ ਨੂੰ ਦਰਸਾਉਣਾ ਚਾਹੀਦਾ ਹੈ। ਦੀ ਮੁੜ ਗਣਨਾ ਕਰ ਰਿਹਾ ਹੈ ਆਫਸੈੱਟ ਹਰੇਕ ਅਯਾਮ ਲਈ ਘੱਟੋ-ਘੱਟ ਮੁੱਲਾਂ ਦੀ ਮੁੜ ਗਣਨਾ ਕਰਨ ਦੀ ਲੋੜ ਹੈ, ਜਦੋਂ ਕਿ ਸਕੇਲ ਪੁਆਇੰਟ ਡੇਟਾ ਦੀ ਸ਼ੁੱਧਤਾ ਨਿਰਧਾਰਤ ਕਰੋ, ਖਾਸ ਕਰਕੇ ਸਟੋਰੇਜ ਲਈ।
ਮੁਲਾਂਕਣ ਕਰਨ ਲਈ ਇੱਕ ਹੋਰ ਕਾਰਕ LAS ਫਾਈਲ ਵਿੱਚ ਵਾਧੂ ਮਾਪਾਂ ਦੀ ਇਕਸਾਰਤਾ ਹੈ। ਵਾਧੂ ਬਾਈਟਾਂ ਦੀ ਵਰਤੋਂ ਆਮ ਤੌਰ 'ਤੇ ਆਮ x, y, ਅਤੇ z ਕੋਆਰਡੀਨੇਟਾਂ ਤੋਂ ਇਲਾਵਾ ਹੋਰ ਜਾਣਕਾਰੀ ਰੱਖਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ ਤੀਬਰਤਾ ਜਾਂ GPS ਸਮਾਂ। ਜੇਕਰ ਡੇਟਾਸੈਟ ਵਿੱਚ ਇਹ ਵਾਧੂ ਮਾਪ ਸ਼ਾਮਲ ਹਨ, ਤਾਂ ਉਹਨਾਂ ਨੂੰ ਨਮੂਨਾ ਲੈਣ ਵੇਲੇ ਸੰਭਾਲਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਤੁਹਾਨੂੰ ਗਾਰੰਟੀ ਦੇਣੀ ਚਾਹੀਦੀ ਹੈ ਕਿ ਵਾਧੂ ਮਾਪਾਂ ਵਿੱਚ ਬਿੰਦੂਆਂ ਦੀ ਸੰਖਿਆ ਪ੍ਰਾਇਮਰੀ ਡੇਟਾ ਵਿੱਚ ਘਟਾਏ ਗਏ ਬਿੰਦੂਆਂ ਦੀ ਗਿਣਤੀ ਨਾਲ ਮੇਲ ਖਾਂਦੀ ਹੈ। ਦ add_extra_dim ਵਿੱਚ ਕਾਰਜਕੁਸ਼ਲਤਾ laspy LAS ਸਿਰਲੇਖ ਵਿੱਚ ਕਸਟਮ ਮਾਪਾਂ ਨੂੰ ਜੋੜਨ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ।
ਅੰਤ ਵਿੱਚ, ਸਪੀਡ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਪੁਆਇੰਟ ਕਲਾਉਡਸ ਨੂੰ ਡਾਊਨਸੈਪਲਿੰਗ ਕਰਨ ਵੇਲੇ ਵਿਚਾਰਨ ਲਈ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਕਾਰਕ ਹੈ। ਜਦੋਂ ਕਿ ਸਿਰਲੇਖ ਲਈ ਮਨੁੱਖੀ ਟਵੀਕਸ ਦੀ ਆਮ ਤੌਰ 'ਤੇ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਕੁਸ਼ਲ ਇੰਡੈਕਸਿੰਗ ਦਾ ਲਾਭ ਲੈ ਕੇ ਅਤੇ ਐਰੇ ਓਪਰੇਸ਼ਨਾਂ ਨੂੰ ਲਾਗੂ ਕਰਕੇ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਸਵੈਚਲਿਤ ਕਰਨਾ ਸੁੰਨਸਾਨ ਕਾਫ਼ੀ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਤੇਜ਼ ਕਰ ਸਕਦਾ ਹੈ. ਦੀ ਸ਼ਕਤੀ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸੁੰਨਸਾਨ, ਤੁਸੀਂ ਪ੍ਰਦਰਸ਼ਨ ਦੀ ਕੁਰਬਾਨੀ ਕੀਤੇ ਬਿਨਾਂ ਭਾਰੀ ਡੇਟਾਸੇਟਾਂ ਦਾ ਤੇਜ਼ੀ ਨਾਲ ਪ੍ਰਬੰਧਨ ਕਰ ਸਕਦੇ ਹੋ। ਇਹ ਤੁਹਾਨੂੰ ਵੱਡੇ ਪ੍ਰੋਜੈਕਟਾਂ ਦੇ ਹੱਲਾਂ ਦਾ ਵਿਸਤਾਰ ਕਰਨ ਜਾਂ ਮਲਟੀਪਲ LAZ ਫਾਈਲਾਂ ਦੀ ਪ੍ਰਕਿਰਿਆ ਲਈ ਪਾਈਪਲਾਈਨਾਂ ਨੂੰ ਸਵੈਚਾਲਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।
ਲੈਸਪੀ ਨਾਲ ਡਾਊਨਸੈਪਲਿੰਗ ਬਾਰੇ ਆਮ ਸਵਾਲ
- ਮੈਂ ਵਿੱਚ ਮੇਲ ਖਾਂਦੀਆਂ ਐਰੇ ਮਾਪਾਂ ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਾਂ LasData?
- ਇਸਦਾ ਹੱਲ ਕਰਨ ਲਈ, ਇਹ ਯਕੀਨੀ ਬਣਾਓ ਕਿ point_count ਸਿਰਲੇਖ ਵਿੱਚ ਡਾਊਨਸੈਪਲਡ ਡੇਟਾ ਵਿੱਚ ਬਿੰਦੂਆਂ ਦੀ ਅਸਲ ਸੰਖਿਆ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ। ਲੋੜ ਅਨੁਸਾਰ ਗਿਣਤੀ ਨੂੰ ਹੱਥੀਂ ਬਦਲੋ।
- ਕੀ ਮੈਨੂੰ ਹਮੇਸ਼ਾ ਦੁਬਾਰਾ ਗਣਨਾ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ offsets ਅਤੇ scales ਡਾਊਨਸੈਪਲਿੰਗ ਤੋਂ ਬਾਅਦ?
- ਹਾਂ, ਇਹਨਾਂ ਮੁੱਲਾਂ ਦੀ ਮੁੜ ਗਣਨਾ ਕਰਨਾ ਜ਼ਰੂਰੀ ਹੈ, ਖਾਸ ਤੌਰ 'ਤੇ ਵਿਸ਼ਾਲ ਡੇਟਾਸੇਟਾਂ ਲਈ। ਦ offsets ਨਵੇਂ ਨਿਊਨਤਮ ਮੁੱਲਾਂ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ, ਜਦਕਿ scales ਡਾਟਾ ਸ਼ੁੱਧਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ।
- ਸਕਦਾ ਹੈ laspy LAS ਫਾਈਲਾਂ ਵਿੱਚ ਵਾਧੂ ਮਾਪਾਂ ਨੂੰ ਸੰਭਾਲਣਾ ਹੈ?
- ਹਾਂ, ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੋਰ ਮਾਪਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ add_extra_dim ਵਿੱਚ ਵਿਸ਼ੇਸ਼ਤਾ LasHeader, ਜੋ ਤੁਹਾਨੂੰ ਤੀਬਰਤਾ ਜਾਂ GPS ਸਮਾਂ ਵਰਗੇ ਕਸਟਮ ਮਾਪ ਸੈੱਟ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।
- ਹੈ numpy ਨਾਲ ਨਮੂਨਾ ਲੈਣ ਲਈ ਲੋੜੀਂਦਾ ਹੈ laspy?
- ਜਦੋਂ ਕਿ ਜ਼ਰੂਰੀ ਨਹੀਂ ਹੈ, numpy ਕੁਸ਼ਲਤਾ ਨਾਲ ਸੂਚਕਾਂਕ ਤਿਆਰ ਕਰਕੇ ਅਤੇ ਐਰੇ ਨੂੰ ਹੇਰਾਫੇਰੀ ਕਰਕੇ ਵਿਸ਼ਾਲ ਡੇਟਾਸੇਟਾਂ ਨੂੰ ਸੰਭਾਲਣ ਦੀ ਸਹੂਲਤ ਦਿੰਦਾ ਹੈ।
- ਮੈਂ ਡਾਊਨਸੈਪਲਿੰਗ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਕਿਵੇਂ ਤੇਜ਼ ਕਰ ਸਕਦਾ ਹਾਂ?
- ਵਰਤੋ numpy ਐਰੇ ਓਪਰੇਸ਼ਨ ਕਰਨ ਅਤੇ ਕੁਸ਼ਲਤਾ ਨਾਲ ਸੂਚਕਾਂਕ ਕਰਨ ਲਈ। ਇਹ ਵੱਡੇ ਪੁਆਇੰਟ ਬੱਦਲਾਂ ਨਾਲ ਕੰਮ ਕਰਦੇ ਸਮੇਂ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਂਦਾ ਹੈ।
ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਡਾਊਨਸੈਪਲਿੰਗ ਲਈ ਮੁੱਖ ਉਪਾਅ
ਨਮੂਨੇ ਨੂੰ ਘਟਾਉਣ ਵੇਲੇ ਅਯਾਮਾਂ ਦੇ ਮੇਲ ਨਾ ਹੋਣ ਤੋਂ ਬਚਣ ਲਈ LAZ ਨਾਲ ਫਾਈਲਾਂ laspy, ਦ ਬਿੰਦੂ_ਗਿਣਤੀ ਸੰਪਤੀ ਨੂੰ ਸਿਰਲੇਖ ਵਿੱਚ ਹੱਥੀਂ ਐਡਜਸਟ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਆਫਸੈਟਾਂ ਅਤੇ ਸਕੇਲਾਂ ਦੀ ਮੁੜ ਗਣਨਾ ਕਰਨਾ ਤਾਜ਼ੇ ਡੇਟਾ ਦੀ ਸਹੀ ਪ੍ਰਤੀਨਿਧਤਾ ਦੀ ਗਰੰਟੀ ਦਿੰਦਾ ਹੈ।
ਕੁਝ ਭਾਗਾਂ, ਜਿਵੇਂ ਕਿ ਸਿਰਲੇਖ ਸੋਧਾਂ ਲਈ, ਦਸਤੀ ਦਖਲ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ ਕਿ ਹੋਰਾਂ ਨੂੰ ਸਵੈਚਲਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਸੁੰਨਸਾਨ ਗਤੀ ਨੂੰ ਵੱਧ ਤੋਂ ਵੱਧ ਕਰਨ ਅਤੇ ਵਿਸ਼ਾਲ ਡੇਟਾਸੇਟਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ। ਯੂਨਿਟ ਟੈਸਟਿੰਗ ਤੁਹਾਡੇ ਡਾਊਨਸੈਪਲਿੰਗ ਵਰਕਫਲੋ ਦੀ ਮਜ਼ਬੂਤੀ ਨੂੰ ਵਧਾਉਂਦੀ ਹੈ, ਇਸ ਨੂੰ ਅਸਲ ਸਥਿਤੀਆਂ ਵਿੱਚ ਵਧੇਰੇ ਕੁਸ਼ਲ ਬਣਾਉਂਦਾ ਹੈ।