非常感谢大家对云冈13窟三维数据在数字化信息系统中的展示与应用问题集合的贡献。我会努力给出简明扼要的回答,并根据需要提供一些具体实例来支持我的观点,希望这能给大家带来一些新的思路。

文章目录列表:

云冈13窟三维数据在数字化信息系统中的展示与应用

前言

自1961年云冈石窟成为 重点文物保护单位以来,云冈研究院多次立项并开展各大石窟文物数字化保护工作,因而云冈研究院在石窟岩体加固、本体修复、病害防治、考古研究、展示管理等方面具有系统化的指导经验。大势智慧在文物三维数字化重建上具有 的国产化技术优势与实践经验。本次云冈13窟数字化保护工程由云冈研究院主导,大势智慧参与承建,二者在通力合作下共同完成了对云冈13窟数字化建模与三维信息系统的构建。

在完成前期13窟三维数据成果采集与重建后,大势智慧在云冈研究院的指导与要求下,顺利完成对13窟三维数字展示展陈系统的开发。该系统由数字多媒体展示与数字资源管理两大子系统组成,包含26大功能模块。

▲云冈13窟数字化展示系统界面示意图

13窟三维数字化展示展陈系统在“Web+GIS+3D”的理念下,以13窟三维模型为底图,形成了依托文物知识体系的新型文物资源管理与展示 ,将整窟作为 的空间整体来分析,同时融入解说音视 、修缮档案、三维模型等数字资源,让13窟三维数字化成果直观呈现、文化内涵多维分析、三维交互关联。

具体而言,系统在石窟资源整合、信息安全共享、用户沉浸式漫游、石窟文物保护等多个维度层面做到多效合一,改变了以往文物数据与管理分离的模式

一、整合多源数据,建立数字资源统计分析库

系统将石窟发展脉络、修缮数据、历史文献等各类资源,如音视 、文本、、三维数据等多种资源进行有序整合、可视化统计、规整建库。系统资源内容涉及面广、内容丰富,可帮助管理人员厘清13窟历史与当下发展现状,建立多源、多数据、可视化资料信息管理库,让石窟数据管理做到有据可查、有类可分、有库可存。

▲云冈13窟展示系统数字资源管理界面图

二、引进云渲染技术,保障数据安全与共享

石窟三维精细模型数据具有重要的展示、科研与文保价值,系统投入使用后,将涉及到管理、文保、科研、游客等多终端人员的登录与使用, 在合理分配资源使用权限的同时,引入云渲染技术,降低各终端对模型数据浏览的门槛,高保真、轻量化、多细节展示整窟原貌,且原数据可安全存储于系统内部,保障数据资源安全与共享。

?三、多媒体虚拟漫游,满足用户沉浸式体验

系统架设虚拟漫游板块,“前进、后退、左行、右行、上移、下移、旋转、平移”八大浏览指示功能可满足用户 、多角度13窟风貌的要求。在石窟特殊结构与部位,链接基于信息标注的知识解构,让用户“所点之处,皆有所获”,同时结合图文、音视 多维解析,最大程度延伸用户的视觉与听觉感官体验,让人们沉浸式看懂13窟。

▲云冈13窟数字化展示系统知识解构示意图

四、多功能专业展示,助力石窟保护与病害防治

作为大型不可移动文物,石窟保护具有特殊性与长期性。据悉,石窟风化过程具有不可逆性,随着时间推移,石窟岩体结构失稳、生物灾害、渗水、裂缝等病害问题也将随之加剧,因此需要建立科学有效的石窟保护体系与方案。

▲云冈13窟数字化展示系统病害标记示意图

大势智慧在了解石窟保护的本质需求后,在展示系统内部铺设多灯光浏览、信息标注(病害标注)、正摄影像快速输出等多种操作功能,可不同程度应用于后续石窟保护与开发工程。其中病害标注对于石窟内部日常保养与长期化病害防治具有重要指导意义,快速生成正射影像图则有助于石窟岩体加固、窟檐等保护工程的设计与施工。

▲云冈13窟数字化展示系统灯光调节示意图

▲云冈13窟数字化展示系统快速生成正射影像示意图

