Java Python Project 1.2: Transitor
CS Year 1 Project 2
Department of Advanced Computing Sciences
Maastricht University
Table of contents
1 Transitor 2
2 Project Description 2
2.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 Routing Engine and Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3 Phases of the Project 3
3.1 Phase 1: Distance and Time Calculators . . . . . . . . . . . . . . . . . . . . . . 3
3.1.1 Tasks: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1.2 Requirements: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1.3 To Pass: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.4 Demo: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.5 Criteria for a higher grade (include): . . . . . . . . . . . . . . . . . . . . 5
3.2 Phase 2: Public Transport Routing . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2.1 Tasks: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2.2 Requirements: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2.3 To Pass: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3 Phase 3: Public Transport Routing (with transfers) + Accessibility calculation
per postal code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3.1 Tasks: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3.2 Requirements: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3.3 To Pass: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3.4 Criteria for a higher grade include: . . . . . . . . . . . . . . . . . . . . . 7
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1
Appendix 8
General Transit Feed Specification (GTFS) . . . . . . . . . . . . . . . . . . . . . . . 8
Understanding GTFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
GeoJSON files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Calculating transit times when bus transfers are included . . . . . . . . . . . . 9
1 Transitor
In this project, “Transitor,” you are tasked with developing a Java-based routing engine for
Maastricht’s public transport. This tool aims to analyze the socio-economic accessibility of
various areas within the city. By integrating geographical data, public transport information,
and socio-economic metrics, you will create a system that not only navigates through the
city’s complex transportation network but also sheds light on the accessibility disparities across
different neighborhoods.
2 Project Description
This project primarily involves creating a Java-based navigation system for Maastricht, aimed
at evaluating the socio-economic accessibility across various regions. The objective is to use this
system to understand how different areas connect and relate in terms of available socio-economic
opportunities.
2.1 Background
Socio-economic opportunities, including healthcare, education, and mobility, are critical for
community well-being but are not uniformly accessible across urban landscapes. The distribution
and accessibility of these opportunities may affect residents’ quality of life and their ability to
access essential services (Litman 2017). The case of Bijlmer, an area in Amsterdam, serves
as an example where urban design failed to adequately provide socio-economic opportunities,
leading to isolation and reduced quality of life for its residents (Olsson and Loerakker 2013).
In global contexts, studies in cities like London and New York have provided valuable insights
into how transport systems affect socio-economic accessibility. For instance, London’s Crossrail
project was studied for its impact on regional accessibility, revealing how new transport links
can transform access to jobs and services (TFL 2019). Similarly, New York’s subway system
analyses have demonstrated the relationship between transport accessibility and socio-economic
mobility (Kaufman et al. 2014).
For Maastricht, understanding the link between transport infrastructure and socio-economic
opportunity distribution is just as important. By examining this relationship, we can pinpoint
2
areas needing improvement for more equitable urban planning and policy-making, ultimately
enhancing the city’s socio-economic accessibility.
2.2 Objectives
1. Given two postal codes (zip codes), identify all feasible routes between them, including
public transport services such as buses, and walking or cycling.
2. Develop a tool to quantify accessibility for all postal codes in Maastricht.
2.3 Routing Engine and Data
For this project, you will need:
• Detailed geographical information of Maastricht’s Wijk (districts), areas (sub-districts),
and postal codes (specific neighborhoods).
• Public transport information such as bus stops, routes, and travel time.
• Socio-economic opportunities within Maastricht. These encompass services including
but not limited to cafes, restaurants, education, transportation, financial, healthcare,
entertainment, arts & culture, public services, facilities, and waste management 1
.
These will enable you to build a routing engine capable of computing different transportation
options from one address to another in Maastricht. Use this engine to identify areas more
isolated from specific opportunities.
3 Phases of the Project
• P1. Develop a distance and time calculator for specific locations.
• P2. Public Transport Routing (no transfers).
• P3. Public Transport Routing (with transfers) + accessibility calculations per postal
code.
3.1 Phase 1: Distance and Time Calculators
In this phase, you will design a simple distance calculator between two locations.
1Note that this list is non-exhaustive; you may find more opportunities to include in your project.
3
3.1.1 Tasks:
1. Develop well-structured code to calculate the distance ‘as the crow flies’ between two
postal codes within Maastricht, ignoring road structure and calculating aerial distance.
Use the MassLatLon.xlsx file. 2 All locations are in latitude and longitude which can
be used for distance/time calculations.
2. It is possible that some postal codes are not present in the file. For such cases, we have
provided a web service that will allow you to look up latitude and longitude given a
postal code. Select and apply a suitable design pattern for consuming a RESTful API in
order to access this service.
Use the API only if the postal code is not present in MassLatLon.xlsx. More information
on the API is present on computerscience.dacs.unimaas.nl.
3
3. Enforce a rate limit on API calls:
Period Limit
5 Seconds 1 request per IP
1 Minute 5 requests per IP
1 Hour 40 requests per IP
1 Day 100 requests per IP
4. Design a simple visualization to represent distances.
A simple plot/graph/map is sufficient at this point.
3.1.2 Requirements:
1. The distance and time must utilize latitude and longitude coordinates for its coordinate
system.
2. You must calculate time for both walking and cycling.
3. You must use kilometers and minutes as standard units of measurement.
4. Provide justification for your design choices for the calculator and API interactions.
2You can find all the project related files on Canvas and on https://computerscience.dacs.unimaas.nl/project12.
Please note you will need to use the UM VPN to access the project web page.
3You need to use the UM VPN to access this webpage.
4
3.1.3 To Pass:
• Have a working distance and time calculator that correctly determines the time and
distance for both walking and cycling. You must write this calculator yourself and it
must execute locally; you cannot use a cloud-based API or the internet for this
• Provide time and distance from DACS to Vrijthof (this should be in your slides).
• Create an elementary visualization, similar to flat public transport city maps. Include
minimal components (city boundaries, Wijk), scaling for distance, and time visualization.
3.1.4 Demo:
During your first presentation, we will give you two postal codes to find the distance, calculate
time, and present visualization.
3.1.5 Criteria for a higher grade (include):
1. Calculate the actual (not aerial) distance using the supplied .osm file and external libraries
(e.g., GraphHopper routing engine (GmbH 2023)). Note: You must still implement your
routing engine (as instructed above); using an external routing engine does not void that
requirement. The external library you choose should perform routing locally; you cannot
use a cloud-based API or the internet for this.
2. Develop an advanced, user-friendly graphical interface.
3. Ensure codai 写data、SQL de is clean and free from common coding flaws such as bad code smells.
3.2 Phase 2: Public Transport Routing
For this phase, you have been provided with a GTFS (General Transit Feed Specification4
)
dataset for The Netherlands. Calculate the distance and time between two postal codes, now
considering public transport options.
Assume that the only mode of public transport in Maastricht is by bus (ignore the Arriva train
connections between Randwyck, Centraal, and Nord stations).
3.2.1 Tasks:
1. Develop an efficient algorithm to find the closest bus stops, bus routes, and times for
trips for a given postal code.
4Please see Appendix for more information on GTFS.
5
2. Store the GTFS data5
in a well-structured relational database and write efficient SQL
queries.
Hint: Use indexes where appropriate.
3. Enhance your visualization to accurately depict bus routes.
You may use the city bus map as inspiration.
4. Write JUnit test cases and report code coverage statistics (aim for very high coverage).
3.2.2 Requirements:
1. Store GTFS data in a relational database. Optimize all SQL queries for performance
(minimal query wait time).
2. Calculate time by bus. Only direct connections count. If no direct connection exists
between two postal codes the GUI must indicate this.
3.2.3 To Pass:
1. Have a correctly implemented routing algorithm for finding the shortest direct route.
2. Include a GUI with all bus routes. Upon user input the GUI must indicate in some
manner which bus route the user should take.
3.3 Phase 3: Public Transport Routing (with transfers) + Accessibility calculation
per postal code
In this phase, focus on improving public transport routing by allowing transfers between buses,
enabling riders to reach more destinations as part of their journey.
Define a measure of socio-economic accessibility6
. Calculate the socio-economic accessibility of
every postal code to identify the most and least well-connected areas of Maastricht.
5You can download the GTFS file from Canvas and https://computerscience.dacs.unimaas.nl/project12.
6This is a term in use in the field of sociology. It has several related definitions and needs to be "filled out"
when considering a specific location.
6
3.3.1 Tasks:
1. Write an efficient routing engine that considers bus transfers.
2. Serialize and process the GeoJSON files7
for various amenities in Maastricht.
3. Compute a detailed accessibility metric for each postal code.
4. Refactor the code, if needed, to ensure good design practices are incorporated. Provide
an informal software architecture.
3.3.2 Requirements:
1. All previous requirements apply.
2. Handle the case where a postal code does not have access to a bus route, if such a case
exists.
3. If the user must wait in between buses, this time must be counted as part of the travel
time. See the Appendix for more information on how transit time must be calculated.
3.3.3 To Pass:
• Correct any errors from the previous phases.
• Have a functional routing engine with bus transfers. It must be integrated with the GUI.
• Efficiently calculate the accessibility measure for all postal codes in Maastricht (execution
time should be as minimal as possible).
• Defend your measure of socio-economic accessibility using the provided data.
3.3.4 Criteria for a higher grade include:
• Well-structured code (no bad code smells).
• Well-designed accessibility measure, backed by scientific literature.
• Visualization of accessibility (could be separate from routing visualization).
References
GmbH, GraphHopper. 2023. “GraphHopper Routing Engine.” https://github.com/graphhopp
er/graphhopper.
Kaufman, Sarah, Mitchell L Moss, Justin Tyndall, and Jorge Hernandez. 2014. “Mobility,
Economic Opportunity and New York City Neighborhoods.” NYU Wagner Research Paper,
no. 2598566.
Litman, Todd. 2017. Evaluating Accessibility for Transport Planning. Victoria Transport
Policy Institute Victoria, BC, Canada.
7See Appendix for more information on GeoJSON files.
7
Olsson, Lea, and Jan Loerakker. 2013. “Revisioning Amsterdam Bijlmermeer.” Failed
Architecture. https://failedarchitecture.com/the-story-behind-the-failure-revisioningamsterdam-bijlmermeer/.
TFL. 2019. “Crossrail Project 2019 to 2023: Completing the Elizabeth Line.” Association for
Project Management. https://www.apm.org.uk/v2/media/10vnyi1q/crossrail-project-2019-
to-2023-completing-the-elizabeth-line-apm-journal.pdf.
Appendix
General Transit Feed Specification (GTFS)
In phase 2 the primary data format you’ll work with is the General Transit Feed Specification (GTFS). GTFS is a common format for public transportation schedules and associated
geographic information. It’s used worldwide to power trip planners and transit applications,
making public transport data universally accessible and useful. GTFS helps various stakeholders
from transit agencies to developers and passengers in planning, analyzing, and using public
transport more effectively.
Understanding GTFS
GTFS consists of a series of text files (.txt) zipped into a single archive. Each file models a
particular aspect of the transit system:
• agency.txt: Details about the transit agency, including name, URL, and time zone.
• stops.txt: Information about individual stops, stations, or areas where vehicles pick up
or drop off passengers.
• routes.txt: Descriptions of routes in terms of long and short names, route type (bus,
tram, etc.), and route ID linking to other files.
• trips.txt: Trips for each route, including trip IDs and headsigns, linked to schedules and
sequences of stops.
• stop_times.txt: Times that a vehicle arrives at and departs from individual stops for
each trip.
• calendar.txt or calendar_dates.txt: Service dates, showing when services are available
or exceptions occur.
• ... and potentially more, depending on the agency’s data.
8
GTFS data allows you to map out routes, calculate distances and travel times, and understand
service patterns. In this phase, you’ll develop algorithms to parse GTFS data, find the closest
bus stops, and calculate the fastest routes.
GeoJSON files
GeoJSON is a standard format for encoding geographic data structures, making it an essential
asset for mapping and spatial analysis. You’ll use this data to identify amenities, shops, tourism
spots, and other points of interest, understanding how they contribute to the socio-economic
landscape of Maastricht.
• GeoJSON Data.zip:
– Tourism (tourism.geojson): Features 259 points of interest related to tourism
like museums and historical sites.
– Shops (shop.geojson): Details about 697 shopping locations and stores, providing
insights into commercial accessibility.
– Amenities (amenity.geojson): Contains 1173 features representing various public
amenities and facilities.
Consider how access to different amenities, shops, and tourist attractions might influence the
quality of life and opportunities available to residents and visitors alike.
Calculating transit times when bus transfers are included
In our example, at some time "start", a user is attempting to travel from alpha to beta by
taking bus b1 to transfer point T, where they exit b1 and board bus b2 for the rest of the trip
to beta.
Informally, the below paragraphs state: You can assume the user will take the buses and
transfers that minimize the time required to get from alpha to beta.
More formally, let us assume we have a function spot(b, pc), which returns the time at which
bus b is at location pc and is undefined if b is never at pc. If we stick to just those (b, pc)
where spot is defined, we can now define:
• wait = spot(b1, alpha) - start where wait >= 0
• t1 = spot(b1, T) - spot(b1, alpha) where t1 > 0
• transfer = spot(b2, T) - spot(b1, T) where wait >= 0
• t2 = spot(b2, beta) - spot(b2, T) where t2 > 0
9
If we assume that the user will minimize wait, t1, transfer, and t2 (e.g., by not aimlessly riding
the bus around all day) then we can define:
• tot = wait + t1 + transfer + t2
Note that tot is a function with 6 parameters (alpha, start, b1, T, b2, beta). In order to find
the shortest travel time you must minimize tot. You will be given alpha, beta, and start, you
can choose any value for the other parameters (b1, T, b2) given the restrictions described
above.
Note that the term "bus" is being used in a technical sense here. For example, if the Number 6
bus stops in alpha at 9:45 and 10:12, they are considered two separate buses for the purposes
of this calculation.
Start-independent total time: What if the user does not care when they leave, but just
wants to know the shortest time it takes to get from alpha to beta whenever that may be?
In that case, wait is always 0 8
. As before, you will be given alpha and beta. tot is now
obtained by calculating tot over all values of (b1, T, b2) and taking the minimum result
相关推荐
TI DSP TMS320F280025 Note1:工程模板Template创建
该方法新建的工程支持寄存器开发,同时也支持库函数开发,新建后移动该工程也不需要重新修改路径,路径使用变量定义,使用方便、移植性能高
sql azure 语法_Azure Data Studio中SQL Server Profiler
sql azure 语法 In this article, we will explore SQL Server Profiler in Azure Data Studio in detail including download and installation, execution plans, coding T-SQL and more. 在本文中,我们将详细介绍Azure Dat...
AI硬件加速:CPU vs GPU性能对比
AI硬件加速:CPU vs GPU性能对比 关键词:人工智能、硬件加速、CPU、GPU、性能对比、硬件架构、并行计算、优化策略、项目实战 摘要: 本文将深入探讨AI
SQL Data Compare 对比 SQLserver数据
1. 下载redgate的工具 https://www.red-gate.com/dynamic/products/sql-development/sql-compare/download 2. 输入必选部分进行处理 3. 下载完成之后进行安装. 安装过程简略 4. 安装完成之后使用工具进行 断网破解 工具名 Red-Gate.Multi.Keygen.RePT.ex...
sql docker容器_如何将Microsoft SQL Server Docker容器与Azure Data Studio连接
sql docker容器This guide shows you how to use Docker to pull a MSSQL Server image and run it. Azure Data Studio is a cross-platform database tool that will be using to connect our Docker container with ...
sql azure 语法_使用Azure Data Studio开发SQL Server数据库
sql azure 语法 In the previous article, Starting your journey with Azure Data Studio, we put the first stone that helps you to be familiar with the Azure Data Studio and start using it to interact wi...
sql azure 语法_深入了解Azure Data Studio:扩展和Azure SQL DB开发
sql azure 语法 In the previous articles listed below, we went through the Azure Data Studio tool, starting from the installation procedure, showing the purpose of each component, how to organize your...
sql azure 语法_在Azure Data StudioSQL笔记本中使用Python SQL脚本
sql azure 语法 This article explores the Python SQL scripts in SQL Notebook of Azure Data Studio. 本文探讨了Azure Data StudioSQL Notebook中的Python SQL脚本。 介绍 (Introduction) SQL Notebook is an exciti...
sql azure 语法_在Azure Data Studio中学习用于SQL Notebook的Markdown语言
sql azure 语法 Microsoft supports SQL Notebooks in Azure Data Studio. It is an exciting feature that allows creating a notebook for multiple languages such as Python, SQL, PowerShell. You might hav...
sql azure 语法_Azure Data Studio中SQL代码段
sql azure 语法 This article will fully cover the code snippet SQL developer productivity feature in Azure Data Studio including a list of available snippets and examples of how to create custom code ...
Data2SQL数据脚本生成器
前几天,因一个项目部署,要将一个SQL SERVER数据库中的用户、组织机构、权限,复制到客户服务器上去,所以用Delphi写了这个工具,自我感觉还可以。之前也用过一个将SQL SERVER数据导成SQL的工具,但因为只能导一个表,而现在有很多表要导出。现在共享出来,发布在华军软件园,通过http://www.onlinedown.net/soft/44711.htm可以下载到。Data2SQL数
008_Spring Data JPA原生SQL
1. nativeQuery默认的是false, 表示不开启sql查询。表示是否对value中的语句做转义。使用原生sql, 需要开启它。 2. 原生sql中使用的是表名,这要和JPQL语句中使用的是实体类名区分开来。 3. 创建一个名为spring-data-jpa-sql的Java项目, 同时添加相关jar包, 并添加JUnit能力。 4. 新建User.java package com.bjbs.pojo; import java.io.Serializable; im...
spring data jpa 会用的 原生sql 查询方式
目录 (1)按某个字段统计数据 (2)几个表组建视图查询 (1)按某个字段统计数据 这里是根据detectSn进行统计,并且过滤掉重复数据(DISTINCT),不需要过滤去掉DISTINCT就可以了。后面跟查询条件。 传的值在上面获取需要用 :value 参数需要价格@Param(“value”) ...
SQL-for-Data-Analytics 项目推荐
SQL-for-Data-Analytics 项目推荐 1. 项目基础介绍及主要编程语言 SQL-for-Data-Analytics 是一个开源项目,旨在通过 SQL 的强大功能进行快速和高效的数据分析。该项目通过一系列的教程和示例,帮助用户从基础的 SQL 知识进阶到能够运用 SQL 进行深入的数据分析和挖掘。主要编程语言为 Jupyter Notebook 和 PLpgSQL,其中 Jupy...
load data(sql)
一般对于数据库表的插入操作,我们都会写程序执行插入sql,插入的数据少还可以,如果数据多了。执行效率上可能就不太理想了。load data语句用于高速地从一个文本文件中读取数据,装载到一个表中,相比于前者效率会高很多。 参考http://hunan.iteye.com/blog/752606https://dev.mysql.com/doc/refman/5.6/en/loa...
Coursera SQL for Data Science - Notes
SQL for Data Science - Notes 待补充 注:同一类编程题型只摘选1~2道做笔记;所有概念题型均不摘选,详见课堂讲义 Module 1:Select and Retrieve Data with SQL 随堂练习 Rtrieve all the data from the tracks table Select * From Tracks; DATA: all the data TABLE: tracks table Return the playlist id, and n
oracle datamodeler,查看您的 Oracle SQL Developer Data Modeler 设计
本教程将介绍如何在 Oracle SQL Developer 中运行可供选择的报表来查看您的 Oracle SQL Developer Data Modeler 设计。大约 25 分钟Oracle SQL Developer Data Modeler 支持 Oracle、Microsoft SQL Server 和 IBM DB2 的逻辑和物理数据建模。这个 Oracle SQL Develope...
SQL for Data Analytics 项目教程
SQL for Data Analytics 项目教程 1. 项目的目录结构及介绍 SQL-for-Data-Analytics/ ├── Chapter01/ │ ├── 1.1_Introduction_to_SQL.ipynb │ ├── 1.2_Basic_SQL_Queries.ipynb │ └── ... ├── Chapter02/ │ ├── 2.1_Advanc...
spring data jpa 打印sql配置
spring data jpa不支持输出完整的sql,下面的方式通过依赖log4jdbc的方式可以实现。 pom.xml引入: <dependency> <groupId>com.googlecode.log4jdbc</groupId> <artifactId>log4jdbc</artifactId> <...
Spring Data JPA使用JPQL与原生SQL进行查询
1、使用JPQL语句进行查询 JPQL是面向对象进行查询的语言,可以通过自定义的JPQL完成UPDATE和DELETE操作。JPQL不支持使用INSERT。对于UPDATE或DELETE操作,必须使用注解 @Modifying 进行修饰。 package com.pjb.jpauserdemo.dao; import com.pjb.jpauserdemo.entity.UserInfo; import org.springframework.data.jpa.repository.JpaReposit
Azure Data Studio 中 SQL Notebook 的全面指南与实践
Azure Data Studio 中 SQL Notebook 的全面指南与实践 什么是 SQL Notebook SQL Notebook 是 Azure Data Studio 中一项强大的功能,它将传统的 SQL 查询编辑器与现代笔记本概念相结合。这种交互式文档格式允许开发者将可执行代码、查询结果、格式化文本和可视化内容整合在一个文档中,非常适合数据分析、教学演示和日常数据库管理工作。 N...
创建函数报错:This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA
创建函数报错:This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA 方法1:创建函数时指定一种类型,如:READS SQL DATA。 方法2:启用方法创建信任机制。
STM32F407AD集成封装库WM8978+IS62WV51216+LAN8720+HR911105(原理图库+PCB封装库).IntLib
STM32F407开发板AD集成封装库WM8978+IS62WV51216+LAN8720+HR911105(原理图库+PCB封装库)IntLib后缀文件,拆分后文件为PcbLib+SchLib格式,Altium Designer原理图库+PCB封装库,已验证使用,可以直接应用到你的项目开发。 集成封器件型号列表:24C256AMS1117 ATK-HC05 ATK-HC05BAT BEEPBUTTONC CAP CH340G USB2UARTCap Semi Capacitor (Semiconductor SIM Model)DDB9 DHT11 数字温湿度传感器HEAD2 HEAD2*22HR911105HS0038Header 16 Header, 16-PinHeader 2 Header, 2-PinHeader 2X2 Header, 2-Pin, Dual rowHeader 3X2 Header, 3-Pin, Dual rowHeader 4 Header, 4-PinHeader 9X2 Header, 9-Pin, Dual rowHoleIS62WV51216JTAGKEY_M L LAN8720 ETH PHYLED2 Typical RED, GREEN, YELLOW, AMBER GaAs LEDLSENS LIGHT SENSL_SOPMAX3232 MAX3485MICMOS-P IRLML6401/SI2301MP2359 DC DC Step Down ICMPU6050 9轴运动处理传感器NRF24L01 PHONE_MPOWR Res2 ResistorSN65HVD230DSS8050 SS8550STM32F407ZET6 STM32F407ZET6TEST_POINTTF TF存储器卡槽TFT_LCD TPAD ALIENTEK TPADUSB5 USB_A_90 USB-A-90W25X16 W25X16;SST25VF016;MX25L1605WM8978 24bit ADC&DACXTAL Crystal OscillatorXTAL_1 Crystal OscillatorXTAL_2 Crystal Oscillatorsd card
有限元开源代码petscfem
有限元开源代码petscfem,给予petsc数值求解库开发的有限元法。

2237




被折叠的 条评论
为什么被折叠?