在此次第13窟项目建设中,大势智慧还提出了“基于计算机技术的文物虚拟修复试验”、“虚拟空间中石窟变化监测分析”、“基于知识体系的真三维石窟寺保护利用创新”等方案与设想,目的就是为了能够最深层次探究利用石窟三维数据与展示系统探究创新出更多石窟保护的方式与方法。

整体而言,云冈13窟三维展示展陈系统采用B/S架构,将系统功能实现的核心部分集中到服务器中,提高系统性能的同时,简化后续系统运维的工作量与成本。系统层次划分清晰、界面布局科学美观,且从性能上充分考虑系统布设的容错性、安全性、拓展性、兼容性与可维护性,做到由表及里、统筹兼顾,符合 文物数字化保护系统开发的要求。

对此,云冈研究院表示,云冈13窟的数字化建模与三维信息系统的构建,将为全面开展“数字云冈”工程提供技术支撑,同时对山西省文物数字化保护工作起到重要的示范作用。?

结语

2021年11月, 文物局印发《“十四五”石窟寺保护利用专项规划》,正式将全国石窟寺保护作为新时期文物保护的重点工作内容。我国石窟资源丰富、体量庞大、分布各地,如何加强对石窟寺的保护与利用,事关 历史文明留存与传统文化传承。

利用三维重建技术留存世间古文物,是大势智慧创立之初的愿景。目前,大势智慧已与敦煌莫高窟、云冈石窟、克孜尔石窟、麦积山石窟、龙门石窟、大足石窟等国内多个 石窟单位达成了项目合作。无论是政策性还是方向性,大势智慧都将在创新国产化三维重建技术的同时,不断探索技术在文物保护建设中的可能性,助力“石窟中国”、“平安石窟”等工程的开展。

导读:今天首席CTO笔记来给各位分享关于django项目是什么的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

什么是企业级的Django项目

CRM、CMDB、分布式监控、堡垒机,等等。

这里有一个CMDB的项目技术分享CMDB之资产管理系统

Django源码阅读(一)项目的生成与启动

诚实的说,直到目前为止,我并不欣赏django。在我的认知它并不是多么精巧的设计。只是由功能堆积起来的"成熟方案"。但每一样东西的崛起都是时代的选择。无论你多么不喜欢,但它被需要。希望有一天,python能有更多更丰富的成熟方案,且不再被诟病性能和可维护性。(屁话结束)

取其精华去其糟粕,django的优点是方便,我们这次源码阅读的目的是探究其方便的本质。计划上本次源码阅读不会精细到每一处,而是大体以功能为单位进行解读。

django-adminstartprojectHelloWorld即可生成django项目,命令行是exe格式的。

manage.py把参数交给命令行解析。

execute_from_command_line()通过命令行参数,创建一个管理类。然后运行他的execute()。

如果设置了reload,将会在启动前先check_errors。

check_errors()是个闭包,所以上文结尾是(django.setup)()。

直接看最后一句settings.INSTALLED_ S。从settings中抓取

注意,这个settings还不是我们项目中的settings.py。而是一个对象,位于django\conf\__init__.py

这是个Settings类的懒加载封装类,直到__getattr__取值时才开始初始化。然后从Settings类的实例中取值。且会讲该值赋值到自己的__dict__上(下次会直接在自己身上找到,因为__getattr__优先级较低)

为了方便debug,我们直接写个run.py。不用命令行的方式。

项目下建个run.py,模拟runserver命令

debug抓一下setting_module

回到setup()中的最后一句 s.populate(settings.INSTALLED_ S)

开始看 s.populate()

首先看这段

这些 最后都会封装成为 Config。且会装载到self. _configs字典中

随后,分别调用每个 Config的import_models()和ready()方法。

的装载部分大体如此

为了方便debug我们改写下最后一句

res的类型是Commanddjango.contrib.staticfiles.management.commands.runserver.Commandobjectat0x00000101ED5163A0

重点是第二句,让我们跳到run_from_argv()方法,这里对参数进行了若干处理。

用pycharm点这里的handle会进入基类的方法,无法得到正确的走向。实际上子类Commond重写了这个方法。

这里分为两种情况,如果是reload重载时,会直接执行inner_run(),而项目启动需要先执行其他逻辑。

django项目启动时,实际上会启动两次,如果我们在项目入口(manage.py)中设置个print,会发现它会打印两次。

次启动时,DJANGO_AUTORELOAD_ENV为None,无法进入启动逻辑。会进入restart_with_reloader()。

在这里会将DJANGO_AUTORELOAD_ENV置为True,随后重启。

第二次时,可以进入启动逻辑了。

这里创建了一个django主线程,将inner_run()传入。

随后本线程通过reloader.run(django_main_thread),创建一个轮询守护进程。

我们接下来看django的主线程inner_run()。

当我们看到wsgi时,django负责的启动逻辑,就此结束了。接下来的工作交由wsgi服务器了

这相当于我们之前在fastapi中说到的,将fastapi的 交由asgi服务器。(asgi也是django提出来的,两者本质同源)

那么这个wsgi是从哪来的?让我们来稍微回溯下

这个settings是一个对象,在之前的操作中已经从settings.py配置文件中获得了自身的属性。所以我们只需要去settings.py配置文件中寻找。

我们来寻找这个get_wsgi_ lication()。

它会再次调用setup(),重要的是,返回一个WSGIHandler类的实例。

这就是wsgi 本身。

load_middleware()为构建中间件堆栈,这也是wsgi 获取setting信息的 途径。导入settings.py,生成中间件堆栈。

如果看过我之前那篇fastapi源码的,应该对中间件堆栈不陌生。

入口→中间件堆栈→路由→路由节点→endpoint

所以,wsgi 就此构建完毕,服务器传入请求至 入口,即可经过中间件到达路由进行分发。

用Django开发web后端,真的比SpringBoot要省事吗?

用Django开发web后端并不比SpringBoot要省事。

spring好处就是当你需要消息队列,或者服务注册发现,配置中心等等的时候配置比较方便,如果不考虑微服务,springboot也只是比java 里面其他的方便而已。

而python 想要集成上述几个功能并且达到一定的生产级别是要比spring麻烦的多。

从性能上讲,看过一些测评,spring因为替用户做了很多类型推断的事情,纯性能在java 也就是稀烂。

python如果不是一开始就上pypy,那就是一个jit的性能差距,大概就是十倍吧。

最后讨论下针对软件开发。

java它就是消耗代码,完成同样功能谁需要写的代码更多就更耗时,显然go是要少些不少代码。

而我的理解上,python需要1完成的东西go得1.5以上java到2以上,显然耗费的时间也就是基于这个比例。

对于个人心智负担范围内的项目,我是没什么理由选择java的,因为代码行数就是时间,时间就是金钱。

而对于不写测试设计稀烂的项目,这锅java也背不住。所以吧,如果不是个大项目,感觉并不太需要java出马以及,除非是有些必然要选择的原因。

至于大项目,这事我还没真没啥概念,大致统计了下以前项目的有效代码,不算注释第三方库,现在公司两三年的项目多端前后台加起来也就是20来万行。这也就算是我碰到现在规模最大的了。

剩下的曾经有个创业项目做了三个月差不多前后台也就是三万多行。

最后说结论吧,项目小,周期短,投入少,还是就django吧。

django框架介绍

Django是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。这也正是OpenStack的Horizon组件采用这种架构进行设计的主要原因。

另外,在Django框架中,还包含许多功能强大的第三方插件,使得Django具有较强的可扩展性。Django项目源自一个 新闻Web站点,于2005年以开源的形式被释放出来。

Django框架的核心组件有:

1、用于创建模型的对象关系映射。

2、为最终用户设计较好的管理界面。

3、URL设计。

4、设计者友好的模板语言。

5、缓存系统。

Django(发音:[`d??ɡ?])是用python语言写的开源web开发框架(opensourcewebframework),它鼓励快速开发,并遵循MVC设计。Django遵守BSD版权,初次发布于2005年7月,并于2008年9月发布了 个正式版本1.0。

Django根据比利时的爵士音乐家DjangoReinhardt命名,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。

由于Django在近年来的迅速发展,应用越来越广泛,被 IT开发杂志SDTimes评选为2013SDTimes100,位列“API、库和框架”分类第6位,被认为是该领域的佼佼者。

django是python的框架吗

Django为我们提供了众多的开发指令,大部分繁琐的操作都被Django集成在简洁的命令行提示符中实现。现在打开命令提示符,进入到想要创建

应用的目录后键入django-admin.pystartproject

news命令,调用Django的控制台命令新建一个名为news的工程,与此同时Django还在新创建的news文件夹下生成以下四个分工不同的文

件。

1.__init__.py

文件__init__.py可以向Python编译器表明当前文件夹下的内容是Python工程模块。

2.manage.py

manage.py是Python脚本文件,与Django的命令行工具django-admin.py配合,可以对建立的工程进行管理配置。

3.settings.py

这是Django工程的配置文件,与工程相关的工程模块和数据库全局配置信息都在settings.py中设置。

4.urls.py

文件urls.py负责配置URL的地址映射以及管理URL的地址格式。

当新的工程建立好之后,假如迫不及待就想知道新建工程的模样,Django已经为你准备好一款轻量级的Web服务器以便在开发过程中随时测试使用。

开发者只需在命令提示符下进入工程目录,键入命令manage.py

runserver,就可以启动Web服务器来测试新建立的工程,如果启动没有错误,将可以看到下面这样的提示信息:逗Development

serverisrunningat地

表示当前工程已经可以通过本机的8000端口访问。通过浏览器打开上述地址Django项目初始页面将会出现在你面前。

Django新手教程6,新建一个项目

感觉再不按套路出牌就要被群众围殴了,那咱么就开始吧。

打开CMD黑窗口,我们输入

workondjango_env

我们先看看怎么在黑窗口里面穿梭于各个URL之间,你先看你现在所处的位置,一般来说,新打开的CMD,都是处于

C:/User/your_name

这个位置,我们先到D盘,根目录从C到D,我们只需要输入

D:

就可以到达D盘了,如果你的django_env是激活的那么,他会自动跳转到

D:/py_env/django_env

这个目录下,我们当然可以把项目就建在这里,但也可以建在别的地方。所以请输入(注意cd和两点之间有一个空格)

cd..

cd是前往的意思,两个小点指的是父亲,意思是前往当前目录的父目录,

于是,我们来到

D:/py_env

目录下,再次输入

cd..

于是我们达到

D:/

这已经是D盘的根目录的再输入cd..已经没有什么效果了。如果你之前按照我的教程一步一步来,那么,你已经在在这个根目录上建好了一个叫django_project的空文件夹,如果你没有建好,那么请输入

mkdirdjango_project

创建一个这个文件夹,当然,你也可以在图形界面,打开我的计算机,然后到达位置右键新建文件夹。这里为了逼格和更加熟悉cmd窗口起见,我建议你还是用命令行。

我们cmd的路径(准确的说是工作路径)现在在D盘的根目录,

因此,请输入

cddjango_project

表示前往django_project,当然,这个时候你得确定django_project是D盘根目录下的一个子目录。

如果,我们还处于

D:py_env/django_env

那么输入

cddjango_project是无效的,你得按照我们刚才一步一步抵达D盘,然后在进入到django_project。或者,你可以直接输入 路径

cdD:/django_project

使用上面的命令,只要你处于D盘,无论是在哪一级的目录,都可以一步到位。

抵达现场,我们马上就要新建我们的项目了。

激动人心的一刻到了,请在CMD中输入

django-adminstartprojectmysite

这时,我们创建了一个项目,这个项目的名字叫mysite,等等,说好的做云盘,为毛名字不是mycloud呢?这就要提到django的精妙之处了,新建了一个项目,就相当于,我们在计算机上圈了一块地(D:/django_project/mysite目录以后就是我们网络服务这一块的地盘了),还没开始建展馆,为什么先圈地而不是直接新建一个展馆呢,因为我们圈了地就可以在地上建很多展馆啊,在django看来,云盘啥的,够不上称为一个项目,只能称之为应用(一座展馆),只有将很多展馆放在一起,才能称之为项目,也就是说,一个项目可以包含很多的应用( ),比如我们的网站可以提供云盘服务,我们也可以,提供个人博客服务,我们还可以开一个讨论某植物的论坛啥的,反正就是为了将来能够提供全家桶服务,所以,云盘只能算做是一个 。当然,目前我们只这块地上建一座提供云服务的展馆。其他的展馆以后再说。

还是在cmd黑窗口,请输入

dir

用这条指令可以列出当前目录下的子目录和存放文件的情况,

我们可以看到,生成一个叫mysite的子目录,实际上,在mysite的上面还有两个目录,一个目录是一个点,表示自己,也就是django_project本身,另一个目录是两个点,表示父目录,也就是D盘根目录。所以我们看到的是django_project目录的一家三代。

这和图形界面基本是 的,下图的左上角圈的地方表示的就是父目录,至于本身目录嘛,就没必要刻意用什么图形表示了。

你用鼠标点击某个文件夹,实际上系统内部就是帮你运行了一下

cd你点击的文件夹

你点击后退,则帮你运行

cd..

回到正题,我们看到了一个mysite子目录,所以进去看看,请输入

cdmysite

然后输入

dir

查看情况

发现又有一个mysite目录,坑爹啊,俄罗斯套娃呢这是!

这一看就知道django是外国人搞得工具,子目录跟父目录叫同一个名字(好歹给子一级的目录起个名字叫mysite二世啥的行不。没办法,django设计者这么叫了,我们也不能随便乱改,以后我们把里面的那个mysite叫做子mysite,外面的那个叫父mysite以区分),仔细一看,旁边还有一个manage.py,先不不管这个,再进去子mysite看一下,还好,再没有mysite目录了,里面是

里面有4个py文件,看到没有,其中有一个是urls.py,URL之重要,需要专门一个文件来管理,如果你之前有认真看文章的话应该就能差不多猜到它是起什么作用的文件了。除了urls.py,settings.py也是非常重要的,都是用来管理mysite这个项目的,所以,我觉得最后这个mysite文件夹应该叫做mysite_manage因为它里面的东西,和它旁边的manage.py一样都是用来管理项目的。

为了让大家对项目结构有更清楚认识,我找了django官网上的

django创建项目怎样理解

创建项目:

django-adminstartprojectmysite

2

新建 (名称自定):

cdwebsite

pythonmanage.pystart learn

3

把我们新定义的 添加到setting.py中的INSTALL_ S中:

修改vimmysite/settings.py

INSTALLED_ S=(

'django.contrib.admin',?#Django默认。

'django.contrib.auth',?#默认身份验证系统。

'django.contrib.contenttypes',?#默认内容类型框架。

'django.contrib.sessi ',#默认session框架。

'django.contrib.messages',#默认消息框架

'django.contrib.staticfiles',#默认静态文件管理框架。

'learn',

)

备注:这一步是干什么呢?新建的 如果不加到INSTALL_ S中的话,django就不能自动找到 中的模板文件( -name/templates/下的文件)和静态文件( -name/static/中的文件)。

4

定义视图函数:

vimlearn/views.py

注:我们定义了一个index()函数, 个参数必须是request,与网页发来的请求有关,可以包含get或post的内容,函数返回一行字到网页。

5

定义视图函数相关的URL(网址):

vimmysite/urls.py

6

运行并验证:

pythonmanage.pyrunserver0.0.0.0:8000

注意:如果不加0.0.0.0:8000,默认是127.0.0.1:8000,且只能本机访问。

访问验证:

7

至此,你已经启动了Django开发服务器,一个纯粹的由Python编写的轻量级Web服务器。Django内包含了这个服务器,这样你就可以迅速开发了,在产品投入使用之前不必去配置一台生产环境下的服务器–例如Apache。

注意:**不要**在任何类似生产环境中使用此服务器。它仅适用于开发环境。(Django提供的是Web框架的业务,而不是Web服务器。)

8

Tip:项目(Projects)vs.应用( s)

项目与应用之间有什么不同之处?应用是一个提供功能的Web应用–例如:一个博客系统、一个公共记录的数据库或者一个简单的投票系统。项目是针对一个特定的Web网站相关的配置和其应用的组合。一个项目可以包含多个应用。一个应用可以在多个项目中使用。

结语:以上就是首席CTO笔记为大家介绍的关于django项目是什么的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。

好了,今天关于云冈13窟三维数据在数字化信息系统中的展示与应用就到这里了。希望大家对云冈13窟三维数据在数字化信息系统中的展示与应用有更深入的了解,同时也希望这个话题云冈13窟三维数据在数字化信息系统中的展示与应用的解答可以帮助到大家。